首页/文章/ 详情

ANSA二次开发_Python基础-scipy模块-对点进行线性插值与三次插值

14天前浏览671

SciPy是一个开源的Python库,用于数学、科学和工程领域。它建立在NumPy之上,提供了大量的算法和数学工具箱,用于处理数学问题,如积分、微分、线性代数、优化、图像处理、统计等。是科学计算中非常重要的一部分,我使用的仅仅是冰山一角,例如对于曲线的滤波,曲线的插值等并且主要是后处理使用。

    #高频函数scipy.integrate: 积分和常微分方程求解器。quad: 对函数进行单变量积分。odeint: 解常微分方程。scipy.optimize: 提供了多种优化算法。minimize: 最小化一个或多个变量的标量函数。curve_fit: 使用非线性最小二乘法拟合函数。scipy.linalg: 线性代数操作。inv: 计算矩阵的逆。svd: 奇异值分解。scipy.sparse: 稀疏矩阵和相关算法。csr_matrix: 压缩稀疏行矩阵。scipy.stats: 统计函数。norm: 正态分布。ttest_ind: 两个独立样本的t检验。
    应用方向:
    1. 信号处理:使用scipy.signal模块进行信号滤波、卷积等操作,处理音频、图像等信号数据。
    2. 图像处理:scipy.ndimage提供了多维图像处理的功能,如图像的旋转、缩放、平滑等。
    3. 优化问题:利用scipy.optimize解决各种数学优化问题,如寻找函数的最小值、求解线性规划问题等。
    4. 统计分析:scipy.stats模块提供了大量的统计测试、分布、相关性分析等功能,用于数据分析和科学研究。

    案例:

    对点进行线性插值与三次插值

      import numpy as npfrom scipy.interpolate import interp1dimport matplotlib.pyplot as pltx = np.linspace(0, 10, 10)y = np.sin(x)# 创建插值函数采用 'linear'和'cubic'是两种常用的插值方式f_linear = interp1d(x, y)f_cubic = interp1d(x, y, kind='cubic')x_dense = np.linspace(0, 10, 100)y_linear = f_linear(x_dense)y_cubic = f_cubic(x_dense)# 绘制原始数据点plt.plot(x, y, 'o', label='Original data')# 绘制插值后的曲线plt.plot(x_dense, y_linear, '-', label='Linear interpolation')plt.plot(x_dense, y_cubic, '--', label='Cubic interpolation')# 在线性插值曲线上绘制生成点plt.plot(x_dense, y_linear,  marker='*' , label='Interpolated points')plt.legend()plt.show()

      来源:FEAer
      非线性二次开发ANSApythonUMOrigin
      著作权归作者所有,欢迎分享,未经许可,不得转载
      首次发布时间:2024-04-28
      最近编辑:14天前
      FEAer
      本科 | CAE工程师 到点就下班的CAE打工人
      获赞 66粉丝 73文章 67课程 2
      点赞
      收藏

      作者推荐

      未登录
      还没有评论

      课程
      培训
      服务
      行家

      VIP会员 学习 福利任务 兑换礼品
      下载APP
      联系我们
      帮助与反馈