Matlab F解决变量问题,
我有这个matlab函数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开始,尝试求解
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