如何用matlab画出hopf分叉

如何用matlab画出hopf分叉,第1张

需要给出初值和参数r(代码中随机生成): % 初值及参数rx0 = randy0 = randr = rand% 迭代次数N = 100% 主程序x = zeros(N,1)*NaNy = xx(1) = x0y(1) = y0for n = 1:N-1 x(n+1) = r * x(n)*(1-y(n))y(n+1) = x(n)plot(x,y) drawnowend

为什么matlab求解非线性方程组,解出现负值?

从题主给出的程序代码,经分析和运行,在x=5的地方出现分叉的原因是迭代方程书写有错误,即x1处应为1-x1

错误的语句,fx2=(exp(-c*(1-ks)*x1*t))*t^(-1/ks)

更改的语句,fx2=(exp(-c*(1-ks)*(1-x1)*t))*t^(-1/ks)

还有有几个值得商榷:

1、从你的图形范围来看,用x0=[0.5,0.5]是否有点大,但对本题影响不是太大,可以考虑用x0=[0.05,0.05]

2、用integral积分函数,是可以用inf来表示的,这里有四处可以改为

Snd1(i)=integral(fnd_1,1,inf)

Snd2(i)=integral(fnd_2,1,inf)

S1=integral(f1,1,inf)

S2=integral(f2,1,inf)

3、更改后运行,其结果与你的期望值相符。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11570569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存