24小时热门版块排行榜    

查看: 2129  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xiangxj110

新虫 (初入文坛)

[求助] matlab拟合指定的非线性函数y=exp(b*x)*x^a已有3人参与

求助大神,如何用matlab拟合下面的数据,函数形式为y=exp(b*x)*x^a
x=[0        0.04545        0.09091        0.13636        0.18182        0.22727        0.27273        0.31818        0.36364        0.40909        0.45455        0.5        0.54545        0.59091        0.63636        0.68182        0.72727        0.77273        0.81818        0.86364        0.90909        0.95455        1];
y=[0.31872        0.15445        0.0965        0.07235        0.05575        0.0448        0.0354        0.032        0.02773        0.02378        0.02095        0.01708        0.01553        0.01542        0.01248        0.01168        0.0097        0.00865        0.007        0.00607        0.0056        0.00445        0.00392];

试了几次都报错了。。。求大神给一种可用的算法~
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

w13674661063

禁虫 (正式写手)

本帖内容被屏蔽

6楼2016-03-21 10:16:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

cooooldog

铁杆木虫 (著名写手)

ส็็็

【答案】应助回帖

感谢参与,应助指数 +1
对等式两边取对数,先变成

Ln(y)= b *x + a*ln(x)

Lny 对 x 和 ln x 作二元线性回归

然后得到的系数作为初值,进一步对原始等式的残差向量 作 最小二乘拟合
ส็็็็็็็็็็็็็็็็็็็็
2楼2016-03-21 08:18:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wake_up

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
xiangxj110: 金币+5, ★★★很有帮助 2016-03-22 13:55:40
matlab拟合指定的非线性函数y=exp(b*x)*x^a

楼主没给出合理的参数初值。

同时觉得楼主的数据有问题,第一对数据 x为0 如何能算出y =0.32?

拟合程序已发,从图中可以看出,拟合值(红线)和原始值能吻合。因此程序没有大问题。

请仔细检查数据。

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : nfitprog.m
  • 2016-03-21 09:13:42, 827 bytes
扫地扫地扫心地,心地不扫空扫地,人人都把心地扫,世上无处不净地.
3楼2016-03-21 09:16:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
第一个数据点x=0明显有问题吧,此时y与参数数值无关恒等于0。
4楼2016-03-21 09:50:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见