%% 非線性函式-最小二乘法擬合 馬玉華 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最小二乘法擬合和最小二乘法擬合、例二:擬合二次函式 非線性最小二乘
非線性最小二乘問題是求解目標引數 的最優值的方法 1.要有待優化的引數x 2.要知道引數與估計值的函式關係 f x 3.要有觀測資料z 4.待優化引數的初值x0 5.待優化引數的範圍 可選 非線性最小二乘問題,可以轉化為非線性優化問題 解非線性最小二乘需要非線性優化演算法 非線性優化演算法最通用的方...
最小二乘線性擬合
實驗 給出實驗資料 程式 如下 write by void,2013.4.15,beijing import matplotlib.pyplot as plt import numpy as np x 13,15,16,21,22,23,25,29,30,31,36,40,42,55,60,62,6...
手寫非線性最小二乘
方法1 梯度下降法 include include include include include include include class descent method descent method descent method double a,double b,double c a a b ...