作业帮 > 数学 > 作业

mathematica 解微分方程组的问题,谢谢了

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/27 23:52:46
mathematica 解微分方程组的问题,谢谢了
R = 0.008;
r = 0.0125;
Y = 47.0*2.0*Pi;
Z = 0.09;
m = 0.08;
k = 9.0;
g = 9.8;
f = 0.000586;
e = 28;
NDsolve[{R^2*y[t]*y'[t] + z[t]*z'[t] == 0,
R^2*Y^2 + Z^2 == R^2*(Y[t])^2 + (z[t])^2,
0.5*m*(z'[t])^2 + 0.2*m*r^2*(y'[t])^2 + 0.5*k*(z[t] - Z)^2 +
0.5*f*(y[t] - Y)^2 - m*g*(z[t] - Z) == e, y[0] == Y,
z[0] == Z}, {z[t], y[t]}, {t, 0, 1}, MaxSteps -> 20000];
Plot[Evaluate[y[t] /. %], {t, 0, 1}]
之前问过的,我不太懂是哪里的问题,谢谢了
首先,是NDSolve而不是NDsolve,Mathematica是区分大小写的.
其次……其实你看看警告信息就该明白的——方程过定了,也就是,你给的方程数目过多了(两个未知数你给了三个方程),试着去掉了那个代数方程(也就是第二个方程,不含导数的那个)之后,就可解了.不过积分步长又是早早耗光了,但是好歹算到了0.3多(图上只到了0.15,那是因为后面是复根),比之前好很多嘛.
————
试着强制提升了一下计算精度,发现只能算到0.15左右.看来默认情况下能算到0.3是因为误差……
————
仔细一看,你的那个代数方程还写错了……是y[t]而不是Y[t].然后,去掉你的第一个方程,保留第二三个方程,这个问题就可解了!你试试!:

再问: ��Ļش�ܾ��ʣ���Ҳ������ͼ