matlab - MATLAB 想要将显式欧拉算法转换为一阶 ODE 系统的隐式欧拉算法
问题描述
首先,我不能为此使用任何内置的 ODE 求解器。我用显式欧拉方法对这个 ODE 系统进行了编码,但我需要用隐式欧拉方法重写它。如果我只是将“i”切换为“i+1”(例如“y(1,i)”切换为“y(1,i+1)”),那么答案就大错特错了。
A_init= 4;
B_init= 1.1;
C_init= 4;
y0 = [A_init; B_init; C_init];
h = 20/100;
n = 100;
t0 = 0;
tf = 20;
t = linspace(t0,tf,n);
y = zeros(numel(y0) , n);
y(:, 1) = y0(:);
dAdt= @(a,b) 7.27*(b-a*b+ a-(8.375*10^-5)*a^3);
dBdt= @(b,a,c)(-b-a*b+c)/77.27;
dCdt= @(c,a) 0.4*(a-c);
for i = 1:n-1
y(1,i+1) = y(1,i) +h*feval(dAdt,y(1,i),y(2,i));
y(3,i+1) = y(3,i) +h*feval(dCdt,y(3,i),y(1,i));
y(2,i+1) = y(2,i) +h*feval(dBdt,y(2,i),y(1,i),y(3,i));
end
解决方案
推荐阅读
- android - 错误:外部资源 http://schemas.android.com/apk/res/android 未注册
- c - 我该如何解决这个问题预处理器?
- r - 在 R 中创建一个变量,指示数字“子组”行是否按组总和为“总”行
- python - 如何将数据从 C++ 发送到 Python
- rust - 如何预先计算值并分配给常量
- python - 绕过聊天限制作为 mod discord.py
- c# - 在 Timer.Interval 上设置计数器值
- python - 在 FastAPI 中获取查询参数作为字典
- python - 带有 Steam 客户端的 UI 自动化
- modal-dialog - 使用样式自动 iOS 13 将视图呈现为模态时,触摸事件无法正常工作