标题:程序出错,不知如何改正。求帮助,提示错误在27行
取消只看楼主
湖蓝2013
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-5-24
 问题点数:0 回复次数:0 
程序出错,不知如何改正。求帮助,提示错误在27行
function [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30]=suanfa()
%参数设定
G_max=250000;
M_0=8;
V_0=5;
T=10;
N=10;
np=5;
t=50;
n=30;
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30;
for g=1:G_max
%决定分流数目
M(1:n)=[M_0];
V(1:n)=[V_0];
n(1:N)=[0];
for i=1:N
n(i)=min(max(1,floor(M(i)*V(i)/T)),np);
end
%水流演化
A(1:N,1:n)=[0];
TU(1:N,1:3)=[0];
X(1:N,1:n)=[0];
U(1:N,1:n(i))=[0];
r=rand(1)*((-2)*1)+1;
for i=1:N
    X(i,1:n)=eval('[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30]');
    for I=1:n
       q=q();%  调用子函数
       X(i,I)=X(i,I)+q;
       A(i,I)=X(i,1:n);
    end
    TU(i,3)=TU(i,2);
    TU(i,2)=TU(i,1);
    TU(i,1)=X(i);
    for k=i:n(i)
        U(i,k)=f1(X(i,1:n));%调用子函数   
    end
end
%计算分流重量与分流速度
for i=1:N
    for k=1:n(i)
        for v=1:n(i)
            a=0;
            a=a+v;
        end
        w(i,k)=((n(i)+1-k)/a)*M(i);
        S(i)=M(i)*f1(X(i,1:n));
        B(i,k)=w(i,k)*f1(U(i,k));
        M_g=M(i)/w(i,k);
        if squrt(2*9.8*(S(i)-B(i,k))/w(i,k)+M_g*V(i)^2)>0
            b(i,k)=squrt(2*9.8*(S(i)-B(i,k))/w(i,k)+M_g*V(i)^2);
        else b(i,k)=0;
        end
    end
end        
%汇流
for i=1:N
    for k=1:n(i)
        for K=k:n(i)
        if U(i,k)==U(i,K)
            m(i,k)=w(i,K)+w(i,k);
            v(i,k)=(w(i,k)*b(i,k)+w(i,K)*b(i,k))/(w(i,k)+w(i,K));
        else m(i,k)=w(i,k);
            v(i,k)=b(i,k);
        end
        end
    end
end
%判断
v=0;
for i=1:N
    for k=1:n(i)
        if v(i,k)>0
            v=1;
        end
    end
end
if v==1
    for i=1:N
        for k=1:n(i)
            m(i,k)=(1-1/t)*m(i,k);
        end
    end
    %降雨
    for i=1:N
        Xp(1:i,1:n)=[0];
        for c=1:n
            X(i,c)=X(i,c)+q;
            Xp(i,1:n)=X(i,1:n);
        end
        for k=1:i
            for c=1:n(i)
                M_k=0;
                M_k=m(k,c)+M_k;
            end
        end
        Mp(i)=(M_0-M_k)*M(i)/M_k;
        Vp(i)=V_0;
    end
    if Xp(i,1:n)<TU(i,1)
        TU(i,1)=Xp(i,1:n);
    else if Xp(i,1:n)<TU(i,2)
            TU(i,2)=Xp(i,1:n);
        else if Xp(i,1:n)<TU(i,3)
                TU(i,3)=Xp(i,1:n);
            else X(i)=U(i,1:n)
            end
        end
    end
    else for i=1:N
        for k=1:n(i)
            m(i,k)=0;
        end
    end
    %降雨
    for i=1:N
        Xp(1:i,1:n)=[0];
        for c=1:n
            X(i,c)=X(i,c)+q;
            Xp(i,1:n)=X(i,1:n);
        end
        for k=1:i
            M_k=0;
            M_k=M(k)+M_k;
        end
        Mp(i)=M(i)*M_0/M_k;
        Vp(i)=V_0;
    end
    if Xp(i,1:n)<TU(i,1)
        TU(i,1)=Xp(i,1:n);
    else if Xp(i,1:n)<TU(i,2)
            TU(i,2)=Xp(i,1:n);
        else if Xp(i,1:n)<TU(i,3)
                TU(i,3)=Xp(i,1:n);
            else X(i)=U(i,1:n)
            end
        end
    end
end
%水流演化
A(1:N,1:n)=[0];
TU(1:N,1:3)=[0];
X(1:N,1:n)=[0];
U(1:N,1:n(i))=[0];
r=rand(1)*((-2)*1)+1;
for i=1:N
X(i,1:n)=Xp(i,1:n);
    for I=1:n
       q=q( input_args );%  调用子函数
       X(i,I)=X(i,I)+q;
       A(i,I)=X(i,1:n);
    end
    TU(i,3)=TU(i,2);
    TU(i,2)=TU(i,1);
    TU(i,1)=X(i);
    for k=i:n(i)
        U(i,k)=f1(X(i,1:n));%调用子函数   
    end
end
end
for i=1:N
    [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30]=A(i,1:n);
end
end
%子函数
function [f] = f1(X)%子函数 sphere测试函数
f=0;
    for i=1:n
        f=X(i)^2+f;
    end
end
function [f] = f2(X)%子函数 rosenbrock测试函数
d=n-1;
f=0;
for i=1:d
  f=(X(i)^2-X(i+1))^2+(X(i)-1)^2+f;
end
end
function [f] = f3(X)%子函数 rastrigrin测试函数
d=0;
for i=1:n
  d=X(i)^2-10*cos(2*pi*X(i))+d;
end
f=10*n+d;
end
function [q] =q()% 子函数
q=rand(1)*((-2)*r)+r;
end
搜索更多相关主题的帖子: function 如何 
2013-05-24 10:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407902-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.153779 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved