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