求助Matlab自定义数据拟合
1个回答
展开全部
matlab中的非线性拟合函数nonlinfit具有强大的用自己定义的一个任意函数来拟合数据的功能。
最常见的调用形式为
BETA = nlinfit(X,Y,MODELFUN,BETA0)
BETA为待拟合的参数,X为自变量(矩阵),Y为应变量(向量),MODELFUN为自定义的拟合函数(function handle 型数据),BETA0为BETA的初始值(向量)。
X可以是矩阵,当有多列时,每一列均为一个自变量。
MODELFUN有特定的格式。MODELFUN接受2个参数,第一个是待拟合的参数矢量,第二个是自变量矩阵。
模板函数定义案例:
模型:y=ax^2+bx+c
定义模型函数代码:f_model=@(b,x)b(1)*x.^2+b(2)*x+b(3); %定义时要注意x是一个矢量
BETA0是迭代算法的参数初始值,当模型函数复杂时,拟合的好坏会受初始值的影响。
扩展:
matlab还提供了配套的函数nlparci与nlpredci,这两个函数可以求出参数与预测值的拟合误差。
最常见的调用形式为
BETA = nlinfit(X,Y,MODELFUN,BETA0)
BETA为待拟合的参数,X为自变量(矩阵),Y为应变量(向量),MODELFUN为自定义的拟合函数(function handle 型数据),BETA0为BETA的初始值(向量)。
X可以是矩阵,当有多列时,每一列均为一个自变量。
MODELFUN有特定的格式。MODELFUN接受2个参数,第一个是待拟合的参数矢量,第二个是自变量矩阵。
模板函数定义案例:
模型:y=ax^2+bx+c
定义模型函数代码:f_model=@(b,x)b(1)*x.^2+b(2)*x+b(3); %定义时要注意x是一个矢量
BETA0是迭代算法的参数初始值,当模型函数复杂时,拟合的好坏会受初始值的影响。
扩展:
matlab还提供了配套的函数nlparci与nlpredci,这两个函数可以求出参数与预测值的拟合误差。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询