solving differential equations with ode 45
    3 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Guillaume Ryelandt
 il 5 Apr 2020
  
    
    
    
    
    Commentato: Ameer Hamza
      
      
 il 5 Apr 2020
            Hi everyone, 
I have a little problem using ode45 to solve this equation 
 with initial conditions 
. But every time i try to run my script, i get this message of error 
Error in Ryelandt_288861_Assignment2>@(t,z)EX_3_ode(z,t,M(1),c,c3,J)
Error in odearguments (line 90)
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.
Error in ode45 (line 115)
  odearguments(FcnHandlesUsed, solver_name, ode, tspan, y0, options, varargin);
Error in Ryelandt_288861_Assignment2 (line 33)
[t_out1,Z_out1] = ode45( @(t,z) EX_3_ode(z,t,M(1),c,c3,J), xx, IC1, opts);
Could someone help me with this ? 
    %% Initiate the script 
clc; clear; close all
xx = linspace(0,10,1e3).';
%% Define the parameters 
Ct= 200;                %[J/K]
ht=140;                 %[W/m^2K]
At=0.02;                %[m^2]
he=200;                 %[W/m^2K]
Ae=pi;                  %[m^2]
Te= 298;                %[K]
V=6*pi;                 %[m^3]
rho=1;                  %[kg/m^3]
cp=4200;                %[J/kgK]
J=300;                  %[kgm^2]
c=2;                    %[Nms]
c3=0.1;                 %[Nms^3]
cq=0.09;                %[Ws^4]
M=[5,15,20,25,55];      %[Nm]
%% Question 3
%initial conditions 
IC1=[0; 0];
opts= odeset('RelTol',1e-8,'AbsTol',1e-10);
[t_out1,Z_out1] = ode45( @(t,z) EX_3_ode(z,t,M(1),c,c3,J), xx, IC1, opts);
%% Function definition
function dzdt1 = EX_3_ode(z,M,c,c3,J)
dzdt1(1,1) = z(2) ;
dzdt1(2,1) =(M-c.*z(2)-c3.*z(2)^3)./J ;
end
0 Commenti
Risposta accettata
  Ameer Hamza
      
      
 il 5 Apr 2020
        You need to change it like this
[t_out1,Z_out1] = ode45( @(t,z) EX_3_ode(t,z,M(1),c,c3,J), xx, IC1, opts); % first input of EX_3_ode is t
%% Function definition
function dzdt1 = EX_3_ode(t,z,M,c,c3,J) % first input should be t, if it is not used, replace it with ~
dzdt1(1,1) = z(2) ;
dzdt1(2,1) =(M-c.*z(2)-c3.*z(2)^3)./J ;
end
2 Commenti
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Ordinary Differential Equations in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!