gpt4 book ai didi

python /同情 : solve equations with different values

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:16 25 4
gpt4 key购买 nike

我正在尝试求解这三个方程:

a1 + a2 = b1
a2 + a3 = b2
b1 + b2 = c1

我为随机选择的三个变量生成值(不允许组合 b1、b2 和 c1),所以我可能有 a1 = 5、a3 = 10 和 c1 = 100,所以我可以用 sympy 求解该方程.

我的问题是我似乎无法将随机输入传输到代码的 sympy 部分并对其进行循环。

a1, a2, a3, b1, b2, c1 = symbols('a1 a2 a3 b1 b2 c1')
solve([a1.subs(a1, 5) + a2 - b1, a2 + a3.subs (a3, 10) - b2, b1 + b2 - c1.subs (c1, 100)], (a1, a2, a3, b1, b2, c1))

这在我假设 a1、a3 和 c1 时有效,正如我在示例中提到的那样,但我事先随机选择了这些变量。我曾尝试根据选择的变量创建 for 循环,但三个变量的可能组合太多,所以我放弃了。

最佳答案

如果我正确理解了您的要求,您可以使用 Sympy 的 linsolve 函数首先以符号方式求解方程,然后代入数字。关键步骤是告诉 linsolve 您要求解哪些变量。我建议使用 set 将要求解的变量与要插入值的变量分开。您可以这样声明您的变量:

all_vars = symbols('a1 a2 a3 b1 b2 c1')
# randomly choose which variables will have values
plug_in_for_vars = ...
solve_for_vars = tuple(set(all_vars) - set(plug_in_for_vars))

然后你可以定义你的方程

equations = [a1 + a2 - b1, a2 + a3 - b2, b1 + b2 - c1]

并将它们和选择的变量传递给 linsolve

solution = linsolve(equations, solve_for_vars)

然后您可以插入选定的值。

solution.subs({variable: value(variable) for variable in plug_in_for_vars})

当然 value(variable) 是您为确定要插入的数值所做的一切的代理。

关于 python /同情 : solve equations with different values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41313116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com