mathematica求解微分方程的数值解,做出图像,
问题描述:
mathematica求解微分方程的数值解,做出图像,
R = 0.008;
Y = 47*2*3.14;
z = 0.18;
m = 0.14;
k = 20;
g = 10;
f = 20;
i = 0.143;
e = 28;
NDSolve[{0.5*m*(R^4 *y[t]^2 *y'[t]^2)/(R*Y^2 + z^2 - R*y[t]^2) +
0.5*i*y'[t]^2 + 0.5*k*(R*Y^2 + z^2 - R*y[t]^2) + 0.5*k*z^2 -
k*z*Sqrt[R*Y^2 + z^2 - R*y[t]^2] + 0.5*f*(y[t] - Y)^2 -
m*g*(Sqrt[R*Y^2 + z^2 - R*y[t]^2] - z) == e,y[0] == 0,
y'[0] == 1},y[t],{t,10}];
Plot[Evaluate[y[t] /.%],{t,0,10}]
这是代码,我用的mathematica 8 看不出错误来.
答
NDSolve里的语法错了,是{t,0,10}而不是{t,10};另外对于常微分方程,所需的边界条件数目,为它的最高阶导数的阶数,并且边界的导数阶数要小于方程的阶数.也就是说你这里的条件多了一个,把那个y'[0]==1去掉,并且,你这里的边界给的不合理,所以在计算开始不久就耗尽了全部的积分步长.试了一下也没找到合理的边界条件,你自己试试吧.就是说主要是微分方程的系数的问题吧,因为这个是物理上的一个实际问题,有些常数我是大概的估计上,是这个问题吧?哦~方程系数也是你猜的啊,那么,很可能是的。