Intento hacer el ejercicio práctico 36 con lsode y no me funciona como poner que CA0 esta variando sinusoidalmente.

Intento hacer el ejercicio práctico 36 con lsode y no me funciona como poner que CA0 esta variando sinusoidalmente.

de Juan Pablo Ramos Catalogne -
Número de respuestas: 1

close all

clc

clear all

t=[0:0.1:80];

vV=0.2;

k=0.2;

Ca0=1+0.25*sen(.5*t);

function y= practico(par, x, t)

Ca=x(1);

Cb=x(2);

vV=par(1);

k=par(2);

Ca0=par(3);

y(1)=-(vV+k)*Ca+vV*Ca0;

y(2)=k*Ca-vV*Cb;

endfunction

t=[0:0.1:80];

par=[vV k Ca0];

x0=[0 0];

XEE=fsolve(@(x) practico(par, x, t),x0);

disp(XEE);

X=lsode(@(x,t) practico(par, x, t),x0,t);

plot(t, X(:,1),'r');

hold on

plot(t, X(:,2),'b');

En respuesta a Juan Pablo Ramos Catalogne

Re: Intento hacer el ejercicio práctico 36 con lsode y no me funciona como poner que CA0 esta variando sinusoidalmente.

de Ivan Lopez -

Hola

el script tiene varios problemas. Para empezar la función seno es "sin".

Luego, fsolve se aplica a una función que solo depende de las variables de estado, no del tiempo.

Al escribir la función para integrar, la entrada sinusoidal tiene que estar adentro de la función, no se puede meter como parámetro.

Las condiciones iniciales no son cero.