数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 3586|回复: 4

新人求指导曲线拟合相关。。。谢谢

[复制链接]
发表于 2014-9-24 19:41 | 显示全部楼层 |阅读模式
拟合函数:y(x)= a + (2 * b / pi) * (c / (4 * (x -  d)^2 + c^2));
其中a、b、c、d是函数的系数,pi为圆周率常数。
拟合数据如下:
x=[1 2 3 4 5 6 7 8 9 10 11 12 13 14]
y=[246362  262874  289138  322452  357453  389837  417317  419177  399951  368937   337878  301286  275133  255272];

问题:根据以上数据求a、b、c、d,使其残量误差最小。
非常希望各位能指点一二,说明我要解决这些问题,需要采用什么算法,以及大体思路及方向。谢谢了。

说明:对以上问题已使用MATLAB软件自带的非线性拟合函数求解,得到的较理想的结果。但是我想自己做一个相应的算法或者程序来解决这个问题,因此需要高人指点,谢谢!
发表于 2014-9-28 18:04 | 显示全部楼层
非线性拟合实际上就是一个多元函数求最小值的问题。

比如在你的问题中,残差就是一个以 a,b,c,d  为自变量的 4 元函数,

目标就是求自变量 a,b,c,d 的值,使得这个 4 元函数(残差)取到最小值。

在实际问题中,要求最小值的函数往往很复杂,不可能用解析方法求最小值,

只能编写计算机程序或利用现成软件,求近似的数值解。

如果你计算机编程能力非常强,可以自己编多元函数求最小值的程序,

只要稍加变化,就是一个非线性拟合的程序,那当然是最好了。

否则还是用用现成的软件,其实效果也不错,还省了许多麻烦。
 楼主| 发表于 2014-10-1 09:58 | 显示全部楼层
luyuanhong 发表于 2014-9-28 18:04
非线性拟合实际上就是一个多元函数求最小值的问题。

比如在你的问题中,残差就是一个以 a,b,c,d  为自变 ...

谢谢陆老师指导。您说的稍加变化成一个非线性拟合程序是将拟合函数变成类似 f=a*x^2+b*x+c形式之后再求解么?这样会不会导致比较大的误差?谢谢!!
发表于 2014-10-3 00:23 | 显示全部楼层
要求最小值的函数式是

f(a,b,c,d)=∑ [ a + (2 * b / pi) * (c / (4 * (Xi -  d)^2 + c^2)) - Yi ]^2

其中 ∑ 表示求和,Xi ,Yi 是那些要拟合的 X,Y 的数据,一个一个全部要代进去,

然后将一个一个平方式全部加起来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-6-19 23:46 , Processed in 0.103229 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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