24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2265  |  回复: 9

一直在纠结

铁杆木虫 (正式写手)

[求助] 用MATLAB回归方程的参数,是个隐函数,请附上程序已有3人参与

数据和方程如下,
x=
53.428        54.076        55.046        57.571        78.753        79.154        79.485        80.022        80.488        80.938        81.162        81.387        81.613        82.068        82.296        82.524        83.209        83.436        84.116        84.344        84.809        85.048        85.544        85.989        86.577        87.222        87.987        88.951        89.272        89.832        91.809        101.409        138.539
y=
1.29E+01        1.30E+01        1.32E+01        1.37E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.91E+01        1.91E+01        1.91E+01        1.91E+01        1.91E+01        1.89E+01        1.85E+01        1.84E+01        1.83E+01        1.83E+01        1.83E+01        1.83E+01        1.84E+01        1.88E+01        2.14E+01        3.36E+01
方程如下:
logy=a1+a2/(a3+x)+a4*x+a5*x^2+a6*logx+a7*y/x^2
其中a1~a7是方程要回归的7个参数
能帮忙回归出来就可以,不限于用MATLAB

但是请把解决的程序附上,多谢!!!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liq07lzucn

金虫 (正式写手)

我只想说太容易呵呵

[ 发自小木虫客户端 ]
2楼2014-06-28 17:38:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一直在纠结

铁杆木虫 (正式写手)

引用回帖:
2楼: Originally posted by liq07lzucn at 2014-06-28 17:38:54
我只想说太容易呵呵

既然容易那能不能麻烦您给受累做一下
3楼2014-06-28 18:32:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

george1990

金虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
一直在纠结: 金币+2, 有帮助, 多谢 2014-08-02 09:11:41
楼主可以使用1stOpt这个软件,对于求解此类问题有奇效的,而且编程也简单
天天多学一点
4楼2014-06-28 19:37:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Holly2012

木虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
一直在纠结: 金币+2, ★★★很有帮助, 多谢 2014-08-02 09:45:26
参考 http://muchong.com/bbs/viewthread.php?tid=3240154    一楼有完整代码,只要修改一下函数和数据就可以
5楼2014-06-28 20:09:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一直在纠结

铁杆木虫 (正式写手)

引用回帖:
5楼: Originally posted by Holly2012 at 2014-06-28 20:09:04
参考 http://muchong.com/bbs/viewthread.php?tid=3240154    一楼有完整代码,只要修改一下函数和数据就可以

呃  仿照他的输入了一下有个错误 但是不知道是哪里不行  能帮忙看一下吗
p=[1.29E+01        1.30E+01        1.32E+01        1.37E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.91E+01        1.91E+01        1.91E+01        1.91E+01        1.91E+01        1.89E+01        1.85E+01        1.84E+01        1.83E+01        1.83E+01        1.83E+01        1.83E+01        1.84E+01        1.88E+01        2.14E+01        3.36E+01];
c=[53.428        54.076        55.046        57.571        78.753        79.154        79.485        80.022        80.488        80.938        81.162        81.387        81.613        82.068        82.296        82.524        83.209        83.436        84.116        84.344        84.809        85.048        85.544        85.989        86.577        87.222        87.987        88.951        89.272        89.832        91.809        101.409        138.539];
cc=c';
pp=p';
F=@(q,x)(q(1)+q(2)/(q(3)+x(:,1))+q(4)*x(:,1)+q(5)*(x(:,1)^2)+q(6)*log(x(:,1))+q(7)*x(:,2)/x(:,1)^2)-log(x(:,2));
x=[cc pp];
q0=[1    1     1    1    1    1    1];
warning off
q=nlinfit(x,zeros(size(x,1),1),F,q0);
disp(num2str(q));
显示错误,应该是方程输入错误,但是不知道错误出在了哪里
6楼2014-06-29 09:45:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hc315

铁虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
一直在纠结: 金币+16, ★★★★★最佳答案, 辛苦了!!这回归结果。。唉。。。 2014-08-02 09:46:04
引用回帖:
6楼: Originally posted by 一直在纠结 at 2014-06-29 09:45:06
呃  仿照他的输入了一下有个错误 但是不知道是哪里不行  能帮忙看一下吗
p=;
c=;
cc=c';
pp=p';
F=@(q,x)(q(1)+q(2)/(q(3)+x(:,1))+q(4)*x(:,1)+q(5)*(x(:,1)^2)+q(6)*log(x(:,1))+q(7)*x(:,2)/x(:,1)^2)-log ...

