ode23 and ode45 problem
6 ビュー (過去 30 日間)
古いコメントを表示
Suppose we have a differential equation dy/dx=-2x+4y^2 over the range x=0 to 1 with y(0)=0. I need to solve this question with 'ode23' and ode45 in matlab. Does anybody help me?
2 件のコメント
John D'Errico
2019 年 5 月 26 日
Next time, why not make an effort to do your homework yourself? Then show what you tried and ask for someone to help fix it, if you do not succeed.
採用された回答
Stephan
2019 年 5 月 26 日
% Solve symbolic (blue line in plot)
syms y(x) x
eqn = diff(y,x) == -2*x+4*y^2
sol_symbolic = dsolve(eqn,y(0)==0);
fplot(sol_symbolic,[0 1])
hold on
% solve numeric with ode45 (red dots in plot)
[V, S] = odeToVectorField(eqn);
fun = matlabFunction(V,'vars', {'x','Y'});
[x, sol_numeric] = ode45(fun,[0 1], 0);
plot(x, sol_numeric,'or')
hold off
With this example code it should be possible to use ode23 also
4 件のコメント
Jan
2019 年 5 月 27 日
Almost nice.
function main
[y,x] = ode45(@H, [0,1], [0,1]);
% ^ ^ round parentheses
end
function xl = H(x,y)
xl = zeros(2,1);
xl(1) = x(2);
xl(2) = -2 * x + 4 * y^2;
end
Use @H instead of defining the function to be integrated as char 'H'. The latter is still working, but outdate for 15 years now.
その他の回答 (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!