UTNianos

Versión completa: [Pedido][Analisis Numerico] Tp de Optimizacion de castro 2011
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Se solicita con suma urgencia dadores del metodo del gradiente en matlab de la materia analisis numerico o bien el tp de optimizacion de castro de este año.

Si alguno lo tiene que lo suba porque estoy al horno!!!
Aca te mado la codificacion que use el año pasado para hacer el TP, espero que te sirva


Funciones utilizadas:
Parametrización:
function param=parametrizacion (t, x, y,derparcx, derparcy)
param=2*(1-(x+derparcx*t))^2 + 200* ((y+derparcy*t)-(x+derparcx*t)^2)^2;
end

Derivadas parciales:
function derx = vx( x,y )
derx=4*(1-x)+800*x*(y-x^2);
end

function dery = vy( x,y )
dery=-(400*(y-x^2));
end

Función a Minimizar:
function z = funcion( x,y )
z=2*(1-x)^2 + 200*(y-x^2)^2;
end







Codificacion
format long;
clear;
clc;
it=0;
x=-1;
y=1;
it=0; b=6; c=0; t=0; d=0;
r2= (sqrt (5.0) - 1.0)/2.0;
r1= 1.0 - r2;
derparcx=vx(x,y);
derparcy=vy(x,y);
p=parametrizacion(t,x,y,derparcx,derparcy);
display(derparcx);
display(derparcy);
error2d=10^6;
N=sqrt(derparcx^2 + derparcy^2);
tol1d=10^(-7);
tol2d=10^(-6);

while (error2d > tol2d)
t=0;
b=6;
derparcx=derparcx/N;
derparcy=derparcy/N;
derparcx=vx(x,y);
derparcy=vy(x,y);
it=it + 1;
error1d=10^6;
c=t + r1 * (b-t);
d=t + r2 * (b-t);
fc= parametrizacion (c, x, y, derparcx, derparcy);
fd= parametrizacion (d, x, y, derparcx, derparcy);
while (error1d > tol1d)
c=t + r1 * (b-t);
d=t + r2 * (b-t);
fc= parametrizacion (c, x, y, derparcx, derparcy);
fd= parametrizacion (d, x, y, derparcx, derparcy);
if (fc <= fd)
b=d;
d=c;
c=t + r1 * (b-t);
fd=fc;
fc=parametrizacion (c, x, y, derparcx, derparcy);
end;
if (fc>fd)
t=c;
c=d;
d=t + r2 * (b-t);
fc=fd;
fd=parametrizacion (d, x, y, derparcx, derparcy);
end;
tmin= (c+d) /2;
error1d= abs (d-c);
error1d = sqrt(((d-c)*derparcx)^2+((d-c)*derparcy)^2);
end;
dx=tmin * derparcx;
dy=tmin * derparcy;

error2d=sqrt (dx^2 + dy^2);
x=x+dx;
y=y+dy;
end;
display(it);
Capo me darias una mano con este quilombito que tengo? estoy cursando con castro ya aprobe los parciales pero me faltan los tp 2, 3 y 4 para poder firmala. Con cualquiera de ellos que me puedas ayudar me viene barbaro. Te lo recontra agredecería!!
URLs de referencia