matlab怎么拟合治愈率,[求助]我的拟合为什么不好呢?

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:34   1143   0

[求助]我的拟合为什么不好呢?

我用lsqcurvefit函数和自定义的多元参数的函数拟合实验数据,但是得到的拟合曲线总是不太理想,请大侠帮偶看看是咋回事呢。

实验数据见上传的附件。

目的是拟合实验数据中第一列定义为Xdata,第六列定义为Ydata,要利用自定义的函数拟合该数据。

命令行如下:

clear

load Kopie_von_B282A070830_temp.TXT; % load experimental data

DRS=Kopie_von_B282A070830_temp;

xdata=DRS(:,1); % frequency

ydata=DRS(:,6); % eps''

% fit function

% eps2=-imag(x(1)./(1.0+(i*2*pi*xdata*x(4)).^x(2)).^x(3)+x(6)./

%(1.0+(i*2*pi*xdata*x(9)).^x(7)).^x(8))+x(5)+x(10)*1e-14./(8.8542e-12*2*pi*xdata);

eps2=inline('-imag(x(1)./(1.0+(i*2*pi*xdata*x(4)).^x(2)).^x(3)+x(6)./(1.0+(i*2*pi*xdata*x(9)).^x(7)).^x(8))+x(5)+x(10)*1e-14./(8.8542e-12*2*pi*xdata)','x','xdata');

% define parameters

deps1 = 6;

alpha1 = 0.65;

beta1 = 0.6;

tau1 = 2.8e-7;

eps2off = 0.1;

deps2 = 2.8;

alpha2 = 0.5;

beta2 = 0.5;

tau2 = 1;

sigmadc = 1.5e2;

x0=[deps1,alpha1,beta1,tau1,eps2off,deps2,alpha2,beta2,tau2,sigmadc];

% matrix of the initial value of parameters

opt=optimset('TolFun',1e-5);

[x,resnorm,residual]=lsqcurvefit(eps2,x0,xdata,ydata,[],[],opt);

eps2=-imag(x(1)./(1.0+(i*2*pi*xdata*x(4)).^x(2)).^x(3)+x(6)./...

(1.0+(i*2*pi*xdata*x(9)).^x(7)).^x(8))+x(5)+x(10)*1e-14./(8.8542e-12*2*pi*xdata);

loglog(xdata,ydata,'o',xdata,eps2,'or');

hold on

说明下,上述命令中用的初始值x0,别人用gnuplot拟合比我的效果好多了,不解ing

4594adf302f152b0e50c11f25a869bf3.gifkCHtswNw.txt

(13.45 KB)

[求助]我的拟合为什么不好呢?

[此贴子已经被作者于2007-9-22 0:18:59编辑过]

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP