python科学计算库-Scipy,主要讲解优化,方程求解,积分,蒙特卡洛,插值计算

59 篇文章 4 订阅
46 篇文章 3 订阅


听说点进蝈仔帖子的都喜欢点赞加关注~~
老规矩,官网附上,建议大佬直接看官网
https://www.scipy.org/
在这里插入图片描述

鸣谢:
https://zhuanlan.zhihu.com/p/38160864
https://www.jianshu.com/p/6c742912047f

简介

SciPy 是一个开源的 Python 算法库和数学工具包。

Scipy 是基于 Numpy 的科学计算库,用于数学、科学、工程学等领域,很多有一些高阶抽象和物理模型需要使用 Scipy。
单独安装方法:
在这里插入图片描述
注:安装numpy则无需单独安装scipy

SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
在这里插入图片描述

优化Optimization and root finding

在这里插入图片描述
给一个例子,内容太多了,大家自己看

from scipy.optimize import minimize

def eqn(x):
  return x**2 + x + 2

mymin = minimize(eqn, 0, method='BFGS')

print(mymin)

再来一个官方的介绍把。

scipy.optimize.minimize(fun, x0, args=(), method='Nelder-Mead', bounds=None, tol=None, callback=None, options={'func': None, 'maxiter': None, 'maxfev': None, 'disp': False, 'return_all': False, 'initial_simplex': None, 'xatol': 0.0001, 'fatol': 0.0001, 'adaptive': False})

再给一个带结果的

# 定义要优化的函数,输入优化变量和参数
def f1(x,para):
    return (x[0]**2+x[1]**2+para)
res = optimize.minimize(f1,[10,10],args=(20),method = 'SLSQP')
fun: 20.0
     jac: array([0., 0.])
 message: 'Optimization terminated successfully.'
    nfev: 9
     nit: 2
    njev: 2
  status: 0
 success: True
       x: array([0., 0.])

解方程

Scipy中也有专门的函数来求解方程。求解方程方法fsolve()可以是多个等式的或者单个等式。

import math
def f(x):
    return [
        5*x[1]+3,
        4*x[0]**2 - 2*math.sin(x[1]*x[2]),
        x[1]*x[2] - 1
    ]
optimize.root(f,[1,2,2])

或者

scipy.linalg.solve(a, b, sym_pos=False, lower=False, overwrite_a=False, overwrite_b=False, debug=None, check_finite=True, assume_a='gen', transposed=False)

稀疏矩阵求解

from scipy.sparse import csc_matrix
from scipy.sparse.linalg import spsolve
A = csc_matrix([[3, 2, 0], [1, -1, 0], [0, 5, 1]], dtype=float)
B = csc_matrix([[2, 0], [-1, 0], [2, 0]], dtype=float)
x = spsolve(A, B)
np.allclose(A.dot(x).toarray(), B.toarray())
True

各类积分计算

在这里插入图片描述

scipy.integrate.quad(func, a, b, args=(), full_output=0, epsabs=1.49e-08, epsrel=1.49e-08, limit=50, points=None, weight=None, wvar=None, wopts=None, maxp1=50, limlst=50)

蒙特卡洛

在这里插入图片描述

插值

在这里插入图片描述

方法太多了,大家慢慢探索。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值