为了账号安全,请及时绑定邮箱和手机立即绑定

Matlab中fit函数的Startpoint怎么选取?

Matlab中fit函数的Startpoint怎么选取?

RISEBY 2019-02-25 09:06:12
使用自定义模型时,帮助里说要选取初值点,但是我连初值点的含义都不知道是啥……似乎是个向量,那里面的元素分别是什么啊?不设置初始点好歹不会报错,但是模拟出来的曲线基本不是我想要的……所以帮助文件才会建议设置初始点,但是初始点是啥都没说,是曲线上的初始点吗?还是什么?我的那个模型是含4个参数的,1个自变量,初始点的形式是什么样的?我设置成1个数,2个元素的向量,3,4个元素的向量全部出现这个问题:Error using fit>iFit (line 415)Not enough inputs to FITTYPE function.Error in fit (line 109)[fitobj, goodness, output, convmsg] = iFit( xdatain, ydatain, fittypeobj, ...Error in SOCdata (line 95)[F3,c3]=fit(x,y,ft3,'StartPoint',p0)Caused by:Failure in initial user-supplied objective function evaluation. LSQCURVEFIT cannotcontinue.那个p0就是初始点,到底要怎么设置?到底有什么含义啊?
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

这个StartPoint应该指的是待求参数的初值。意思是,您给一个粗略的估计,然后fit函数可以根据这个估计去精确化。
4个参数,那就给一个长度为4的向量,例如[0 0 0 0];

查看完整回答
反对 回复 2019-03-27
?
皈依舞

TA贡献1851条经验 获得超3个赞

% Assume you determined xdata and ydata experimentally
xdata = -6:0.1:10;
xdata=xdata';

ydata = 100.*exp(-(xdata-2).^2./3^2)+10;

fun=fittype('A*exp(-((x-u)/sigma)^2)+n') %一定要用fittype函数来写自己的方程

% coeffnames(fun) % 可以校验欲拟合的系数
% options = fitoptions()

options.StartPoint=[99 10 3 2] % 确定起始点

f=fit(xdata,ydata,fun,options)



查看完整回答
反对 回复 2019-03-27
  • 2 回答
  • 0 关注
  • 4144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信