matlab微分方程求解 用ode23函数就是这样...最后要做出图像

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 03:06:02
matlab微分方程求解用ode23函数就是这样...最后要做出图像matlab微分方程求解用ode23函数就是这样...最后要做出图像matlab微分方程求解用ode23函数就是这样...最后要做出

matlab微分方程求解 用ode23函数就是这样...最后要做出图像
matlab微分方程求解 用ode23函数

就是这样...

最后要做出图像

matlab微分方程求解 用ode23函数就是这样...最后要做出图像
比如我给初始值:初始值:θ(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
画出的图像:

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

 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));


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');