牛顿迭代法和最小二乘法直线拟合代码
来源:互联网 发布:nginx 只允许访问目录 编辑:程序博客网 时间:2024/05/20 20:19
最近感觉啥都不会了,忘光了
#coding:utf-8def df(func,x):#求导 eps = 1.0e-4 return (func(x + eps) - func(x))/epsdef customFunc(x): return pow(x,4) + 3 * pow(x,3) + 1.5 * pow(x, 2) - 4def newton(x, p, m): x0 = x k = 0 while (k < m): k += 1 if df(customFunc, x0) == 0.0: return 0 x1 = x0 - customFunc(x0)/df(customFunc, x0) if abs(x1-x0) < p or abs(customFunc(x1)) < p: print x1 return 1 else: x0 = x1 return 0newton(2.0, 0.01, 100)def linematch(xl,yl): sumx = sum(xl) sumy = sum(yl) sumx2 = sum([ j*j for j in xl]) sumxy = sum([ t[0] * t[1] for t in zip(xl, yl) ]) ncount = len(xl) b = (sumx2 * sumy - sumx * sumxy) / (ncount * sumx2 - sumx * sumx) k = (ncount * sumxy - sumx * sumy) / (ncount * sumx2 - sumx * sumx) print 'function is y = %sx + %s'%(k, b) k1 = (sumy * sumx - sumxy * ncount) / (sumx * sumx - sumx2 * ncount) b1 = (sumy - sumx * k1)/ncount print 'k1 = %s, b1 = %s'%(k1, b1) print '##################'linematch([2,3,4,5], [1,2,3,4])linematch([2,3,4,5, 7], [5, 7, 9, 11, 15])linematch([2,3,4,5, 7, 9 , 11], [6, 9, 12 , 15 , 21, 27, 33])
公式推理:http://blog.csdn.net/ice_fire3/article/details/6709929
最小二乘法求多项式系数还没写出来,
2014.4.18ps:现在才知道最小二乘法的原理是统计里面的,基础不劳靠记公式总是记不住,理解之后整个就好推导出来
- 牛顿迭代法和最小二乘法直线拟合代码
- 最小二乘法拟合直线c++代码
- 牛顿迭代法及最小二乘法
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法 直线拟合
- 最小二乘法拟合直线
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法拟合直线
- 最小二乘法直线拟合
- 最小二乘法直线拟合(C++)
- 最小二乘法实现直线拟合
- 最小二乘法直线拟合
- 最小二乘法拟合直线
- 定时器 Quartz+spring实例应用
- libmemcached安装undefined reference to `__sync_fetch_and_add_4'
- C#引用c++DLL结构体数组注意事项(数据发送与接收时)
- jquery - 公历转农历方法
- mailing.freebsd.current
- 牛顿迭代法和最小二乘法直线拟合代码
- undefined references: __sync_fetch_and_add_4 and __sync_val_compare_and_swap_4
- apche server 中配置别名【也可以设定网络路径】
- muc.lists.freebsd.current
- jquery - 插件依赖的公共方法
- libmemcached 编译错误
- IOS成长之路-UITableViewController 的小问题
- uva-401 - Palindromes
- freebsd7安装ASTERISK,编译出错,求助