Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab F解决变量问题,_Matlab_Optimization_Least Squares - Fatal编程技术网

Matlab F解决变量问题,

Matlab F解决变量问题,,matlab,optimization,least-squares,Matlab,Optimization,Least Squares,我有这个matlab函数 function [f]=ErrorFun(a,b,c) global I global phi f = sum((a+b.*cos(phi)+c.*sin(phi)-I).^2); end length(a)=length(b)=length(phi)=length(c)=length(I)N。我想用fsolve,但我不知道怎么做ErrorFun是一个最小二乘问题。文档中说 X=fsolve(FUN,X0)从矩阵X0开始,尝试求解

我有这个matlab函数

function [f]=ErrorFun(a,b,c)
    global I     
    global phi

    f = sum((a+b.*cos(phi)+c.*sin(phi)-I).^2);
end
length(a)=length(b)=length(phi)=length(c)=length(I)N
。我想用fsolve,但我不知道怎么做
ErrorFun
是一个最小二乘问题。

文档中说

X=fsolve(FUN,X0)
从矩阵
X0
开始,尝试求解
FUN
中的方程式
FUN
接受输入
X
并返回 在
X
处计算的方程值
F

因此,您需要重写函数,使其接受单个参数向量作为输入。例如,在你的情况下

function f = ErrorFun(x)
    global I phi
    n = length(phi) ;
    a = x(1:n) ;
    b = x(n+1:2*n) ;
    c = x(2*n+1:3*n) ;

    f = sum((a+b.*cos(phi)+c.*sin(phi)-I).^2) ;
end
然后使用此函数和一些初始向量调用
fsolve