c=[53.4280000000000,54.0760000000000,55.0460000000000,57.5710000000000,78.7530000000000,79.1540000000000,79.4850000000000,80.0220000000000,80.4880000000000,80.9380000000000,81.1620000000000,81.3870000000000,81.6130000000000,82.0680000000000,82.2960000000000,82.5240000000000,83.2090000000000,83.4360000000000,84.1160000000000,84.3440000000000,84.8090000000000,85.0480000000000,85.5440000000000,85.9890000000000,86.5770000000000,87.2220000000000,87.9870000000000,88.9510000000000,89.2720000000000,89.8320000000000,91.8090000000000,101.409000000000,138.539000000000;];
p=[12.9000000000000,13,13.2000000000000,13.7000000000000,19.3000000000000,19.3000000000000,19.3000000000000,19.3000000000000,19.3000000000000,19.3000000000000,19.3000000000000,19.2000000000000,19.2000000000000,19.2000000000000,19.2000000000000,19.2000000000000,19.2000000000000,19.1000000000000,19.1000000000000,19.1000000000000,19.1000000000000,19.1000000000000,18.9000000000000,18.5000000000000,18.4000000000000,18.3000000000000,18.3000000000000,18.3000000000000,18.3000000000000,18.4000000000000,18.8000000000000,21.4000000000000,33.6000000000000;];
cc=c';
pp=p';
F=@(q,x)(q(1)+q(2)./(q(3)+x(:,1))+q(4)*x(:,1)+q(5)*x(:,1).^2+q(6)*log(x(:,1))+q(7)*x(:,2)./x(:,1).^2-x(:,2));  
x=[cc pp];
q0=[1,1,1,1,1,1,1];
warning off
q=nlinfit(x,zeros(size(x,1),1),F,q0);
disp('H A B分别为')
disp(num2str(q));
plot(x(:,1),x(:,2),'r^');hold on;
ezplot(@(x,y)F(q,[x,y]))
7楼2014-08-02 03:17:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

差点儿是帅哥

金虫 (著名写手)

引用回帖:
6楼: Originally posted by 一直在纠结 at 2014-06-29 09:45:06
呃  仿照他的输入了一下有个错误 但是不知道是哪里不行  能帮忙看一下吗
p=;
c=;
cc=c';
pp=p';
F=@(q,x)(q(1)+q(2)/(q(3)+x(:,1))+q(4)*x(:,1)+q(5)*(x(:,1)^2)+q(6)*log(x(:,1))+q(7)*x(:,2)/x(:,1)^2)-log ...

其它行代码不变动,
更改部分如下所示:
x=[cc pp];
F=@(q,x)(q(1)+q(2)./(q(3)+x(:,1))+q(4).*x(:,1)+q(5).*(x(:,1).^2)+q(6).*log(x(:,1))+q(7).*x(:,2)./x(:,1).^2)-log(x(:,2));

好好学习,天天向上
8楼2015-04-17 23:40:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

差点儿是帅哥

金虫 (著名写手)

引用回帖:
6楼: Originally posted by 一直在纠结 at 2014-06-29 09:45:06
呃  仿照他的输入了一下有个错误 但是不知道是哪里不行  能帮忙看一下吗
p=;
c=;
cc=c';
pp=p';
F=@(q,x)(q(1)+q(2)/(q(3)+x(:,1))+q(4)*x(:,1)+q(5)*(x(:,1)^2)+q(6)*log(x(:,1))+q(7)*x(:,2)/x(:,1)^2)-log ...

输出结果:
>> Untitled3
-129.9228331593238       -221103129346.93     -8828458688.195194     -0.913998666072843   0.002578727952074724      37.74968530959259     -312.4519422953365
好好学习,天天向上
9楼2015-04-17 23:43:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

差点儿是帅哥

金虫 (著名写手)

引用回帖:
8楼: Originally posted by 差点儿是帅哥 at 2015-04-17 23:40:49
其它行代码不变动,
更改部分如下所示:
x=;
F=@(q,x)(q(1)+q(2)./(q(3)+x(:,1))+q(4).*x(:,1)+q(5).*(x(:,1).^2)+q(6).*log(x(:,1))+q(7).*x(:,2)./x(:,1).^2)-log(x(:,2));

...

p=[1.29E+01        1.30E+01        1.32E+01        1.37E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.93E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.92E+01        1.91E+01        1.91E+01        1.91E+01        1.91E+01        1.91E+01        1.89E+01        1.85E+01        1.84E+01        1.83E+01        1.83E+01        1.83E+01        1.83E+01        1.84E+01        1.88E+01        2.14E+01        3.36E+01];
c=[53.428        54.076        55.046        57.571        78.753        79.154        79.485        80.022        80.488        80.938        81.162        81.387        81.613        82.068        82.296        82.524        83.209        83.436        84.116        84.344        84.809        85.048        85.544        85.989        86.577        87.222        87.987        88.951        89.272        89.832        91.809        101.409        138.539];
cc=c';
pp=p';
x=[cc pp];
F=@(q,x)(q(1)+q(2)./(q(3)+x(:,1))+q(4).*x(:,1)+q(5).*(x(:,1).^2)+q(6).*log(x(:,1))+q(7).*x(:,2)./x(:,1).^2)-log(x(:,2));
q0=[1    1     1    1    1    1    1];
q=nlinfit(x,zeros(size(x,1),1),F,q0);
disp(num2str(q));
好好学习,天天向上
10楼2015-04-17 23:44:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 一直在纠结 的主题更新
信息提示
请填处理意见