Problem with ODE solver

3 次查看(过去 30 天)
I would like to solve a simple parabolic equation, y=2*x^2 from -4 to 4. So I use ode45 to solve this problem according to the code below:
[T,Y] = ode113(@para,[-4 4],32,[],4);
plot (T,Y);
function dy = para(t,y,a)
dy=a*y; % as dy/dx= 4*x
Its giving me wiered results. Can you guys tell me what' going on here. I also tried other ODE functions. All of them are giving me the wrong results.

采纳的回答

Grzegorz Knor
Grzegorz Knor 2012-2-22
[T,Y] = ode113(@(x,y)4*x,[-4 4],32);
fplot('2*x.^2',[-4 4])
hold on
plot (T,Y,'ro')
  1 个评论
Mohammad Quddus
Mohammad Quddus 2012-2-23
Thanks a lot for helping me out. This no give me the celar picture of how to use ODE if the right hand side of the equation is only a f(x), instead of f(x,y).

请先登录,再进行评论。

更多回答(1 个)

Matt Tearle
Matt Tearle 2012-2-22
Your equation is defining dy/dx = ay, not dy/dx = ax. Big difference! The solution to the former is y(x) = C*exp(ax); the solution to the latter is y(x) = ax^2/2, as you were hoping for.
So
function dy = para(x,y,a)
dy=a*x; % as dy/dx= 4*x
(I'm vaguely curious why you'd want to bother with an ODE solver for an integral of this kind, but that's a side-issue.)
  1 个评论
Mohammad Quddus
Mohammad Quddus 2012-2-23
Yes you are right. I was looking for the second one. I know it is really simple and noone should be bothered about solving this kind of silly equation with ODE functions.
However I post this as I was not sure about how to right the ODE if it is only a f(x) instead of f(x,y). So based on these two answers I now have the clear picture about how to write the ODE function for both f(x) and f(x,y). Sometimes you know very silly things you can't figure out when you are running behind time.
Anyway thank you for your answer. really appreciate.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by