scipy中样条插值的系数

2023-11-24

我想通过 scipy 计算样条插值的系数。 在 MATLAB 中:

x=[0:3];
y=[0,1,4,0];
spl=spline(x,y);
disp(spl.coefs);

它会返回:

ans =

   -1.5000    5.5000   -3.0000         0
   -1.5000    1.0000    3.5000    1.0000
   -1.5000   -3.5000    1.0000    4.0000

但我不能通过 scipy 中的 interpolate.splrep 来做到这一点。能告诉我怎么计算吗?


我不确定是否有任何方法可以从 scipy 中准确获取这些系数。什么scipy.interpolate.splrep给出的是 b 样条的结系数。 Matlab的样条给你的似乎是描述连接你传入的点的三次方程的部分多项式系数,这使我相信Matlab样条是基于控制点的样条,例如Hermite或Catmull-Rom而不是B 样条线。

然而,scipy.interpolate.interpolate.spltopp确实提供了一种获取 b 样条的部分多项式系数的方法。不幸的是,它似乎效果不太好。

>>> import scipy.interpolate
>>> x = [0, 1, 2, 3]
>>> y = [0, 1, 4, 0]
>>> tck = scipy.interpolate.splrep(x, y)
>>> tck
Out: 
    (array([ 0.,  0.,  0.,  0.,  3.,  3.,  3.,  3.]),
    array([  3.19142761e-16,  -3.00000000e+00,   1.05000000e+01,
        0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
        0.00000000e+00,   0.00000000e+00]),
    3)

>>> pp = scipy.interpolate.interpolate.spltopp(tck[0][1:-1], tck[1], tck[2])

>>> pp.coeffs.T
Out: 
    array([[ -4.54540394e-322,   0.00000000e+000,   0.00000000e+000,
           0.00000000e+000],
        [ -4.54540394e-322,   0.00000000e+000,   0.00000000e+000,
           0.00000000e+000],
        [ -4.54540394e-322,   0.00000000e+000,   0.00000000e+000,
           0.00000000e+000],
        [  0.00000000e+000,   0.00000000e+000,   0.00000000e+000,
           0.00000000e+000],
        [  0.00000000e+000,   0.00000000e+000,   0.00000000e+000,
           0.00000000e+000]])

请注意,每个结有一组系数,而不是传入的每个原始点都有一组系数。此外,将系数乘以 B 样条基础矩阵似乎没有太大帮助。

>>> bsbm = array([[-1,  3, -3,  1], [ 3, -6,  3,  0], [-3,  0,  3,  0], 
                 [ 1,  4,  1,  0]]) * 1.0/6
Out: 
    array([[-0.16666667,  0.5       , -0.5       ,  0.16666667],
        [ 0.5       , -1.        ,  0.5       ,  0.        ],
        [-0.5       ,  0.        ,  0.5       ,  0.        ],
        [ 0.16666667,  0.66666667,  0.16666667,  0.        ]])

>>> dot(pp.coeffs.T, bsbm)
Out: 
    array([[  7.41098469e-323,  -2.27270197e-322,   2.27270197e-322,
           -7.41098469e-323],
        [  7.41098469e-323,  -2.27270197e-322,   2.27270197e-322,
           -7.41098469e-323],
        [  7.41098469e-323,  -2.27270197e-322,   2.27270197e-322,
           -7.41098469e-323],
        [  0.00000000e+000,   0.00000000e+000,   0.00000000e+000,
           0.00000000e+000],
        [  0.00000000e+000,   0.00000000e+000,   0.00000000e+000,
           0.00000000e+000]])

