首页/文章/ 详情

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

6月前浏览4009

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 plt
x = 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
最近编辑:6月前
FEAer
本科 | CAE工程师 到点就下班的CAE打工人
获赞 71粉丝 94文章 79课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