51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2938|回复: 0
打印 上一主题 下一主题

[原创] matlab中迭代中加入循环的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-6-11 16:30:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想问一下各位大侠,下面的程序如果v是一个值的话是可以运行的,就是通过迭代求a和b的收敛值,但是现在我想求v中每个元素对应的a、b值。不知道怎么加循环,还望各位大侠赐教!!!
clear;clc
v:%%%%   v是一个2000 x 1的向量
c=3.542;
AOA=[-180,0,180];
CL=[0,0,0];
CD=[0.5 0.5 0.5];
a(1)=0;
b(1)=0;
w=12.1*2*pi/60;
r=[2.7333];
i=1;
n=2000;
d=1;
B=3;
theta=0;
%for k=1:2000
%v=v(k);
    while (abs(d)>1e-6)
    phi(i)=atan(1-a(i))*v/((1+b(i))*w*r)*180/pi;
    f1(i)=1.5*(61.5-r)/r/sin(pi*phi(i)/180);
    F1(i)=2*acos(exp(-f1(i)))/pi;
    F(i)=F1(i);
    A(i)=phi(i)-0;
    cl(i)=interp1(AOA,CL,A(i));
    cd(i)=interp1(AOA,CD,A(i));
    cn(i)=cl(i)*cos(pi*phi(i)/180)+cd(i)*sin(pi*phi(i)/180);
    ct(i)=cl(i)*sin(pi*phi(i)/180)-cd(i)*cos(pi*phi(i)/180);
    delta=c*B/r/(2*pi);
    a(i+1)=1/((4*F(i)*sin(pi*phi(i)/180)*sin(pi*phi(i)/180)/cn(i)/delta)+1);
    b(i+1)=1/((4*F(i)*sin(pi*phi(i)/180)*cos(pi*phi(i)/180)/ct(i)/delta)-1);
     d=b(i+1)-b(i);
       i=i+1;
          if(i>n)error('n is full');
          return;
          end
    end
%end
a;
b;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 22:37 , Processed in 0.065695 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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