使用Sum Indexed和Lambdify,并使用scipy来最小化大表达式

时间:2016-09-07 08:13:42

标签: scipy sympy lambdify

我有一个大约231个术语的表达式,这些表达式中的每一个都有一些cos(e)或sin(e)的幂,它们也可以混合,每个术语在分母中也有一个r(距离)项也提升了一些力量。

以下是表达式的一小部分 Equation Image

我想要做的是将表达式在所有角度e上然后在所有r上求和,并使用lambdify和scipy来最小化关于等式中存在的4个其他参数的表达式。

我尝试过的事情

  • 我曾尝试使用在scipy中编入索引的总和进行求和,但事实并非如此 能够使它工作,功率位也是棘手的,一旦我有了 sum索引表达式,我扩展它如何通过列表 用于计算表达式的角度值

  • 此外,由于表达式非常大,我想在循环中进行求和索引等,而不是单独解析每个幂的表达式。

(如果我的问题不明确,请告诉我。)

1 个答案:

答案 0 :(得分:1)

这就是我最终设法解决问题的方法 -

  • 用变量cose和sine替换cos(e)和sin(e)。
  • 迭代角度列表并使用sympy.subs用math.cos(e)和math.sin(e)替换cose和sine,并继续添加为r同时获得的表达式。
  • 这只留下p1和p2以及所需的Q1和Q2。
  • 我无法使用sympy lambdify和sum index,但这已经完成了工作。