python - subs() 用于大量变量

标签 python sympy

我正在致力于优化,并且我想编写一个可以 sub() 大量变量的函数。 为此,我生成了一个带有 n 个变量的 m 个函数。例如,假设有 3 个函数和 2 个变量。

num_var=2
x=symbols('x0:num_var')

我生成了这个函数:

f=[5*x0 + 4*x1 + 6, -4*x0 - 5*x1 - 6, -8*x0 - 10]

我有一个观点:

point=[-2.8,1.74]

如果我想在每个函数中使用 sub(),最快的方法是什么?

f[0].subs([(x[0],point[0]),(x[1],point[1])])

(这将给出第一个函数的评估) 我在列表中得到了三个函数评估:

fun_eval=[some number,some number, ... (in size of number of functions)] 

问题是如何编写代码来对大量函数中的大量变量进行评估?

最佳答案

>>> from sympy import *
>>> x0, x1 = x = symbols('x:2')
>>> f = [5*x0+4*x1+6, -4*x0-5*x1-6, -8*x0-10]
>>> point = (-2.8, 1.74)
>>> [fi.subs(zip(x, point)) for fi in f]
[-1.04000000000000, -3.50000000000000, 12.4000000000000]

关于python - subs() 用于大量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811621/

相关文章:

python - 如何从odoo 8中的orm获取数据库值和从字符串获取字段名称

python - 如何计算方差?

python - sympy 简化虚数的分数幂

python - 如何摆脱 sympy 替代错误消息?

sympy - 如何在 sympy 中优化 hessian 的评估?

python - 用sympy计算多元函数的泰勒级数

python - 我不明白为什么我的数据库没有更新新模型

python - 从前两组中获取前两行

python - 是否可以在 python 中进行两种方式的组合?

python:比较等效坐标