信息

这个问题到此为止。重新打开以编辑或回答。

如何为具有可变参数的ode系统创建一个表面

1次查看(最近30天)
阿尔瓦罗·赛
阿尔瓦罗·赛 2020年5月12日
关闭:MATLAB回答机器人 2021年8月20日
大家好。
我喜欢为下面的颂歌系统做一个曲面。
函数代码是这样的
函数[H, H, ZH, Z] = fun123(muH)
清晰的所有
关闭所有
clc;
抽搐;
兰特(“状态”总和(100 *时钟));%的种子
numreps = 1;%迭代次数
j = 1: numreps
选择= odeset (“RelTol”1 e-6“统计数据”“上”);
%参数值
啊= 800;
啊= 0.16;
bH = 0.73;
bh = 0.73;
alphaH = 1.62;
alphah = 1.62;
lambdaH = 6.6 * 10 ^ 6;
lambdah = 6.6 * 10 ^ 6;
rH = 124 * 52个;
rh = 124 * 52个;
mu = 117 * 52个;这是可变的参数
mu = 117 * 52个;
muZ = 45 * 52个;
撒下= 6 * 10 ^ 9;
撒下= 6 * 10 ^ 9;
phiH = 1 * 10 ^ 4;
phih = 1 * 10 ^ 4;
varrhoH1 = 10 ^ 2;
varrhoH = varrhoH1 * lambdaH;
varrhoh1 = 10 ^ 2;
varrhoh = varrhoh1 * lambdah;
KH = 1 * 10 ^ 5;%的成年人主机
Kh = 1 * 10 ^ 5;%蝌蚪主机
KZH = 5.6 * 10 ^ 6;%游动蝌蚪
KZh = 5.6 * 10 ^ 6;%游动蝌蚪
% x (1) = H;x (2) = h;x (3) = ZH型;
% x (4) = Zh型;x (5) = Z;
G = @(t, x, ah, ah, bh, bh, muh, alpha,...
ah, lambda, lambda, rh, rh, phih,...
varrhoh, varrhoh, muZ, betaH, betaH, Kh, Kh, KZH, KZH)...
[啊* x (2) * exp (kh * x (2)) - bH * x (1) - alphaH * x (3);...
啊* x (1) - (bh +啊* exp (kh * x (2))) * (2) - alphah * x (4);...
rH * x (3) * exp (-KZH * x (3)) + lambdaH * x (3) * (x(1)。/ (varrhoH + x (1))) + x (5) * 8 * (x (1) / (x (1) + (2))) - x (3) * (bH + mu) - alphaH * x (1) * (x(3)。/ x (1) + (x (3) / x (1)) ^ 2 * ((phiH + 1) / phiH));...
rh * x (4) * exp (-KZh * x (4)) + lambdah * x (4) * (x(2)。/ (varrhoh + x (2))) + x (5) * 8 * (x (2) / (x (1) + (2))) - x (4) * (bh +啊* exp (kh * x (2)) + mu)——alphah * x (2) * (x(4)。/ x (2) + (x(4)。/ x (2)) ^ 2 * ((phih + 1) / phih));...
lambdaH * x (3) + lambdaH * x (4) - (5) * (muZ + 8 * (x (1) / (x (1) + (2))) + 8 * (x (2) / (x (1) + (2)))) - (lambdaH * x (3) * (x(1)。/(varrhoH + x(1))) + lambda * x(4) * (x(2))/ (varrhoh + x (2)))));
tspan = [0:0.00001:80];
X0 = [100 100 10 10 500];
(t, xa) =数值(@ (t, x) G (t, x,啊,啊,黑洞,黑洞,mu, mu,...
α, α h, lambda, lambda, rh, rh, phih,...
varrhoh, varrhoh, muZ, betaH, betaH, Kh, Kh, KZH, KZH)...
tspan x0,选项);
H = xa(: 1)”;
h = xa (:, 2) ';
Zh型= xa (:, 3) ';
ZH型= xa (:, 4) ';
Z = xa (:, 5) ';
结束
结束
我想做一个曲面来描述每个解的行为(H(t), H(t), ZH(t), ZH(t), Z(t))当参数变化时 \ mu_ {H} ,假设[1000:500:6000]。我想要的曲面和这个图形很相似
在给定的值[1000:500:6000]范围内评估µH。我实现生成上述表面的代码如下:
mu = (1 * 10 ^ 3:500:6 * 10 ^ 3);
HMC = [];
ZHMC = [];
市中心= 1:长度(mu)
[H, ZH] = fun123(muH(i));来计算函数中每个mu的值
HMC = [HMC;H];
ZHMC = [ZHMC;ZH型);
结束
然而,我认为这个结果是不正确的,因为 \ mu_ {H} 函数内的值未正确计算。
例如,如果我手动评估ode系统的一组值,在H (t)中的每个值的行为如下所示
如果=1000,H(t)在二维中的图像是这样的
如果=2000,H(t)在二维中的图像是这样的
如果=3000,H(t)在二维中的图像是这样的
在这个意义上,我希望其他人能帮我把这个曲面的范围变成三维的\mu

答案(1)

埃米尔哈姆萨
埃米尔哈姆萨 2020年5月12日
在函数定义内部,您再次将其设置为常量值
mu = 117 * 52个;这是可变的参数
mu = 117 * 52个;
不管你传递多少输入,它都会被覆盖,输出是相同的常量。你应该从函数定义中删除这一行。
9日评论
阿尔瓦罗·赛
阿尔瓦罗·赛 2020年5月15日
嗯. .好的,我需要制作其他图像,如果我有任何疑问,我会写一个新的帖子,非常感谢Ameer Hamza
问候

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!