二阶微分方程组求解
求解此方程组。本人解出来的全是直线,望各位高手帮助! 程序写错了? 如果短可以贴出来 本帖最后由 牛小贱 于 2014-3-12 13:02 编辑回复 2 # VibrationMaster 的帖子
M文件函数:
function dydt=fun3(t,y)
q1=0.032;
q2=0.032;
q3=0.048;
q4=2.353*10^-3;
q5=2.174*10^-3;
q6=5.262*10^-3;
q7=0.0029;
q8=0.0019;
q9=0.0088;
l=0.178;
v1=7000;
v2=6500;
v3=7000;
v4=7500;
u1=2.842*10^-5*(v1^2+v2^2+v3^2+v4^2);
u2=2.842*10^-5*(v4^2-v2^2)*l;
u3=2.842*10^-5*(v3^2-v1^2)*l;
u4=3.232*10^-7*(-v1^2+v2^2-v3^2+v4^2);
m=0.3;
g=9.81;
dydt=zeros(12,1);
dydt(1)=y(2);
dydt(3)=y(4);
dydt(5)=y(6);
dydt(7)=y(8);
dydt(9)=y(10);
dydt(11)=y(12);
dydt(2)=((sin(y(9))*cos(y(11))*cos(y(7))+sin(y(11))*sin(y(7)))*u1-q1*y(2))/m;
dydt(4)=((sin(y(9))*sin(y(11))*cos(y(7))-cos(y(11))*sin(y(7)))*u1-q2*y(4))/m;
dydt(6)=(cos(y(9))*cos(y(7))*u1-q3*y(6)-m*g)/m;
dydt(8)=(u2+(q5-q6)*y(10)*y(12)-q7*y(8))/q4;
dydt(10)=(u3+(q4-q6)*y(8)*y(12)-q8*y(10))/q5;
dydt(12)=(u4+(q4-q5)*y(8)*y(10)-q9*y(12))/q6;
end调用m文件函数:
=ode45('fun4',,);
plot(t,y(5,1),'.k',t,y(6,1),'.r',t,y(7,1),':c',t,y(8,1),':b')
title('不需要标题吧 ');
xlabel('t');
ylabel('y');
本帖最后由 牛小贱 于 2014-3-12 13:00 编辑
function s
=ode45(@fun,,);
size(t),size(y)
plot(t,y(:,5),'.k',t,y(:,6),'.r',t,y(:,7),':c',t,y(:,8),':b')
title('不需要标题吧');
xlabel('t');
ylabel('y');
function dydt=fun(t,y)
q1=0.032;
q2=0.032;
q3=0.048;
q4=2.353*10^-3;
q5=2.174*10^-3;
q6=5.262*10^-3;
q7=0.0029;
q8=0.0019;
q9=0.0088;
l=0.178;
v1=7000;
v2=6500;
v3=7000;
v4=7500;
u1=2.842*10^-5*(v1^2+v2^2+v3^2+v4^2);
u2=2.842*10^-5*(v4^2-v2^2)*l;
u3=2.842*10^-5*(v3^2-v1^2)*l;
u4=3.232*10^-7*(-v1^2+v2^2-v3^2+v4^2);
m=0.3;
g=9.81;
dydt=zeros(12,1);
dydt(1)=y(2);
dydt(3)=y(4);
dydt(5)=y(6);
dydt(7)=y(8);
dydt(9)=y(10);
dydt(11)=y(12);
dydt(2)=((sin(y(9))*cos(y(11))*cos(y(7))+sin(y(11))*sin(y(7)))*u1-q1*y(2))/m;
dydt(4)=((sin(y(9))*sin(y(11))*cos(y(7))-cos(y(11))*sin(y(7)))*u1-q2*y(4))/m;
dydt(6)=(cos(y(9))*cos(y(7))*u1-q3*y(6)-m*g)/m;
dydt(8)=(u2+(q5-q6)*y(10)*y(12)-q7*y(8))/q4;
dydt(10)=(u3+(q4-q6)*y(8)*y(12)-q8*y(10))/q5;
dydt(12)=(u4+(q4-q5)*y(8)*y(10)-q9*y(12))/q6;
回复 4 # shengshengchina 的帖子
运行结果还是不太理想啊,当改变参数V1,V2,V3,V4(可变量).使其v1+v3=v2+v4,则输出的Z(y(3))就会上下波动,应该是一直增大或者保持水平,除非当小于某个值时才会减小。还有我看我们的主函数不一样,而你写的主函数上的 size(t),size(y),这句什么意思、什么作用啊,还是不明白。望给与解答,谢谢你前面的帮助啊!
本帖最后由 shengshengchina 于 2012-3-24 16:13 编辑
我的size(t),size(y),没什么用,刚开始我是想检查你的数据来着,后来发现没什么问题,但是忘了删去这语句。你说的z变量,我都不知道在哪,我也不知道你说的Z(y(3))数据是指哪个数据,另外你说的它为什么要一直增大或者保持水平,我就更不知道为什么了。 aaaaaaaaaaaaaa {:{13}:}{:{13}:}{:{13}:}{:{13}:} 数值解,初值很主要!
页:
[1]