Professional Documents
Culture Documents
Assigment III
Assigment III
Assigment III
Assignment III
Integrantes:
López Ramírez Carolina
Pérez Méndez María Monserrat
Toris Miranda Adriana Montserrat
Grupo: 5PV91
Fecha de entrega
01/02/2023
Contenido
Problema...........................................................................................................................................3
Código............................................................................................................................................4
Rossenbrock’s parabolic vallery:...................................................................................................6
Wood’s function:...........................................................................................................................7
A nonlinear function of three variables:.......................................................................................8
Freudenstein and Roth function:..................................................................................................9
A quartic function:.......................................................................................................................11
Problema
Código
clear all
clc
n=input('Ingresa el numero de variables:\n');
i=1;
x=zeros(1,n);
for i=1:n
x(i)=input('ingresa el valor de x:\n');
i=i+1;
end
syms x1 x2 x3 x4
fun1=input('Ingresa tu funcion objetivo :\n');
a=[x1,x2,x3,x4];
x_be(1)=0;
k=1;
e=0.00000001;
ValorReal(k,:)=subs(fun1,[a(1:n)],[x(1:n)]);
Valor_Funcionbe=0;
x_be=0;
while abs(ValorRealValor_Funcionbe) > e || abs(x(1)-x_be)>e
%primera derivada.
for i=1:n
dx(i)=diff(fun1,a(i));
dxv=subs(dx,[a(1:n)],[x(1:n)]);
%segunda derivada.
for j=1:n
dx2(i,j)=diff(dx(i),a(j));
dx2v=subs(dx2,[a(1:n)],[x(1:n)]);
end
end
if (mod(k-1,n+1)==0);
s(k,:) = -[dxv]';
else
dxvd=double(dxv);
dx_bed=double(dx_ant);
Gradient=((sum(dxvd(1:n).^2)/sum(dx_bed(1:n).^2)));
s(k,:) = -[dxv]' +
s_ant'.*Gradient;
end
sres=double(s(k,:));
Hess=dx2v;
hessdo=double(Hess);
num=dot(dxv,s(k,:)');
num1=double(num);
den1=s(k,:)*Hess';
den11=double(den1);
den2=dot(den1,s(k,:));
den12=double(den2);
alfa=-num/den2;
alfas=double(alfa);
s_ant=s(k,:);
Valor_Funcionbed=subs(fun1,[a(1:n)],[x(1:n)]);
Valor_Funcionbe=double(Valor_Funcionbed);
x_be=x(1)
x=x(1:n)+alfas.*sres;
Valor=subs(fun1,[a(1:n)],[x(1:n)]);
ValorReal=double(Valor);
Valor_Funcion(k,:)=subs(fun1,[a(1:n)],[x(1:n)]);
Valor_Funcion=double(Valor_Funcion);
Iteration(k,:)=k;
x_res(k,:)=x;
dx_res(k,:)=double(dxv);
Results=table(Iteration,Valor_Funcion,x_res,dx_res);
dx_ant=dxv;
k=k+1;
end
sym fun1
if n==2
ezsurfc(fun1);
end
Rossenbrock’s parabolic vallery:
f ( x 1 , x 2 ) =100 ¿
0
x =¿
Wood’s function:
f ( x 1 , x 2 , x 3 , x 4 )=10 ¿
0 t
x =[ −3−1−3−1 ]
A nonlinear function of three variables:
1
f ( x 1 , x 2 , x3 ) =
1+¿ ¿
t
x 0=[ 0 1 2 ]
Freudenstein and Roth function:
f ( x 1 , x 2 ) ={−13+ x1 + [ ( 5−x 2 ) x 2−2 ] x 2 } + {−29 x1 + [ ( x 2 +1 ) x 2−14 ] x 2 }
2 2
0 t
x =[ 0 .5−2 ]
A quartic function:
f ( x 1 , x 2 ) =x14−2 x 2 x 21−x 22+ x21 −2 x 1 +5
t
x 0=[ 0 0 ]