|
楼主 |
发表于 2009-4-3 21:51
|
显示全部楼层
求助:循环求解的问题
function F=myf001(q)
L=load('ganchang.txt'); n=length(L);
syms t
T=load('shijian.txt'); N=length(T);
load yizhijiao.mat; o=length(U); %U为独立坐标变量%
for i=1:N %N是时间离散次数%
t=T(i); u=subs(U,t); Q=q(7)-u; %附加驱动约束%
MK(1)=q(1)-1/2*L(1)*cos(q(7)); MK(2)=q(n+1)-1/2*L(1)*sin(q(7));
for i=2:n
MK(2*i-1)=q(i)-1/2*L(i)*cos(q(2*n+i))-q(i-1)-1/2*L(i-1)*cos(q(2*n+i-1));
MK(2*i)=q(n+i)-1/2*L(i)*sin(q(2*n+i))-q(n+i-1)-1/2*L(i-1)*sin(q(2*n+i-1));
end
MK(2*n+1)=40-q(n)-1/2*L(n)*cos(q(3*n)); MK(2*n+2)=10-q(2*n)-1/2*L(n)*sin(q(3*n));
F=[MK';Q];
end
我的L=[10 40 30];T=[0 0.2 0.4 0.6 0.8 1.0]
function myf02
L=load('ganchang.txt'); n=length(L);
xr0=[1 1 1]; yr0=[1 1 1]; m0=[0.5 0.5 0.5]; q0=[xr0';yr0';m0'];
options=optimset('Display','iter'); q=fsolve(@myf001,q0,options)
我要对上面的方程myf001在t取不同的值时分别求解q的值可以怎么做呀?
我用for i=1:N %N是时间离散次数%
q=fsolve(@myf001,q0,options)
end只能连续输出6次时间t(6)=1.0时q的值。请教一下,这类的循环计算可以怎么实现呀?
[ 本帖最后由 ChaChing 于 2009-5-2 11:00 编辑 ] |
|