一个复杂多项式的曲线拟合问题
我想由100组数据拟合多项式:自己编了个最小二乘法的程序算不出来,用MATLAB自带的工具箱算出来的结果跟正确结果差别太大,有人能帮想个办法吗。
正确结果是:
数据见附件
回复 楼主 lxm1025006 的帖子
用曲线拟合工具箱,结果应该不会差很多 下面是由1stOpt拟合的结果:y = 77.687597*x^(-0.796015)+38.3605*x^(-0.38197)-75.6381*x^(-0.58899) 我使用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,); RelErr1=(y1-y)./y; RelErr2=(y2-y)./y; max() 我怎么得不到式子y2 = 77.687597*x.^(-0.796015)+38.3605*x.^(-0.38197)-75.6381*x.^(-0.58899)啊,指数拟合里没有这个函数关系啊
我自己改造了一个函数
利用最小二乘法+牛顿迭代拟合,结果不收敛啊.
程序见附件,希望大家帮我找找错误!
[ 本帖最后由 ChaChing 于 2009-7-12 11:44 编辑 ]
回复 5楼 lxm1025006 的帖子
那是3F的结果!回复 7楼 ChaChing 的帖子
6F的那个程序,你能帮我看下吗,不知道哪里有问题啊,迷茫,谢谢!回复 8楼 lxm1025006 的帖子
你的程序有点长, 且相关注解我这边会变乱码!肯定得花长时间看! 不好意思! 真得有点懒的看!
而且这方面个人亦不是很熟!
[ 本帖最后由 ChaChing 于 2009-1-7 22:36 编辑 ]
页:
[1]