How to use ode45 for an equation with space dependent coefficients?
    1 visualización (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Mirlan Karimov
      
 el 16 de Mzo. de 2019
  
    
    
    
    
    Comentada: darova
      
      
 el 16 de Mzo. de 2019
            Consider an equation of form: 
 where 
 so that after each time iteration 
 I have to update 
 to be used in the next time iteration. I have hard coded Runge-Kutta scheme but I believe that there are some tolerance problems. Therefore, I want to try ODE45 and check the difference. 
0 comentarios
Respuesta aceptada
  darova
      
      
 el 16 de Mzo. de 2019
        p = @(x) sin(x).*sqrt(tan(x));
% x(1) == x
% x(2) == x'
f = @(t,x) [x(2); -p(x(1)).*x(1)];
tspan = [0 2];
x0 = [0.5 0.1];
[t, x] = ode45(f,tspan,x0);
plot(t,x(:,1),'r',t,x(:,2),'b')
2 comentarios
  darova
      
      
 el 16 de Mzo. de 2019
				function main
clc, clear
tspan = [0 1];
x0 = [ 0.1 0.5]
[t,y] = ode45(f,tspan,x0);
X = y(:,1);
Y = y(:,2);
plot(X,Y,'r')
end
function ydot = f(t,x)
x1 - x(1);
dx = x(2);
C = % complicated function
I = % another
    ydot(1) = dx;                      % x'
    ydot(2) = -C/I*x1;               % x''
end
Más respuestas (0)
Ver también
Categorías
				Más información sobre Numerical Integration and Differential Equations en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!