为什么不M2函数被调用?有人能解释这个错误是什么以及如何修复它吗?
32视图(30天)
显示旧的评论
我有函数平方米
函数M2 = fRK4M2 (M1、M2)
M1 = 10;
M2 = 0;
mu_2 = 10 ^ 3;
K1 = 10 ^ 4;
K2 = 5 * 10 ^ 4;
M2 = (K1 * M1 * M1) - M1 (K2 * *平方米)(mu_2 *平方米);
这是我的M1函数
函数M1 = fRK4M1 (M1, M2, M3, O, P)
δ= 50;
K1 = 10 ^ 4;
Ko = 0.1;
n = 3;
Oa = 10;
Pa = 100;
mu_1 = 10 ^ 3;
K2 = 5 * 10 ^ 4;
K3 = 10 ^ 3;
γ= 75;
M1 =(δ* M1 * (1 - (M1 /γ))2 * K1 * M1 * M1-M1 * (K2。*平方米)- ((Oa-n) * K3 * M1 * M3)——(Ko * M1 (Pa-Oa) * * O) - (mu_1 * M1));
这是我的主要功能
clc;明确;
%输入时间
t (1) = 0;
dt = 0.1;%的时间间隔
t = 0: dt: 100;%时间跨度
%输入空数组
T = 0(长度(T), 1);% t空数组
M1 = 0(长度(t), 1);%为M1空数组
M2 = 0(长度(t), 1);%对M2空数组
为j = 1:长度((t))
T (j + 1) = T (j) + dt;
M1 (j + 1) = M1 (j) + 1. / (1 + exp (- t (j)));
k1M2 = dt * fRK4M2 (M2 (j), M1 (j));
k2M2 = dt * fRK4M2 (M2 (j) + k1M2/2, M1 (j) + k1M2/2);
k3M2 = dt * fRK4M2 (M2 (j) + k2M2/2, M1 (j) + k2M2/2);
k4M2 = dt * fRK4M2 (M2 (j) + k3M2, M1 (j) + k3M2/2);
平方米(j + 1) =平方米(j) + 1/6 * (k1M2 + 2 * k2M2 + 2 * k3M2 + k4M2);
k1M1 = dt * fRK4M1 (M1 (j), M2 (j));
k2M1 = dt * fRK4M1 (M2 (j) + k1M2/2, M1 (j) + k1M1/2);
k3M1 = dt * fRK4M1 (M2 (j) + k2M2/2, M1 (j) + k2M1/2);
k4M1 = dt * fRK4M1 (M2 (j) + k3M2/2, M1 (j) + k3M1/2);
M1 (j + 1) = M1 (j) + (1/6 * (k1M1 + (2 * k2M1) + (2 * k3M1) + k4M1));
结束
我得到的结果并不如预期的,有人请告诉我我的错和如何解决它。谢谢
答案(1)
Lakshya
约19小时前
你好,
您提供的代码初始化M1和M2到特定值(M1 = 10平方米= 0)内
fRK4M2
函数,它可能覆盖的值作为参数传递。如果你打算使用传递的参数,您可以删除这些作业的
fRK4M2
函数。
希望这个有帮助。