为fsolve构建函数向量的困难

时间:2015-04-17 12:39:20

标签: matlab function loops optimization vector

我正在尝试在matlab中使用fsolve实现一个程序。我希望程序能够成对地比较n个元素,并且每个比较是函数向量F中的一行,然后应用fsolve

到目前为止,我已经编写了3个元素的程序(比较1和2,1以及3,2和3),明确地编写了每个函数,并按照需要运行。但我现在尝试在matlab函数内的循环中构造函数向量。但是这似乎不起作用,因为在fsolve的每次迭代中调用函数,因此值以意外的方式改变。关于可以做什么的任何建议?

主程序如下:

A = [1 1;-1 -1;-1 1;1 -1];

U =[0 0];

Ustart= [6 7]; 

f= @(Uest)TimeDiffs(U,A,Ustart);

TimeDiffs函数如下所示:

function F = TimeDiffs(U,A,Uest)

F=[];
funcnum=1;

    for q= 1:length(A)

        for p= q+1:length(A)

            td= norm(U-A(q,:))-norm(U-A(p,:));

            F(funcnum)= norm(Uest-A(q,:))-norm(Uest-A(p,:))-td;
            funcnum=funcnum+1;

        end
    end
end

fsolve中使用的函数中使用循环时似乎存在问题。有没有人有类似的经历?

0 个答案:

没有答案