FORTRAN 分段多项式包,PPPack,有一个命令bsplpp从 B 样条转换为分段多项式形式,这可能会满足您的需求。不幸的是,目前还没有 PPPack 的 Python 包装器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scipy中样条插值的系数 的相关文章

  • 函数名称未定义

    我有一段代码 看起来像这样 if name main main def main print hello 但是 当我尝试运行此代码时 出现错误 NameError 名称 main 未定义 我是否没有在函数 def main 的第一行定义名称
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • 如何在Python + Selenium中获取元素的值

    我在我的 Python 3 6 3 代码中得到了这个 HTML 元素 作为 Selenium网页元素当然 span class ocenaCzastkowa masterTooltip style color 000000 alt 5 sp
  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • 在多核上运行 python 线程

    我知道Python 2 7不允许在不同的内核上运行多个线程 你需要使用multiprocessing模块以实现某种程度的并发性 我正在看concurrent futuresPython 3 4 中的模块 是否使用ThreadPoolExec
  • 对法语文本进行词形还原[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一些法语文本需要以某种方式进行处理 为此 我需要 首先 将文本标记为单词 然后对这些单词进行词形还原以避免多次处理相同的词根 据我
  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • ImproperlyConfigured at / 不允许空静态前缀 - Django

    我正在使用 Django 上传 显示图像 该网站部署在 Heroku 上 下列的this https coderwall com p bz0sng教程我能够成功上传图像 但是 图像并未显示在模板中 然后我了解到我的 urls py 末尾应该
  • 为什么 pip 已经是最新的了却要求我升级?

    我全新安装了 python 3 7 1 64 位 并使用最新的 pyCharm 作为我的 IDE 我在这台机器上没有安装其他 python 我去安装 numpy 并收到以下消息 venv C Users John PycharmProjec
  • 使用 Python-VLC 的 PyInstaller:无属性“media_player_new”错误

    我使用 Python VLC 创建视频播放器 并使用 PyInstaller 在 Windows 10 计算机上生成可执行文件 最初 它给了我错误 Import Error Failed to load dynlib dll libvlc
  • Pygame:有人可以帮我实现双跳吗?

    我知道已经有其他关于此问题的帖子了 但我的运动系统与我发现的有点不同 所以随后我问这个问题 我的运动系统基于一个名为的命名元组Move up left right down 然后就是这个 def update self move block
  • 机器学习的周期性数据(例如度角 -> 179 与 -179 相差 2)

    我使用 Python 进行核密度估计 并使用高斯混合模型对多维数据样本的可能性进行排名 每一条数据都是一个角度 我不确定如何处理机器学习的角度数据的周期性 首先 我通过添加 360 来删除所有负角 因此所有负角都变成了正角 179 变成了
  • Django 1.7:如何使用 html/css 文件作为模板发送电子邮件

    从 Django 1 7 开始 可以send email 使用新参数 html message 不幸的是 没有关于如何使用它的全面指南 新手友好 或者至少我找不到它 我需要使发送的电子邮件变得漂亮 因此 我试图弄清楚如何将我的消息包含到 h
  • 为什么我无法杀死 k8s pod 中的 python 进程?

    我试图杀死一个 python 进程 ps aux grep python root 1 12 6 2 1 2234740 1332316 Ssl 20 04 19 36 usr bin python3 batch run py root 4
  • 如何将 pandas DataFrame 转换为 TimeSeries?

    我正在寻找一种将 DataFrame 转换为 TimeSeries 而不拆分索引和值列的方法 有任何想法吗 谢谢 In 20 import pandas as pd In 21 import numpy as np In 22 dates
  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • python 中的 F 字符串前缀给出语法错误[重复]

    这个问题在这里已经有答案了 我有一个名为 method 的变量 它的值是 POST 但是当我尝试运行时print f method method is used 它不断在最后一个双引号处给出语法错误 我找不到它这样做的原因 我正在使用 py
  • 带 Qt 的菜单栏/系统托盘应用程序

    我是 Qt PyQt 的新手 我正在尝试制作一个应用程序 其功能将从菜单栏 系统托盘执行 这里展示了一个完美的例子 我找不到关于如何做到这一点的好资源 有人可以建议吗 Thanks 我认为您正在寻找与QMenu and QMainWindo
  • 将函数按元素应用于两个 DataFrame

    如何应用函数z ij f x ij y ij 来自数据框X and Y相同大小并将结果保存到 DataFrameZ 这取决于你有什么样的功能 很多功能已经被矢量化为数据框 例如 等等 所以对于这些功能 你可以简单地做Z X Y or Z X
  • 在Python中使用os.makedirs创建目录时出现权限问题

    我只是想处理上传的文件并将其写入工作目录中 该目录的名称是系统时间戳 问题是我想以完全权限创建该目录 777 但我不能 使用以下代码创建的目录755权限 def handle uploaded file upfile cTimeStamp

随机推荐

  • jquery:如果语句在ajax成功函数中不起作用

    我的 AJAX 中有一个成功函数 它从 python 脚本返回响应文本 可以是 SUCCESS 或 EMPTY 现在我想在 success 函数中放置一个 if 循环 但 if 循环不起作用 我从 python 脚本中获取了正确的数据 因为
  • 如何在企业代理后面配置 Nginx

    是否有与 Apache 相当的工具ProxyRemoteNginX 的指令 所以场景是我在一个公司代理后面 我想使用 NginX 为各种服务做代理通行证 我会在 Apache 中执行以下操作 ProxyPass localStackOver
  • CSS:创建凸起框效果的好方法是什么?

    也就是说 元素的左边框和下边框需要提供弹出的 3D 效果 有没有一种好的 纯 CSS 的方法来实现这种效果 foo border 8px outset 999 webkit box shadow 5px 5px 15px rgba 0 0
  • 在 Rails 中子类化 User 模型真的很糟糕吗?

    我受到 Rails 的强烈反对 因为我已将 User 子类分为许多不同的子类 在我的应用程序中 并非所有用户都是平等的 实际上有很多模型对象 并不是每个用户类型都可以访问它们 我还需要一种方法来进行多态行为 例如 许多方法的行为会根据类型而
  • 如何在不增加背景图像大小的情况下增加(自定义类型)UIButton 的可点击(点击)区域

    是否可以在不改变按钮背景图像大小的情况下增加按钮的可点击区域 I tried shareButton setContentEdgeInsets UIEdgeInsetsMake top left bottom right shareButt
  • x86暂停指令的跨平台实现

    编写 x86 暂停指令的跨平台实现的最佳实践是什么 我计划在 C 11 项目的繁忙旋转循环中使用它 如果我只使用 gcc 工具链 那么我可以使用 mm pause 内在函数 即使本机处理器不支持 x86 暂停指令 此内在函数是否会执行正确的
  • 用于旋转/平移的矩阵的适当乘法

    为了旋转 平移对象 仅绕 z 轴旋转 仅在 xy 平面内平移 不仅与全局中心 设备中心 有关 而且还与其他任意点有关 我创建了一个算法 这是正确的 因为所有高级我与之讨论过的编码员认为这是正确的 but删除一个需要很长时间不需要的翻译正在实
  • IndexedDB - DataError:提供给操作的数据不符合要求

    我看过其他类似的问题 我的情况有所不同 因为我插入的是简单的 json 对象 没有键 没有自动增量 这是执行插入的部分 function insertInto model data successCallback console log i
  • 检查字符串是否包含数字

    我发现的大多数问题都存在偏见 因为他们正在寻找数字中的字母 而我正在寻找我想要的无数字字符串中的数字 我需要输入一个字符串并检查它是否包含任何数字以及是否拒绝它 功能isdigit 只返回True如果所有字符都是数字 我只是想看看用户是否输
  • 了解 Java 数据类型

    1 为什么不允许以下分配 byte b 0b11111111 8 bits or 1 byte 但这个分配是允许的 int i 0b11111111111111111111111111111111 32 bits or 4 bytes 两种
  • Android 电话堆栈中的不同呼叫状态代表什么?

    The internal安卓类com android internal telephony Call包含一个名为 State 的枚举 定义如下 public enum State IDLE ACTIVE HOLDING DIALING AL
  • 如何在winform中将数据绑定到图表并刷新图表?

    我尝试将图表绑定到generatedSequence类型的List
  • 如何及时了解计算机(尤其是软件)安全性的最新信息? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我最近购买并阅读了一套关于
  • NSPredicate 和 CoreData - 决定 iOS 上的 Date 属性是否为“今天”(或昨晚 12 点到今晚 12 点之间)

    我正在使用一个NSFetchedResultsController and a UITableViewController从 CoreData 数据库填充 UITableView 我有一个NSDate对象保存到标记为 startTime 的
  • 如何使用 JDBC 连接从主机到 docker mysql 服务器

    我是 docker 新手 我尝试从本地计算机 主机 连接到 mysql 容器 我用以下命令拉取了最新版本的mysql docker pull mysql mysql server latest 并启动它 以及 myadmin 容器 其中包含
  • 如何检查是否有足够的可用堆内存?

    我有一项作业要求我创建一个分配和释放内存的 堆 类 我相信我的代码可以工作 并且解决方案可以正常构建和运行 但我想确保没有任何内存泄漏 我还需要添加一些代码来检查分配给堆的所需数量是否可用 如果有人要分配非常大的数量 如何检查堆上分配的内存
  • 如何将@noescape注释添加到可选闭包

    我的函数有这个签名 func foo bar String baz String gt nil 而现在我想让不必要的逃避self在给定的闭包内 但是当我尝试这个时 func foo bar String noescape baz Strin
  • 向 woocommerce 添加每页产品下拉列表

    我正在尝试在不使用插件的情况下将 每页产品 下拉列表添加到我的 woocommerce 店面子主题中 我将以下代码添加到我的functions php中source add action woocommerce before shop lo
  • 在 Apache 上使用 PHP 进行长轮询

    希望我能很好地解释这一点 我正在努力创建一个通过 PHP 处理 ajax 请求的 PHP 库以面向对象的方式 我目前正在考虑一种实现长轮询解决方案的好方法 但对某些事情感到好奇 Apache 不能很好地保持多个连接打开 每个请求一个线程的模
  • scipy中样条插值的系数

    我想通过 scipy 计算样条插值的系数 在 MATLAB 中 x 0 3 y 0 1 4 0 spl spline x y disp spl coefs 它会返回 ans 1 5000 5 5000 3 0000 0 1 5000 1 0