matlab fsolve迭代次数,求助:matlab 关于fsolve的循环求解的问题

各位大侠,小弟现在有一关于fsolve的循环求解的问题求助,还请各位大家多多指教,小弟先行拜谢了!现给出如下代码(注:代码是可以运行的,只是无法循环计算)。我要求能够分别输出关于时间t的各时刻的结果,但是我这样做了后,只能多次循环输出时间t的最后一组结果。还请各位指点一二,小弟感激不尽!!

function F=yueshufangcheng(q,t)

L=load('ganchang.txt');

n=length(L);

syms t

T=load('shijian.txt');

N=length(T);

load yizhijiao.mat;

o=length(U);  %U为独立坐标变量%

%===========================================

u=subs(U,t,T);

for i=1:N

MD=q(2*n+1:2*n+o)-u(i);  %附加驱动约束%

end

%u是随时间t变化的量,因此,MD也会随着时间而变化

%==============================================

if n==1

MK(1)=q(1)-1/2*L(1)*cos(q(2*n+1));

MK(2)=q(n+1)-1/2*L(1)*sin(q(2*n+1));

elseif n>=2

MK(1)=q(1)-1/2*L(1)*cos(q(2*n+1));

MK(2)=q(n+1)-1/2*L(1)*sin(q(2*n+1));

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)=0.4-q(n)-1/2*L(n)*cos(q(3*n));

MK(2*n+2)=0.1-q(2*n)-1/2*L(n)*sin(q(3*n));

end

%=====================================

F=[MK.';MD.'];

%MD会随着时间变化

%=====================================

function weixingjisuan01

xr0=[0.1 0.4 0.3];

yr0=[0.1 0.4 0.3];

m0=[0.5 0.9 -1];

q0=[xr0';yr0';m0'];

options=optimset('Display','iter');

T=load('shijian.txt');

N=length(T);

for i=1:N

q=fsolve(@yueshufangcheng01,q0,options)

end

save zuobiao.txt q -ASCII

相关数据如下:

杆长L=[0.1 0.4 0.3]

时间T=[0 0.2 0.4 0.6 0.8 1]

已知角U=[2*pi+1/4*pi*t]

再次拜谢各位啦!!

[本帖最后由 mooni 于 2009-5-12 14:39 编辑]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值