Assigment III

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

Instituto Politécnico Nacional

Escuela Superior de Ingeniería Química e


Industrias Extractivas
Departamento de Ingeniería Química Petrolera
Modelación, simulación y optimización de
procesos

Assignment III

Integrantes:
López Ramírez Carolina
Pérez Méndez María Monserrat
Toris Miranda Adriana Montserrat

Grupo: 5PV91

Profesor: Dr. Edgar Ramírez Jiménez

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 ]

You might also like