Borrar filtros
Borrar filtros

Please help me solve this second order ODE

1 visualización (últimos 30 días)
Soumya Sinha
Soumya Sinha el 10 de Sept. de 2019
Respondida: Star Strider el 10 de Sept. de 2019
dx1 = x1 + 2*x2;
dx2 = sat(x1) + x2;

Respuestas (1)

Star Strider
Star Strider el 10 de Sept. de 2019
Now that you have explained what ‘sat’ is, you posted two different Questions (this one and Help me solve this second order ODE dx1=x1+2*x2 dx2=sat(x1)+x2) with two similar but different differential equation systems.
These both run without error. Choose the one that best fits your needs:
function bc1()
tspan=[0 10];
IC=[1 1];
[T,X] = ode45(@(t,x) eq1(t,x),tspan,IC);
figure
plot(T,X(:,2))
hold
plot(T,X(:,1))
hold off
title('bc_1')
end
function dx=eq1(t,x)
dx=zeros(2,1);
k=x(2);
sat=@(k) min(max(k,-1),1)
x(2)=k;
dx(1)=sat(x(1)).*x(1)-x(2)
dx(2)=-x(1)-2*x(2)+1
end
and:
function bc2()
tspan=[0 10];
IC=[1 1];
[T,X] = ode45(@(t,x) eq2(t,x),tspan,IC);
figure
plot(T,X(:,2))
hold
plot(T,X(:,1))
hold off
title('bc_2')
end
function dx=eq2(t,x)
dx=zeros(2,1);
k=x(2);
sat=@(k) min(max(k,-1),1)
x(2)=k;
dx(1)=sat(x(1)).*x(1)+x(2)
dx(2)=x(1)+2*x(2)+1
end
Have fun!

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2014a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by