How to use ode45 for an equation with space dependent coefficients?
1 次查看(过去 30 天)
显示 更早的评论
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.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/208698/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/208699/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/208700/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/208701/image.png)
0 个评论
采纳的回答
darova
2019-3-16
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 个评论
darova
2019-3-16
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!