matlab微分方程求解 用ode23函数

就是这样。。。
最后要做出图像

请给初始值,O(∩_∩)O谢谢!!

比如我给初始值:初始值:θ(0)=0.5;  Î¸'(0)=0;

下面用y代表θ,然后,函数程序:

function yprime=verderpol(t,y)

global g;

global l;

g=9.8;

l=10;

yprime=[y(2);-g/l*sin(y(1))];

end

主程序:

clc; clear all

global g;

global l;

g=9.8;

l=10;

y0=[0.5;0];%初始值:y(0)=0.5;y'(0)=0;

hold on

[t,y]=ode23('verderpol',[0,3*pi],y0);

plot(t,y(:,1),'r','linewidth',2);

plot(t,y(:,2),'g','linewidth',2);

legend('θ-t图','θ''-t图')

grid on

hold on

画出的图像:

希望我的回答对你有所帮助,满意敬请采纳哟,O(∩_∩)O谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-10

g=10;

l=1;

fun=@(t,x) [x(2),;-g/l*sin(x(1))];

ts=[0,20];

x0=[pi/20,0];

[T,X]=ode23(fun,ts,x0);

t=T';

theta=X(:,1)';

plot(t,theta);

xlabel('t');

ylabel('\theta');


第2个回答  2014-12-10

给的条件不够,只好自己假设了

 l = 1m, g=9.8  θ0=π/12


%存为fun.m

function xdot=fun(t,theta)

g=9.8; l=1;

xdot=[theta(2);-g*sin(theta(1))/l];


%存为main.m

theta0=[pi/12,0];

[t, theta]=ode23('fun',[0,10],theta0);

plot(t,theta(:,1));


相似回答