Wolfram mathematica Mathematica解决给定误差
我需要解一个形式为Wolfram mathematica Mathematica解决给定误差,wolfram-mathematica,runge-kutta,Wolfram Mathematica,Runge Kutta,我需要解一个形式为w'=g(t,w(t))的微分方程,其中g的定义如下 g[t_, w_] := {f1[t, {w[[3]], w[[4]]}], f2[t, {w[[3]], w[[4]]}], w[[1]],w[[2]]}; f1和f2是 f1[t_, y_] := Sum[\[Mu][[i]] (s[[i]] - y)/Norm[s[[i]] - y]^2, {i, 1, 5}][[1]]; f2[t_, y_] := Sum[\[Mu][[i]] (s[[i]] - y)/Norm
w'=g(t,w(t))
的微分方程,其中g的定义如下
g[t_, w_] := {f1[t, {w[[3]], w[[4]]}], f2[t, {w[[3]], w[[4]]}], w[[1]],w[[2]]};
f1和f2是
f1[t_, y_] := Sum[\[Mu][[i]] (s[[i]] - y)/Norm[s[[i]] - y]^2, {i, 1, 5}][[1]];
f2[t_, y_] := Sum[\[Mu][[i]] (s[[i]] - y)/Norm[s[[i]] - y]^2, {i, 1, 5}][[2]];
其他一切都已正确定义,不是错误的原因。
然而当我使用
sout = NDSolve[{y'[tvar] == g[tvar, y[tvar]],
y[0] == {Cos[Pi/6], Sin[Pi/6], 0, 0}}, y, {tvar, 0, 2}, Method -> "ExplicitRungeKutta"];
我得到了错误
Part::partw: Part 3 of y[tvar] does not exist.
Part::partw: Part 4 of y[tvar] does not exist.
我看了其他问题,但没有一个能解决这个问题。你想在$R^4$中找到一个满足微分方程的函数 我不认为DSolve和NDSolve有一种处理向量微分方程的标准方法,除非用显式名称或维度索引表示每个组件 下面是一个工作示例,它可以在维度4中无需方法规范的情况下执行,其符号与您的问题类似:
sout={w1[t],w2[t],w3[t],w4[t]} /. NDSolve[{
w1'[t]== t*w2[t],
w2'[t]== 2*t*w1[t],
w3'[t]==-2*w2[t]+w1[t],
w4'[t]== t*w3[t]-w1[t]+w2[t],
w1[0]==0,
w2[0]==1,
w3[0]==1,
w4[0]==0
},{w1[t],w2[t],w3[t],w4[t]},{t,0,2}]
ParametricPlot[{{sout[[1, 1]], sout[[1, 3]]}, {sout[[1, 2]], sout[[1, 4]]}}, {t, 0, 2}]
我认为您将能够根据自己的需要调整此工作示例
我没有使用你的原始问题,因为我想专注于Mathematica的规范,而不是方程的数学。有一些常数,例如
Mu
和s
,您没有给出。设置mathematica,以便了解y
是向量函数,这是一个棘手的问题。查看此处并在该网站上询问您是否需要更多帮助