信息

这个问题已经结束了。重新打开以编辑或回答。

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

1次观看(过去30天)
大家好。
我想为下面的颂诗体系画一个曲面。
函数的代码是这样的
函数[H, H, ZH, ZH, Z] = fun123(muH)
清晰的所有
关闭所有
clc;
抽搐;
兰特(“状态”总和(100 *时钟));%的种子
numreps = 1;迭代次数%
j = 1: numreps
选项= odeset(“RelTol”1 e-6“统计数据”“上”);
%参数值
aH = 800;
Ah = 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;
muH = 117*52;%这是变化的参数
Muh = 117*52;
muZ = 45*52;
betaH = 6*10^-9;
Betah = 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, muh,阿尔法,...
阿尔法,羔羊,羔羊,rh, rh, phih, 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))) + lambdah * 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, phih,...
varrhoh varrhoh muZ betaH betaH Kh Kh KZH KZH),...
Tspan, x0, options);
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。我正在实现的生成上述曲面的代码如下:
muH = (1*10^3:500:6*10^3);
HMC = [];
ZHMC = [];
fori = 1:长度(muH)
[H, ZH] = fun123(muH(i));计算函数中的每个值
HMC = [HMC;H];
ZHMC = [ZHMC;ZH型);
结束
然而,我认为这个结果是不正确的,因为 \ mu_ {H} 在函数中不能正确地计算值。
例如,如果我手动计算一组μ值的odes系统,H (t)中每个值的行为如下所示
如果\mu=1000, H(t)的二维图形是这样的
如果\mu=2000, H(t)的二维图形是这样的
如果\mu=3000, H(t)的二维图形是这样的
从这个意义上说,我希望有人能帮我把这个曲面做成3-D的,范围是\mu

答案(1)

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

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!