NDSolve 的问题
mathematica吧
全部回复
仅看楼主
level 8
我的尝试:
With[
{mu = 4.5},
NDSolve[{
(mu + 1)*r''[t] - r[t]*Theta'[t]^2 + g*(mu - Cos[Theta[t]]) == 0,
r[t]*Theta''[t] + 2 r'[t]*Theta'[t] + g*Sin[Theta[t]] == 0,
r[0] == 1,
Theta[0] == Pi/2,
r'[0] == 0,
Theta'[0] == 0
}, {r, Theta}, {t, 0, 100}]
]
(a)问里面的system startf from rest 是个啥意思?我估计是理解错了?
一直解不出来,显示NDSolve::ndnum: Encountered non-numerical value for a derivative at t == 0.`.
两个条件 r'[0] == 0, Theta'[0] == 0我都试着改过了,但是还是不行。。。
2019年12月13日 11点12分 1
吧务
level 10
start from rest那一坨是说从r=1,theta=pi/2的静止状态开始,也就是说再加上导数为零的初始条件,你已经加了。
报错是说,在t=0处(也就是刚开始算的时候)计算导数的过程中发现结果不是数值(也就是说可能包含没有值的符号)
为什么?因为你没给g赋值。。。。
With[{mu = 4.5, g = 9.8},
NDSolve[{(mu + 1)*r''[t] - r[t]*Theta'[t]^2 +
g*(mu - Cos[Theta[t]]) == 0,
r[t]*Theta''[t] + 2 r'[t]*Theta'[t] + g*Sin[Theta[t]] == 0,
r[0] == 1, Theta[0] == Pi/2, r'[0] == 0, Theta'[0] == 0}, {r,
Theta}, {t, 0, 100}]]
2019年12月14日 04点12分 2
操。。。就这么简单。。。我**了。。。谢谢!!
2019年12月14日 10点12分
level 8
顺便再求助一下
(c)问是什么意思?
我没看懂。。。
2019年12月14日 10点12分 3
我猜是让在笛卡尔坐标系下画轨迹吧
2019年12月14日 11点12分
@asdasd1dsadsa 我猜也是 但是那个Theta是从南面measure的 x轴正方向是90度。。。这个也不太好转换啊
2019年12月14日 12点12分
@asdasd1dsadsa 原图我发楼下了 初始位置theta=90 它从右边放下。。。这个坐标不太好转换吧?
2019年12月14日 12点12分
@郁博士CasperYC 我觉得没什么不好转换的。此外顺便一提:CoordinateTransform系列功能可用于坐标转换
2019年12月14日 12点12分
level 8
2019年12月14日 12点12分 4
level 8
最后一问搞定了
谢谢
想太多了!
2019年12月14日 19点12分 5
1