python学习笔记(3)----scipy数值计算

scipy是在numpy的基础上添加了一些数学计算中常用的库函数

1、优化与拟合

scipy.optimize库中提供最小二乘拟合函数leastsq,leastsq函数只需要将就计算误差的函数和待确认参数的初始值传递给它

例:对一个正弦波的数据进行拟合


得到数据拟合的结果如下:


如上图所示,通过leastsq函数对带噪声的数据进行拟合,可以得到x和真实数据y0之间的正弦关系的三个参数:A,K,theta,拟合参数虽然和真实的参数完全不同,但由于周期性实际上拟合函数和真实参数对应的函数是一致的

在图形输出上面要显示正确的中文和带符号的数字,需要修改matplotlibrc参数配置文件,具体修改如下链接http://blog.csdn.net/candcplusplus/article/details/45618707

2、非线性方程求解

optimize库中的函数fsolve函数是对非线性方程进行求解的,调用形式fsolve(f,x0),f代表计算方程的误差函数,x代表方程组一组未知的可能解,实例求解如下:


输出结果:


3、插值运算

interpolate库中提供插值运算的函数,下面实例中进行线性插值和B-spline曲线插值


输出:


在上例中通过interpld函数得到一个新的线性插值函数,而B-spline要用splrep函数计算出曲线的参数,再把参数传递给splev函数计算样本点的插值结果

4、解常微分方程组

scipy.integrate库中提供odeint方法进行数值积分和解常微分方程

下面进行用odeint进行计算洛伦兹吸引子的轨迹,微分方程如下:

dx/dt= σ(y -

你可能感兴趣的:(python学习笔记(3)----scipy数值计算)