我要用mathematica求一个方程组的数值解,可是应该是程序有问题出不来结果,麻烦你帮我看看,是要求这个方程组的x'[t]=-ax[t],y'[t]=x[t],x'[0]=0,y'[0]=0,求它的数值解,可以的话再画出图来,其中a是常数,

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 07:56:46
我要用mathematica求一个方程组的数值解,可是应该是程序有问题出不来结果,麻烦你帮我看看,是要求这个方程组的x'[t]=-ax[t],y'[t]=x[t],x'[0]=0,y'[0]=0,求它的数值解,可以的话再画出图来,其中a是常数,

我要用mathematica求一个方程组的数值解,可是应该是程序有问题出不来结果,麻烦你帮我看看,是要求这个方程组的x'[t]=-ax[t],y'[t]=x[t],x'[0]=0,y'[0]=0,求它的数值解,可以的话再画出图来,其中a是常数,
我要用mathematica求一个方程组的数值解,可是应该是程序有问题出不来结果,麻烦你帮我看看,
是要求这个方程组的x'[t]=-ax[t],y'[t]=x[t],x'[0]=0,y'[0]=0,求它的数值解,可以的话再画出图来,其中a是常数,我取了a的值为4/3.
ClearAll["Global`*"];
s1 = NDSolve[{x'[t] == -4 x[t]/3,y'[t] == x[t],x[0] == 0,
y[0] == 1},{x[t],y[t]},{t,0,20}]
x[t] = x[t] /.s1
y[t] = y[t] /.s1
ParametricPlot[{x[t],y[t]},{t,0,20},AspectRatio -> Automatic]

我要用mathematica求一个方程组的数值解,可是应该是程序有问题出不来结果,麻烦你帮我看看,是要求这个方程组的x'[t]=-ax[t],y'[t]=x[t],x'[0]=0,y'[0]=0,求它的数值解,可以的话再画出图来,其中a是常数,
x[t],y[t]

x[t] = x[t] /.s1
y[t] = y[t] /.s1
有 Syntax错误,这样整体赋值将导致 x[其它] 无定义.
不妨改成:
ClearAll["Global`*"];
s1 = NDSolve[{x'[t] == -4 x[t]/3,y'[t] == x[t],x[0] == 0,
y[0] == 1},{x,y},{t,0,20}]
ParametricPlot[{(x[t] /.s1)[[1]],(y[t] /.s1)[[1]]},{t,0,20},
AspectRatio -> Automatic]
-------------------------
如果非要赋值,请这样:
ClearAll["Global`*"];
s1 = NDSolve[{x'[t] == -4 x[t]/3,y'[t] == x[t],x[0] == 0,
y[0] == 1},{x,y},{t,0,20}]
X[t_] := (x[t] /.s1)[[1]]
Y[t_] := (y[t] /.s1)[[1]]
ParametricPlot[{X[t],Y[t]},{t,0,20},AspectRatio -> Automatic]
--------------------------
剩下的就只剩微分方程本身的问题了

楼下正解。

yohanchn 正解