Solve a second order differential equation
显示 更早的评论
Hi, I am completely new to Matlab and am looking to solve a simple second order differential equation:
y''+w^2*y=0 IC: y(0)=0, y'(0)=1 BC=[0,pi]
I am looking to solve for both y(x) and y'(x)
I understand this is a simple equation to solve and have done it fine on paper. However I have been trying different ways to solve it on matlab but to no avail. I have tried both dsolve and ode45 functions but did not quite understand what I was doing. Any help would be great. Thanks in advance, Ben
采纳的回答
更多回答(2 个)
Shashank Prasanna
2013-3-7
2 个投票
I really recommend going through our documentation and these things become intuitive. Most standard setup's usually have examples in the documentation:
Nicolas
2014-1-28
Hi I have written the following First the Function
function h = goo(t,y)
h = zeros(3,1);
h(1) = y(2) * y(3);
h(2) = -y(1) * y(3);
h(3) = -0.51 * y(1) * y(2);
end
and then the code
clear all
initial=[-2 -3.5 21];
time=[0 10];
[t,y] = ode45(@goo,time,initial);
plot (t,y)
However I always get the following message:
Error using feval
Undefined function 'goo' for input arguments of type 'double'.
Error in odearguments (line 88)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 114)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Can anyone help me on this Thank you
类别
在 帮助中心 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!