python - 对象作为 fsolve 的参数
问题描述
我正在尝试解决包含样条线对象的有效非线性方程。由于我想用不同的数据多次执行此操作,我不想为每个数据集创建一个新函数,而是只创建一个函数并将样条曲线作为参数传递。
这些数据实际上是我拟合样条曲线的实验数据,我试图解决的方程相当复杂,但为了说明我的问题,我在下面的示例中使用了一个简单的正弦函数。
import numpy as np
from scipy import interpolate
from scipy.optimize import fsolve
import matplotlib.pyplot as plt
def equation(x0,func):
return ( interpolate.splev(x0,func) - 1 )
x = np.arange(0,2*np.pi,1)
y = np.sin(x)
yy = interpolate.splrep(x,y)
x0 = 3
root = fsolve(equation,x0,yy)
我收到以下错误:
TypeError: equation() takes exactly 2 arguments (4 given)
我怎样才能做到这一点?有什么建议吗?也许它不能这样做,如果是这样,还有其他解决方案吗?
解决方案
推荐阅读
- regex - 提取由空格包围的特定文本
- html - Angular 11 - 如何配置 ngbDropdown 以选择多个值?
- c# - 如何使用没有 MVC(Web API)的 asp.net 核心将图像上传到 PostgreSQL 数据库
- javascript - 无法在 React 中获取 json 文件
- python - 如何使用openpyxl从具有多个工作表和公式的excel中复制单个工作表?
- amazon-web-services - 创建 AWS EC2 新实例时运行 python 脚本
- android - 将 Jetpack Compose 与 Presentation 类一起使用
- r - 将字符串缩短为最多 N 个字符,并且只包含完整的单词 - R
- java - Selenium、Firefox:如何下载由 filesaver.js 创建的 CSV 文件
- c# - 如何批量反序列化 RawBsonDocument