python - 如何找到一个numpy数组的根
问题描述
我想知道如何找到数组的脚。我现在拥有的是:
import numpy as np
from scipy.optimize import brentq as find_root
t = np.linspace(0, 100)
def f(x):
return x ** 2 - t
a = find_root(f, -400, 400)
print(a)
它给了我一个类型数组说:
TypeError: only size-1 arrays can be converted to Python scalars.
我知道原因是 find_root 只能在其参数中采用标量。我想要的是使“a”成为一个凹凸不平的数组,在给定每个可能的 t 值的情况下找到函数的根。这是否意味着我需要为 find_root 编写一个循环?或者我需要在定义函数之前编写一个循环吗?最简单的方法是什么?非常感谢您的帮助。
解决方案
是的,在这种情况下,循环遍历参数可能是最简单的。
import numpy as np
from scipy.optimize import brentq as find_root
def f(x, t):
return x ** 2 - t
a = [find_root(f, 0, 400,args=(i,)) for i in np.linspace(1,10,10)]
print(a)
请注意,我t
向您的函数引入了一个参数f
,您可以使用.args
find_root
推荐阅读
- html - HTML 为什么我的边框中的 span 和 div 有区别?
- javascript - 如何将 base64 字符串解码为图像并使用 PHP 将其保存在我的服务器上
- java - 从excel模板读取数据并写入同一个文件
- java - Java Swing 中的 GridBagLayout
- javascript - 嵌入式调查JS问题
- php - 带有元音突变的 SQL 字符串的问题
- javascript - Django:选中复选框时删除对象
- animation - 如何在颤动的 appBar 图标上的购物车图标上添加商品编号?我怎样才能让它动画添加新项目?
- php - 如何检查现有的“tarificationtache”
- c - 给数据一个有效的类型算作副作用吗?