分岔测试中折线异常水平问题排查:代码修改后绘图异常
分岔现象代码异常排查求助
我正在用两个不同方程和参数测试分岔现象,第一部分代码运行正常,但复制代码仅修改一个方程和一个参数后,蓝线(r*x)却处于横轴位置,与预期不符。请求排查代码中导致该异常的原因:
正常运行的代码
assume(x>=0) assume(x,"real") rhigh = 1 rlow = 0.99 accuracy=0.000001 r=0.45 n=0 while abs(rhigh-rlow)>accuracy: r=(rhigh+rlow)/2 n=n+1 if len(solve((x^2)/(1+x^2)-r*x==0,x))==2: break elif len(solve((2*x^2)/(1+x^2)-r*x==0,x))==1: rhigh=r else: rlow=r print(r) print(n) plot(r*x,(x,0,5))+plot((2*x^2)/(1+x^2)-r*x,(x,0,5),axes_labels=["x","values of x'"],color="cyan")
对应正常绘图

修改后异常的代码
assume(x>=0) assume(x,"real") rhigh = 1 rlow = 0.7 accuracy=0.000001 r=0.45 n=0 while abs(rhigh-rlow)>accuracy: r=(rhigh+rlow)/2 n=n+1 if len(solve((x^2)/(1+x^2)-r*x==0,x))==2: break elif len(solve((1.5*x^21+x^2)-r*x==0,x))==1: rhigh=r else: rlow=r print(r) print(n) plot((r*x),(x,0,5))+plot(((1.5*x^21+x^2)-r*x),(x,0,5),axes_labels=["x","values of x'"],color="pink")
对应异常绘图

无法确定代码中哪部分导致蓝线处于横轴位置,请求协助排查。
内容的提问来源于stack exchange,提问作者Georgia Cox
相关产品推荐
相关产品推荐

