三、最小二乘法

最小二乘法(least square

method)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

Python的最小二乘函数是leastsq。调用方式:

leastsq(func,

x0, args=(), Dfun=None,

full_output=0, col_deriv=0,

ftol=1.49012e-08, xtol=1.49012e-08,

gtol=0.0, maxfev=0,

epsfcn=0.0,factor=100,

diag=None)

---------我是代码的分割线---------------

案例一:

from pylab import *

from numpy import *

from scipy.optimize import leastsq

#fp是真实的函数,v是系数,x是变量。fn是fp函数的一个具体实现,e是误差函数。

fp = lambda v, x: v[0]/(x**v[1])*sin(v[2]*x)

v_real = [1.5, 0.1, 2.]

fn = lambda x: fp(v_real, x)

e = lambda v, x, y:

(fp(v,x)-y)

#设计一个含有噪音的函数

n = 30

xmin = 0.1

xmax = 5

x = linspace(xmin,xmax,n)

y = fn(x) + rand(len(x))*0.2*(fn(x).max()-fn(x).min())

#设计初始值,并调用leastsq函数求解。用args指明变量,maxfev是最多调用函数的次数。

v0 = [3., 1, 4.]

v, success = leastsq(e, v0, args=(x,y),

maxfev=10000)

#绘出真实曲线和拟合曲线

def plot_fit():

print

'Estimater parameters: ', v

print 'Real

parameters: ', v_real

X =

linspace(xmin,xmax,n*5)

plot(x,y,'ro', X, fp(v,X))

plot_fit()

show()

拟合曲线

拟合值与真实值

案例二:

from numpy import *

from scipy.optimize import

leastsq

import matplotlib.pyplot as

plt

x = arange(0,6e-2,6e-2/30)

A,k,theta = 10, 1.0/3e-2, pi/6

y_true = A*sin(2*pi*k*x+theta)

y_meas = y_true + 2*random.randn(len(x))

def residuals(p, y, x):

A,k,theta =

p

err =

y-A*sin(2*pi*k*x+theta)

return

err

def peval_r(x, p):

return

p[0]*sin(2*pi*p[1]*x+p[2])

p0 = [8, 1/2.3e-2, pi/3]

plsq = leastsq(residuals, p0, args=(y_meas, x))

plt.plot(x,peval_r(x,plsq[0]),x,y_meas,'o',x,y_true)

plt.title('Least-squares fit to noisy data')

plt.legend(['Fit', 'Noisy', 'True'])

plt.show()

python求解优化问题_科学计算:最优化问题-2(Python)相关推荐

  1. python三维矩阵可视化_科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数)...

    Mlab了解 Mlab是Mayavi提供的面向脚本的api,他可以实现快速的三维可视化,Mayavi可以通过Mlab的绘图函数对Numpy数组建立可视化. 过程为: .建立数据源 .使用Filter( ...

  2. 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...

    只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...

  3. Python 网页爬虫 文本处理 科学计算 机器学习 数据挖掘兵器谱

    Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱 2015-04-27 程序猿 程序猿 来自:我爱自然语言处理,www.52nlp. ...

  4. python和matlab的区别_科学网—matlab和python语法对比(1) - 何亮的博文

    一说到科学计算软件,一般联想到matlab,不过由于matlab是商业软件,价格不菲,学生版基础版也要99刀,一个工具箱29刀.如果不用crack的话,是一比不小的开支.市面上其它脚本语言的兴起,尤其 ...

  5. 跟着迪哥学python 经管之家_跟着迪哥学Python数据分析与机器学习实战

    本书结合了机器学习.数据分析和Python语言,通过案例以通俗易懂的方式讲解了如何将算法应用到实际任务. 全书共20章,大致分为4个部分.第一部分介绍了Python的工具包,包括科学计算库Numpy. ...

  6. anaconda下使用python怎样实现图像增强_如何用anaconda进行python开发

    展开全部 序 Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,32313133353236313431303231363533e58685e5aeb9313333 ...

  7. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  8. python求两数之和的命令_数学建模:科学计算Python2小时-Python基础

    这一部分主要面向数模活动中的python基础知识进行讨论 作者 系列文章(科学计算Python2小时)目录:李似:科学计算Python2小时-前言与目录​zhuanlan.zhihu.com 首先要说 ...

  9. python绘制三维地形_【学习笔记】Python科学计算三维可视化(黄天羽、嵩天)(学习中。。)|python基础教程|python入门|python教程...

    0 导学 目的:掌握利用三维效果表达科学和工程数据的能力 传播一种思想:可视化技术是数据之眼 内容组织: 流体数据的标量可视化.矢量可视化实例 三维扫描数据(模型/地形)可视化实例 三维地球场景可视化 ...

最新文章

  1. char和unsigned char
  2. 209. 单点登录(SSO)
  3. 作家百态之一:作家、批评家与酒
  4. gcc -l参数和-L参数
  5. LwIP应用开发笔记之二:LwIP无操作系统UDP服务器
  6. Spark内核解析之一:内核概述
  7. 向上传递 java_Java向上转型向下转型
  8. PowerDesigner 生成数据字典
  9. RGB色彩模式-最广的颜色系统之一
  10. 阻止事件冒泡 阻止浏览器的默认行为
  11. LNBP10L_LNB电源和控制电压调节器——科时进商城
  12. 云服务器如何创建快照?
  13. 移动web JavaScript,事件(touchstart,touchmove,touchend)
  14. 明星玩跨界,全民娱乐时代来临!
  15. 苹果系统装win7教程
  16. 做人十条原则 做到了就离成功不远了
  17. 用计算机电脑怎么做ppt软件,电脑做ppt的软件叫什么
  18. [Appium] 搭建Android App UI自动化环境
  19. 家具类web网页模板分享,前端期末作业,静态页面
  20. 永磁同步电机simulink仿真——PMSM矢量控制

热门文章

  1. 爱剪辑 v3.0.0.2000
  2. 做生信分析平台需要什么配置的服务器?生信分析平台服务器配置建议
  3. 雨林木风 迅雷 两者比较
  4. 低温导电油墨在汽车电子中的应用
  5. MAC JDK 卸载方法、环境配置
  6. 粒子群算法(PSO)——Java实现PSO算法(详细注释) 优化算法
  7. 公司常见管理系统介绍(非原创)
  8. 福禄克用CFP-Q-ADD实现光纤一级认证测试
  9. 小波神经网络wavelet neural network
  10. 【图像去噪】中值+小波+维纳+滤波器图像去噪【含GUI Matlab源码 616期】