4.3非线性函数最小二乘拟合

%% 非线性函数-最小二乘法拟合     马玉华    2020.9.11
% 已知一组自变量数据x和函数值y,以及函数形式y=f(c,x),但是表达式的参数c不知道。对数据xy进行拟合,求解参数c
% 基本格式 c=lsqcurvefit(fun,c0,x,y)
% 完整格式 [c,Q]=lsqcurvefit(fun,c0,x,y,lb,ub),c0为需要设置的迭代初值,x、y为已知数据(矩阵,x为多元则使用多维数组),lb、ub为参数c的上下限(可不写)。c0、x、y、lb、ub都是向量
% 返回拟合参数c,误差平方和Q

% 示例1:拟合 y=ax^2+be^x
x = [0,1,2,3,4];           % 一元自变量数据
y = [0,5,14,27,44];        % 函数值数据
fun = @(c,x)  c(1)*x.^2 + c(2)*exp(x)     % 函数表达式
[c,Q]=lsqcurvefit(fun,[1,1],x,y)     % (函数fun,参数初值[1,1],数据x,数据y)

输出结果:

fun = 
    @(c,x)c(1)*x.^2+c(2)*exp(x)

c =
    3.7363   -0.2896
Q =
    6.3743

可参考leastsq最小二乘法拟合最小二乘法拟合、例二:拟合二次函数

猜你喜欢

转载自blog.csdn.net/qq_43328166/article/details/108549523