在matlab中使用fit
函数时,它返回的是我在代码中指定的起始值。fit()使用自定义fittype()返回指定的起点值
所以说在fit
函数参数我给fit(... 'start', [2.9 10000] ...)
,返回值将是
... = 2.9 (some 95% confidence value)
... = 10000 (some 95% confidence value)
为什么不MATLAB这里调整拟合参数?我尝试改变周围的起点,但它仍然只是返回我输入的值。我还绘制了函数(参数等于我输入的起点)与我适合的数据的关系,它们非常接近对彼此。
我使用拟合函数是否错误?有什么方法可以从matlab中获得精确的拟合参数吗?
另外,就像一个侧面说明,但它有可能得到某种特征(如R^2
价值),其特征是多么适合?
谢谢!
编辑: 以下是我对拟合函数:
myfitopt = fitoptions( '方法', 'NonlinearLeastSquares', '启动',[13.5 * 10^3,1.31×10^4] ); %选项
myfittype = fittype('4 * K 温度的β/(M *((2 * PI)^ 4×(F^2-V_0^2)^ 2 +(2 * PI ˚F β')'','独立','f','问题',{'k','m','Temp'},'系数',{'beta','v_0'},'options 'myfitopt)
myfit =拟合(频率',p,myfittype, '问题',{k_B,质量,温度})%发挥作用的与β-的起始值和V_0
这是回访:
myfittype =
General model:
myfittype(beta,v_0,k,m,Temp,f) = 4*k*Temp*beta/(m*((2*pi)^4*(f^2-v_0^2)^2+
(2*pi*f*beta)^2))
myfit =
General model:
myfit(f) = 4*k*Temp*beta/(m*((2*pi)^4*(f^2-v_0^2)^2+(2*pi*f*beta)^2))
Coefficients (with 95% confidence bounds):
beta = 1.35e+04 (-4.909e+09, 4.909e+09)
v_0 = 1.31e+04 (-3.802e+08, 3.802e+08)
Problem parameters:
k = 1.381e-23
m = 1.176e-12
Temp = 295.5
其中β和V_0只是我输入为初始值有非常大的误差范围。为什么代码不改变这些系数以适应数据?
谢谢!
您的问题需要更多的细节。你在'fit'函数中使用的模型是什么?数据的形状如何,你可以在问题中发表一个阴谋吗? – NKN