MATLAB解常微分方程组并画图的语句 100

具体问题如下:... 具体问题如下: 展开
 我来答
tianxiawulang
2014-11-09 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2561万
展开全部

说明

求解常微分方程一般使用ode系列函数(其中最常用的是ode45),基本做法就是把微分方程用函数表示出来,然后调用ode函数求解即可。对于本题而言,使用匿名函数描述微分方程更为方便一些。

 

参考代码

k0=8; k1=1; K=1; k2=5; n=2;    % 常数定义
ds = @(t,s)[k0-k1*(1+(s(2)/K)^n)*s(1); k1*(1+(s(2)/K)^n)*s(1)-k2*s(2)];
s0 = [0; 0];     % 初始条件,注意自行设置
tf = 10;         % 仿真时间,可根据需要自行修改
[t,s] = ode45(ds,[0 tf],s0);   % 使用ode求解器求解微分方程

% 绘图
plot(t,s)
xlabel \itt; ylabel '{\its}_1, {\its}_2'
legend('{\its}_1(\itt)', '{\its}_2(\itt)')

百川一归大海
2014-11-09 · TA获得超过1547个赞
知道小有建树答主
回答量:4318
采纳率:55%
帮助的人:1006万
展开全部
function myode4()
clc;close all
tspan=[0:0.1:12];
x0=[0 0];%假设t=0时s1=0,s2=0,如果不是自己改
[t,x]=ode45(@(t,x) weifen(t,x),tspan,x0,[]);
disp('     时间       s1       s2')
disp([t,x])
plot(t,x(:,1))
hold on
plot(t,x(:,2),'r')
xlabel('t')
ylabel('s')
legend('s1(t)曲线图','s2(t)曲线图')
function dx=weifen(t,x)
    dx=zeros(2,1);
    k0=8;k1=1;K=1;k2=5;n=2;
    dx(1)=k0-k1*(1+(x(2)/K)^n)*x(1);
    dx(2)=k1*(1+(x(2)/K)^n)*x(1)-k2*x(2);
end
end

 

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式