声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1678|回复: 4

[编程技巧] [求助]一个实例的求解出现问题,大侠请进

[复制链接]
发表于 2006-3-27 12:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
那位大侠给看一下,本人不胜感激
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-3-27 12:57 | 显示全部楼层
M文件是:
function fun=xuan(t,x,xd)
m1=2;
m2=5;
L=5;
p=100;
k=1000;
fun=[xd(1)-x(7);
xd(2)-x(8);
xd(3)-x(9);
xd(4)-x(10);
xd(5)-x(11);
xd(6)-x(12);
m2*xd(7)-m2*x(6)*sin(x(5))*xd(11)+m2*cos(x(5))*xd(12)-cos(conj(x(5)))*x(15)-sin(conj(x(5)))*x(16)-m2*x(6)*cos(x(5))*xd(11)^2-2*xd(11)*m2*xd(12)*sin(x(5));
m2*xd(8)+m2*x(6)*cos(x(5))*xd(11)+m2*sin(x(5))*xd(12)-sin(conj(x(5)))*x(15)+cos(conj(x(5)))*x(16)-m2*x(6)*sin(x(5))*xd(11)^2+2*xd(11)*m2*xd(12)*cos(x(5));
m1*xd(9)+x(13)+cos(conj(x(5)))*x(15)+sin(conj(x(5)))*x(16);
m1*xd(10)+x(14)+sin(conj(x(5)))*x(15)-cos(conj(x(5)))*x(16);
-m2*x(6)*sin(x(5))*xd(7)+m2*x(6)*cos(x(5))*xd(8)+(1/12*m1*L^2+m2*x(5)^2)*xd(11)+1/2*conj(L*sin(x(5)))*x(13)-1/2*conj(L*cos(x(5)))*x(14)+conj(-(x(3)-x(1))*sin(x(5))+(x(4)-x(2))*cos(x(5)))*x(15)+conj((x(3)-x(1))*cos(x(5))+(x(4)-x(2))*sin(x(5)))*x(16)-p+2*xd(11)*m2*x(6)*xd(12);
m2*cos(x(5))*xd(7)+m2*sin(x(5))*xd(8)+m2*xd(12)+k*x(6)-x(15)-xd(11)^2*m2*x(6);
x(3)-1/2*L*cos(x(5));
x(4)-1/2*L*sin(x(5));
(x(3)-x(1))*cos(x(5))+(x(4)-x(2))*sin(x(5))-x(6);
(x(3)-x(1))*sin(x(5))-(x(4)-x(2))*cos(x(5))];
求解过程为:
x0=[0.1;0;1.0;0;0;0;2;2;2;2;2;2;2;2;2;2];x0f=[1;1;1;1;1;1;0;0;0;0;0;0;0;0;0;0];xd0=[2;2;2;2;2;2;1;1;1;1;1;1;0;0;0;0];xd0f=[];
[x0,xd0]=decic(@xuan,0,x0,x0f,xd0,xd0f);[x0,xd0]
错误为:
?? Error using ==> decic>sls
Try freeing 4 fixed components.

Error in ==> decic at 83
[dy,dyp] = sls(res,dfdy,dfdyp,neq,free_y,free_yp);
发表于 2006-3-27 18:10 | 显示全部楼层

回复:(lidongdu51)[求助]一个实例的求解出现问题,大...

<P>给出的x0多了4个</P>
 楼主| 发表于 2006-3-28 16:14 | 显示全部楼层
应该有16个未知量,如果减少4个x0的话,
出现的问题是:
x0=[0.1;0;1.0;0;0;0;2;2;2;2;2;2];x0f=[1;1;1;1;1;1;0;0;0;0;0;0];xd0=[2;2;2;2;2;2;1;1;1;1;1;1];xd0f=[];
[x0,xd0]=decic(@xuan,0,x0,x0f,xd0,xd0f);[x0,xd0]
??? Attempted to access x(15); index out of bounds because numel(x)=12.

Error in ==> xuan at 7
fun=[xd(1)-x(7);

Error in ==> decic at 72
res = feval(odefun,t0,y0,yp0,varargin{:});
 楼主| 发表于 2006-3-28 16:17 | 显示全部楼层
Happy,你看这个m文件,应该如何写求解命令.<BR> 非常感谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-20 21:42 , Processed in 0.060274 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表