scott198510 发表于 2010-9-15 10:12:52

非线性拟合问题

本帖最后由 scott198510 于 2010-9-15 10:14 编辑

之前用斑竹的方法求出的数据拟合的还比较好,因为用前面的数据求出来的与实际偏差太大,我把数据改成这样的:
就是说在温度确定的情况下:T=1053
H=1e-4,   F=24*(10^6);
H=3e-4,   F=58*(10^6);
H=1e-3,   F=70*(10^6);
H=3e-3,   F=107*(10^6);

参照斑竹的方法,把原来的表达式做一下变形,Q=160000值改小了一点,做出来的程序是这样的,可是为什么求出来的数据变成了虚数呢?即使把数据取绝对值,反带入方程里面求出的数据也感觉拟合的不好,远没有之前的数据那样对每组数据都比较接近:

function yhat = myTestFun(beta,x)
A0 = beta(1);
n = beta(2);
yb=x(:,1);
F=x(:,2);
Q=160000;
R=8.31;
yhat = Q/R./log(A0.*(F.^n)./yb);


x=;
y=1053+zeros(size(x,1),1);
% beta=;
beta=;
beta = nlinfit(x,y,@myTestFun,beta);
A0 = beta(1)
n = beta(2)



求出来的数据是这样的:
A0 =
8.8590e-008 +1.3118e-007i

n =
   1.4836 - 0.0546i

scott198510 发表于 2010-9-15 22:45:09

1# scott198510

斑竹帮忙看看这个问题吧,还没解决呢?为什么求出的数据是虚数了呢?

zhenyonghit 发表于 2010-9-15 23:05:33

楼主的函数myTestFun定义有问题,

zhenyonghit 发表于 2010-9-15 23:07:27

可以把问题发给我,要发参数和拟合函数,我看看试试

scott198510 发表于 2010-9-16 09:28:48

本帖最后由 scott198510 于 2010-9-16 09:59 编辑

既然兄台都说了,问题是这样的:
比如这样一个公式:
H=A0*(F^n)*exp(-Q/(RT));% A0, n 为待求的参数
Q=160000;R=8.31;%两个参数为定值
当T=1053取定值时,对应的4组数据如下:

H=1e-4,   F=24*(10^6);
H=3e-4,   F=58*(10^6);
H=1e-3,   F=70*(10^6);
H=3e-3,   F=107*(10^6);

现在就是要求出系数A0与n的数值

最好用优化方法求解,用非线性拟合的效果差的太远
我在origin里面拟合的就不太准确

shamohu 发表于 2010-9-16 10:27:04

用1stOpt很简单啊:

a0        3.71058998617027E-19
n        2.97038393473184

qibbxxt 发表于 2010-9-16 11:09:53

1# scott198510
程序是没有问题的,一方面是模型能不能改进,另外一方面是初值的选取(你对此却视而不见,还是用的),因为你的物理模型我不了解,我不能很好的选取初值,所以我随机的取值,结果如下:

beta =
   0.000000017306212
   1.604610286438346

r =
1.0e-004 *
-0.166912878824423
-0.331699382373383
   0.136892303534263
   0.353846792662218

J =
1.0e+003 *
   2.845642635642963   0.000000882603250
   2.845642637604941   0.000000928432338
   2.845642636623952   0.000000938199301
   2.845642636623952   0.000000960238127

COVB =
   0.000000000000047-0.000000143385253
-0.000000143385253   0.439979683084752

mse =
    1.409157224142978e-009

scott198510 发表于 2010-9-16 11:59:32

本帖最后由 scott198510 于 2010-9-16 13:07 编辑

6# shamohu
请问斑竹,你的软件在哪里下载的,为什么我下载的1stOpt软件里面不能粘贴呢?老是提示未注册版本不能粘贴?另外我用这个软件求了一下,a0只要零点几的样子,偏差怎么这么大呢?
页: [1]
查看完整版本: 非线性拟合问题