声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1552|回复: 7

[综合讨论] 一个复杂多项式的曲线拟合问题

[复制链接]
发表于 2009-1-6 16:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想由100组数据拟合多项式: 1.jpg
自己编了个最小二乘法的程序算不出来,用MATLAB自带的工具箱算出来的结果跟正确结果差别太大,有人能帮想个办法吗。
正确结果是: 2.jpg
数据见附件 110.doc (88 KB, 下载次数: 16)
回复
分享到:

使用道具 举报

发表于 2009-1-6 18:10 | 显示全部楼层

回复 楼主 lxm1025006 的帖子

用曲线拟合工具箱,结果应该不会差很多
发表于 2009-1-6 20:14 | 显示全部楼层
下面是由1stOpt拟合的结果:

y = 77.687597*x^(-0.796015)+38.3605*x^(-0.38197)-75.6381*x^(-0.58899)

评分

1

查看全部评分

发表于 2009-1-6 21:25 | 显示全部楼层
我使用cftool试下, 随意挑个power拟合, 其误差才约为3%, 以工程眼光还好吧!
但与dingd结果比较, 误差就较大了些, 但个人认为那应该是拟合函数选定不同造成!
如何选定一样, 个人很少使用此工具箱, 不熟! 但个人认为也没必要吧!
拟合不就是不知道原函数型态吗!? 不懂!

load data; x=aa(:,1); y=aa(:,2); y1 = 36.47*x.^(-0.8857)+4.064;
y2 = 77.687597*x.^(-0.796015)+38.3605*x.^(-0.38197)-75.6381*x.^(-0.58899);
plot(x,[y,y1,y2]); RelErr1=(y1-y)./y; RelErr2=(y2-y)./y; max([RelErr1,RelErr2])
 楼主| 发表于 2009-1-7 20:44 | 显示全部楼层
我怎么得不到式子y2 = 77.687597*x.^(-0.796015)+38.3605*x.^(-0.38197)-75.6381*x.^(-0.58899)啊,指数拟合里没有这个函数关系啊
我自己改造了一个函数 的.jpg
利用最小二乘法+牛顿迭代拟合,结果不收敛啊.
程序见附件,希望大家帮我找找错误!


[ 本帖最后由 ChaChing 于 2009-7-12 11:44 编辑 ]

exsf.m

2.78 KB, 下载次数: 6

发表于 2009-1-7 20:51 | 显示全部楼层

回复 5楼 lxm1025006 的帖子

那是3F的结果!
 楼主| 发表于 2009-1-7 22:11 | 显示全部楼层

回复 7楼 ChaChing 的帖子

6F的那个程序,你能帮我看下吗,不知道哪里有问题啊,迷茫,谢谢!
发表于 2009-1-7 22:34 | 显示全部楼层

回复 8楼 lxm1025006 的帖子

你的程序有点长, 且相关注解我这边会变乱码!
肯定得花长时间看! 不好意思! 真得有点懒的看!
而且这方面个人亦不是很熟!

[ 本帖最后由 ChaChing 于 2009-1-7 22:36 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 01:15 , Processed in 0.087478 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表