MATLAB 曲线拟合拟合不好,寻找原因??
在MATLAB中拟合曲线,提取参数,但是结果却几乎没拟合,寻大仙们指导!!代码如下:
function f = curvefun(x,freq)
f= (x(5)*2*pi*freq)./(x(5)^2*x(4)^2*(2*pi*freq).^2 + 1) +(x(3)*x(2)*(2*pi*freq)*(x(2)+ 2*x(1)))./((x(2) +x(1))^2 + x(3)^2*x(1)^2*(2*pi*freq).^2)
end
data=xlsread('Y_-1.2V.xls','a2:c31');
tdata=data(:,1);
cdata=-data(:,3);
x0=[5000 40 1E-15 60 1E-15];
x=lsqcurvefit(@curvefun_1,x0,tdata, cdata);
f = curvefun(x, tdata)
plot(tdata, cdata, '*', tdata, f, 'r-')
Frequency Real(Y12) Imag(Y12)
2.00E+08 -7.96388E-10 -4.65518E-07
4.00E+08 -4.19507E-09 -9.32253E-07
6.00E+08 -1.13045E-08 -1.39975E-06
8.00E+08 -2.22855E-08 -1.86729E-06
1.00E+09 -3.69837E-08 -2.33449E-06
1.20E+09 -5.52478E-08 -2.80114E-06
1.40E+09 -7.69695E-08 -3.26714E-06
1.60E+09 -1.02071E-07 -3.73239E-06
1.80E+09 -1.30488E-07 -4.19679E-06
2.00E+09 -1.62165E-07 -4.66025E-06
2.00E+09 -1.62165E-07 -4.66025E-06
4.00E+09 -6.45911E-07 -9.22567E-06
6.00E+09 -1.38724E-06 -1.36195E-05
8.00E+09 -2.31231E-06 -1.78029E-05
1.00E+10 -3.34987E-06 -2.17682E-05
1.20E+10 -4.44215E-06 -2.55298E-05
1.40E+10 -5.54844E-06 -2.91137E-05
1.60E+10 -6.64354E-06 -3.25487E-05
1.80E+10 -7.71398E-06 -3.58615E-05
2.00E+10 -8.75406E-06 -3.90747E-05
2.20E+10 -9.76274E-06 -4.22063E-05
2.40E+10 -1.07414E-05 -4.52699E-05
2.60E+10 -1.16925E-05 -4.82760E-05
2.80E+10 -1.26187E-05 -5.12324E-05
3.00E+10 -1.35227E-05 -5.41450E-05
3.20E+10 -1.44065E-05 -5.70183E-05
3.40E+10 -1.52722E-05 -5.98557E-05
3.60E+10 -1.61213E-05 -6.26603E-05
3.80E+10 -1.69551E-05 -6.54342E-05
4.00E+10 -1.77744E-05 -6.81796E-05
QQ截图20130312203444.png 返回小木虫查看更多
这个excel就是原始数据
给定的初始参数很关键,用别的软件试试看,比如1stopt 1.5破解版
1stopt很好用,不用初值
请问,用matlab你和曲线是必须要自己来编程吗
,