回 帖 发 新 帖 刷新版面

主题:如何构建nlinfit()函数中的x矩阵

我有形如: 
    6                12            18                24                30(X1)
40    0.86401187    0.866099157    0.867398348    0.86937554    0.870896092
60    0.854009255    0.855680665    0.857071684    0.858549464    0.859949833
80    0.83886257    0.840435757    0.841817144    0.84312376    0.84447422
100    0.819346113    0.821072474    0.822730598    0.824357519    0.825876722
120    0.799431577    0.80125399    0.802904876    0.804598692    0.806227141   (y)
(x2)
的一组数据
只不过x1有100个,x2有8个.
采用nlinfit()函数进行回归.
但不知道怎样构建x矩阵?
我试过x=[x1;x2],但显示的变量很奇怪.
哪位好心的大侠帮帮忙,先谢谢啦!
[em1][em1]

回复列表 (共31个回复)

21 楼


谢谢![em1][em1][em1][em1][em1][em1]

22 楼


对啊,我就是象你那样做的.
又把.mat文件给你发了一次.

23 楼

数据文件可打开了,你原来的模型效果不好,若用下列模型:
function yhat=nfx(b,x1,x2)
yhat=(x1.^(-(x2.^b(1)./(x2.^b(2)+1)+b(3)./x2)-1)./((x2.^b(4)./(x2.^b(5)+1))+b(6)./x2))+1;
b=[-.8838308347,.7255117764e-8, -.2492306672, 2.111846128, 1.602676778,    1.416322306]
RSS=74.18493880
MSe=0.1005
R^2=.974229
有较好的拟合度(R^2)

24 楼

即便模型不好,应该也可以算啊.按我原来的模型有结果吗?
因为模型很难改,它要满足一定的物理边界条件,在时间有限的情况下,我只有用这个模型啦.

25 楼


我的文件做得有没有问题?
我再给你说说步骤,看有没有问题:
1.运行.m文件,出现"??? Input argument "beta" is undefined.

Error in ==> myfun1 at 2
a=beta(1);"
2.在workspace中导入.mat文件
3.在命令中输入:beta=nlinfit(x, y,'myfun',beta0);
如果没有什么问题的话,就会出结果啦.
有问题吗?盼望答复!
[em18][em18][em18]

26 楼

终于算出来了!谢谢!

27 楼

myfun1.m是自定义函数文件,它本身是不能运行的,你只能在命令窗口以
beta=nlinfit(x,y,'myfun1',beta0)
的形式运行,但nlinfit需提供合适的初值beta0,否则结果相去甚远。我明天给你二参数模型条件下的准确值(你可以作为初值试试),但该模型离实测值有较大差距,且不可能有更好的拟合。6参数模型的结果见前述,这可能是最合适的结果。

28 楼


谢谢,我刚才拟合了一下,的确效果很差.
数学模型的构造这一方面我不太敢碰,我这里有四五条约束条件:
(1)当x2趋于无穷时,y=1/x1;
(2)当x2趋于0时,x1=1;
(3)当x1小于1时,y大于1,当x1等于1时,y等于1;
(4)当x1的指数表达式取2时,有1/x1=squrt(2y-1).
不知道有没有办法根据这些条件确定合适的模型?
另外,初始值的设定也是我很需要知道的问题.
非常感谢顾大侠的指导.明天见.[em1][em1]

29 楼


我快晕死!![em6][em6]
回归了几组数据,回归系数相差很少,就是小数点后第3位的差异。
顾大侠,准确的系数是多少?
我算出来的是0.07几和0.018几.回归效果不好!![em10][em10]

30 楼

可以肯定地说,你原来的模型可以说是无解的,任何参数值均不可能使曲面靠近数值点,即使会得出解的结果,但那拟合曲面远离数值点。这样的函数关系不成立。
若用模型:
yhat=b(1)+b(2)*exp(b(3)*x1+b(4)*x2+b(5)*x2.^b(6)+b(7)*x1.*x2);
b=[1.1797848,.89608002e-25,-6.4164298,-.23677836,60.563513,.45253379e-2,-.98590791e-1]
RSS=62.91641479
MSe=0.0854
R^2=.978143
可能是较好的结果,比昨日给你的6参数模型要好一些.

我来回复

您尚未登录,请登录后再回复。点此登录或注册