新手求助,感谢万分!
mathematica吧
全部回复
仅看楼主
level 4
lwy1993414 楼主
请吧内大神帮忙运行一下这段求微分方程的代码,我查破头也不懂到底哪里出了问题,万分感谢~
s = NDSolve[{x'[
t] == -I*(t*x[t] - (3/(2*(t + 44.132*10^6)))*5.25*10^34*x[t]*
Abs[x[t]]^2 +
1.5*1.25*10^33*Conjugate[x[t]]*Conjugate[x[t]]*
y[t]/(t + 44.132*10^6)) - 0.5*993*x[t] +
0.25*100/(t + 44.132*10^6),
y'[t] == -I*((3*(t + 44.132*10^6) - 132.25*10^6) -
0.5*(-8.3*10^32)*y[t]*Abs[y[t]]*
Abs[y[t]]/(t + 44.132*10^6) +
0.16*1.25*10^33*x[t]^3/(t + 44.132*10^6)) - 1900*0.5*y[t]},
x[0] == 10^(-8), y[0] == 10^(-8), {x, y}, {t, 0, 1000}];
ParametricPlot[Evaluate[{x[t], y[t]} /. s], {t, 0, 1000}]
2020年06月30日 08点06分 1
level 4
lwy1993414 楼主
mma对新手太不友好了,各种报错,都不知道错在哪里[黑线]
2020年06月30日 09点06分 2
level 4
lwy1993414 楼主
请问这个提示是什么意思?
2020年06月30日 09点06分 3
前面出错没有得出正确结果导致后面没法替换
2020年06月30日 09点06分
level 9
这不是提示的挺明显的嘛
初始值也算作方程组的,你前面方程组的花括号要括到那两个初始值
还有,t的范围取这么大打算跑多久?
2020年06月30日 09点06分 4
谢谢谢谢!我的错,太马虎了[怒][怒]真想原地自杀
2020年06月30日 09点06分
求助大佬,为什么算了半天出来也没提示错误,就是只出现一个空的坐标,这个要从什么方面去解决。。。[啊]
2020年06月30日 09点06分
@lwy1993414 都说了你t的取值范围太大了,你自己估算下这个解大概在哪个区间
2020年06月30日 09点06分
@0笑叹浮生若梦0 我刚刚拿帮助里面例子试了下,发现就算区间取大了影响也不大.推测算这么慢的原因是因为涉及到了复数?
2020年06月30日 10点06分
level 9
根本的错误在方程,用最简单的欧拉差分格式算两步就知道了,这发散速度也太离谱了。
2020年06月30日 15点06分 5
终于有个懂这个方程的人来了[真棒]
2020年06月30日 21点06分
感谢大神。。。所以这个方程太刚了是这个意思吗?方程本身是从nature的文献里抄的,他们模拟出来了,我有个类似的结果也需要这个方程模拟一下,就不行
2020年07月01日 06点07分
@lwy1993414 要么理解错了,要么抄错了。
2020年07月01日 07点07分
@逍遥诸葛亮 那肯定是理解错了[狂汗]
2020年07月01日 12点07分
1