Borrar filtros
Borrar filtros

solving nonlinear diffrential equation using ode45

1 visualización (últimos 30 días)
alsgud qor
alsgud qor el 19 de Mzo. de 2020
Comentada: alsgud qor el 19 de Mzo. de 2020
I have never met this kind of non-linear equation, and this is my current code
-------------------------------------
function homework1 = main1(t,X)
global m c k1 k3
A = [ -c/m -k1/m; 1 0 ] ;
f = 0.*((t>=0)-(t>=10))+ (3*cos(t^2)).*((t>10)-(t>=30))+(-10).*((t>30)-(t>=50));
F=[f/m;0];
C=X*[0 0;1 0] ;
B=C.^3;
homework1= [X(2);A*X-k3/m*B+F] ;
-------
clear all
close all
global m c k1 k3
m = 1; c = 0.02 ; k1 = 1.25; k3=0.05;
tspan= 0:0.1: 50 ;
X0 = [ -3, 5 ] ;
[ t X ] = ode45(@main1, tspan, X0);
-------
what I am specially struggling with is the
  1. 'x^3' term, I can't express the appropriate term
  2. plotting (x,t) as the 't' goes on
  3. using ode45 is required
please help me...

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 19 de Mzo. de 2020
Editada: Ameer Hamza el 19 de Mzo. de 2020
First, no need to use global variables. Using them is not a recommended practice. Second, just write your ODE inside the main1.
Write this in a script file
tspan= 0:0.1:50 ;
X0 = [5, -3] ;
[t, X] = ode45(@main1, tspan, X0);
plot(t,X)
And save the following function in the file "main1.m"
function homework1 = main1(t,X)
m = 1;
c = 0.02;
k1 = 1.25;
k3=0.05;
if t < 10
F = 0;
elseif t < 30
F = 3*cos(t.^2);
else
F = -10;
end
homework1= [X(2); -c/m*X(2)-k1/m*X(1)-k3/m*X(1).^3+F/m] ;
end
  7 comentarios
Ameer Hamza
Ameer Hamza el 19 de Mzo. de 2020
alsgud, for your second file, the differential equation will be different. You first have to find the differential equation and then apply the code.
alsgud qor
alsgud qor el 19 de Mzo. de 2020
thank U.I'll try and ask if I face difficulty directly

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Ordinary Differential Equations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by