python - 评估 sympy.core.add.Add 一点
问题描述
我过去常常derive_by_array
把我的 sympy 函数变成某种类型的东西array of sympy.core.add.Add
。现在我想sympy.core.add.Add
在某个给定点评估类型的表达式,我该怎么做?
a = Symbol('a')
b = Symbol('b')
c = Symbol('c')
f = (-b + sqrt(b**2 - 4*a*c)) / (2 * a)
g = derive_by_array(f, (a, b, c))
type(g[0]) #output: 'sympy.core.add.Add'
我试图评估sympy.core.add.Add
一点:
g[0](1,1,0)
TypeError:“添加”对象不可调用
所以简而言之,问题是:我如何sympy.core.add.Add
在给定的点上进行评估?
解决方案
我们可以用一个数字代替每个或所有变量:
In [21]: g[0]
Out[21]:
_____________
╱ 2
c -b + ╲╱ -4⋅a⋅c + b
- ────────────────── - ─────────────────────
_____________ 2
╱ 2 2⋅a
a⋅╲╱ -4⋅a⋅c + b
In [22]: g[0].subs({a:1})
Out[22]:
__________
╱ 2
b c ╲╱ b - 4⋅c
─ - ───────────── - ─────────────
2 __________ 2
╱ 2
╲╱ b - 4⋅c
In [23]: g[0].subs({a:1, b:1})
Out[23]:
_________
c ╲╱ 1 - 4⋅c 1
- ─────────── - ─────────── + ─
_________ 2 2
╲╱ 1 - 4⋅c
In [24]: g[0].subs({a:1, b:1, c:0})
Out[24]: 0
推荐阅读
- java - Java - 从 csv 文件创建的 arrayList 中解析对象名称
- javascript - 什么是防止浏览器页面滚动的通用方法,适用于每个浏览器和手机
- javascript - 当 URL 以“//”为前缀时,Electron 无法加载外部 SVG 文件
- python - 本地主机上的 Scrapy splash 连接被拒绝:8050
- python - 如何在条形图中为每个组添加唯一的水平条形标记
- angular - ng build/serve not working 模板中的错误
- mongodb - 如何理解 Bson 时间戳?
- c - 高级 C 问题:请解释 C 构造 *({ foo(&bar); &bar; })
- c - 如何在 C 中将文本文件作为命令行参数
- javascript - 在 javascript 对象中搜索任何值