matlab - 在 MATLAB 中使用 ODE45 求解三个偏微分方程
问题描述
我正在尝试解决以下来源的方程式 3、10 和 11:http ://web.math.ku.dk/~moller/e04/bio/ludwig78.pdf
下面是我在 MATLAB 中生成的代码,但是它没有生成在一个图形上显示三个解决方案的图形。
%% x=(S,N)^T
%%initial value:
x0= [1;1/2];
vopt= odeset('RelTol' ,1e-3, 'AbsTol', 1e-3, 'NormControl' , 'on', 'InitialStep',0.1,'MaxStep',0.5);
beta=20;E=1;r=0.1;K =4*S;P=10;N0=S/2;alpha=1;
%%define the right hand side:
f = @(t,x) r.*x(1).*(1-x(1)./K)-beta.*(N0.*N0./(alpha.^2-N0.^2));
r.*x(2).*(1-(x(2)./K).*(K./x(3)));
r.*x(3).*(1-x(3)./K)-P.*(x(1)./x(2))
[t,y] = ode45(f,[0 30],x0,vopt);
figure(1);
plot(t,y(:,1),'N',t,y(:,2),'S',t,y(:,3),'E');
legend('Population of Budworms','Available foliage','Energy Reserve');
解决方案
推荐阅读
- javascript - 如何将字符串转换为真正的二进制表示形式(UTF-8 或当前使用的任何形式)?
- r - 在 Rshiny 过滤器中显示替代名称导致没有默认选择
- python - 使用 Pandas 的指数加权运行平均值(移动平均值)
- telegram - 在 webhook 中,has_custom_certificate: false 是什么?
- c# - MarkDig UseSoftlineBreakAsHardlineBreak 扩展如何工作?
- r - 为字符串创建距离矩阵
- javascript - 我如何在表中以 JSON 格式打印布尔值
- python - 用 Python 在 MS Access 数据库中插入或更新行
- maven - 为什么我的实现依赖项不能解决,而我的编译依赖项会?
- c - openGLES 2 - 有没有办法在不扩展为无符号字节的情况下加载每 1 位一个 alpha 元素的纹理?