24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3399  |  回复: 9
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

任天青

金虫 (小有名气)

[求助] matlab多元非线性拟合

希望虫友能给与帮助。

比如一组这样的数据,Y=f(x1,x2,x3),只知道与x1,x2,x3相关且非线性,但完全不知道是如何形式的函数,不知道能否用matlab拟合出其最接近的方程式出来。本人对matlab也不是特别了解。
Y                   x1            x2                x3
168.7         202.9         145.9         12.1
142.0         206.4         152.9         15.8
181.9         205.8         144.2         10.7
119.7         206.8         156.2         20.9
243.9         203.9         130.6         5.0
170.1         205.8         141.9         17.2
167.3         200.1         138.7         16.3
269.2         203.2         132.0         9.7
254.1         205.4         128.9         10.6
325.2         208.8         123.4         6.7
83.9         210.0         153.4         17.1
26.7         206.4         176.6         92.9
-1.3         207.1         190.8         149.8
79.3         209.2         157.2         21.4
68.2         210.6         167.9         44.7
41.1         205.2         162.9         61.3
8.4         198.8         176.1         115.7
50.1         209.8         167.3         64.9
189.7         216.8         160.2         20.9
50.7         200.4         158.2         46.4
35.9         207.1         167.9         64.0
回复此楼
实验虐我千百遍,我待实验如初恋...
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jswoo

铁杆木虫 (著名写手)

阿拉多梦

不知道咋发图片,sorry了~~请版主编辑一下。
4楼2012-05-21 09:48:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

jswoo

铁杆木虫 (著名写手)

阿拉多梦

【答案】应助回帖

xzhdty: , 谢谢参与 2012-05-21 22:55:22
jjdg: 编辑内容 2012-05-22 02:11
jjdg: 程序强帖+1, 感谢参与 2012-05-22 02:13:54
小木虫: 金币+2, 帖子真精彩 2015-05-07 18:07:33
采用多元非线性回归:
CODE:
data.txt

168.7        202.9        145.9        12.1
142.0        206.4        152.9        15.8
181.9        205.8        144.2        10.7
119.7        206.8        156.2        20.9
243.9        203.9        130.6        5.0
170.1        205.8        141.9        17.2
167.3        200.1        138.7        16.3
269.2        203.2        132.0        9.7
254.1        205.4        128.9        10.6
325.2        208.8        123.4        6.7
83.9        210.0        153.4        17.1
26.7        206.4        176.6        92.9
-1.3        207.1        190.8        149.8
79.3        209.2        157.2        21.4
68.2        210.6        167.9        44.7
41.1        205.2        162.9        61.3
8.4        198.8        176.1        115.7
50.1        209.8        167.3        64.9
189.7        216.8        160.2        20.9
50.7        200.4        158.2        46.4
35.9        207.1        167.9        64.0

CODE:
function main
clc
clear
data=load('data.txt');
y=data(:,1);
x=data(:,2:4);
beta=[0.1,0.05,0.02,1];            % 回归系数的初值,任意取
yy=fun(beta,x);
[beta_out,r,J,COVB,mse]=nlinfit(x,y,@fun,beta);   
beta_out
mse
betaci=nlparci(beta_out,r,'Jacobian',J);   
betaa=[beta_out',betaci]        
[yy,delta]=nlpredci(@fun,x,beta_out,r,'Jacobian',J);
alpha=0.05;
nlintool(x,y,'fun',beta,alpha)  
r=corrcoef(y,yy)       % 求相关系数r
plotregression(y,yy)   % 并且画图r
regstats(y,yy)

CODE:
function yy=fun(beta,x)
b1 = beta(1);
b2 = beta(2);
b3 = beta(3);
b4 = beta(4);
yy=b1*(x(:,1).^b2).*(x(:,2).^b3).*(x(:,3).^b4);


计算结果如下:
y=18.8816*(x1^3.6787)*[x2^(-3.3584)]*[x3^(-0.3019)]

相关系数0.9503,
基本可以满足你的要求了。

[ Last edited by jjdg on 2012-5-22 at 02:11 ]
2楼2012-05-21 09:45:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jswoo

铁杆木虫 (著名写手)

阿拉多梦

【答案】应助回帖

jjdg: 编辑内容 2012-05-22 02:10
jjdg: 编辑内容 2012-05-22 02:11
jjdg: 编辑内容 2012-05-22 02:12
jjdg: 编辑内容 2012-05-22 02:13
jjdg: , 这个帖弄不出来,不知道传哪里去了,找不到 2012-05-22 02:13:39
图片没成功。
补一下了




[ Last edited by jjdg on 2012-5-22 at 02:13 ]
3楼2012-05-21 09:47:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Fibo101215

新虫 (初入文坛)

【答案】应助回帖

引用回帖:
4楼: Originally posted by jswoo at 2012-05-21 09:48:21
不知道咋发图片,sorry了~~请版主编辑一下。

您好,有关matlab的问题还想请教您一下。。
我的公式是这样的:y=[a*(t^2-e*t^2)+b*(2-t^2+e*t^2)*T1-(1-t*e-t^2+e*t^2)T2]/t*e
里面的e、t和y都是数组,T1为已知标量待输入,T2也是已知标量待输入,a、b是这个已知公式里需要优化的参数,我想请教的是:如果我想用lsqcurvefit这个函数或者其他函数或者DIY编码该如何进行编程,因为就目前而言我还处于菜鸟阶段,感激不尽~感激不尽!!!
5楼2012-09-06 11:03:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见