当前位置: 首页 > 面试题库 >

SymPy-任意数量的符号

闾丘才哲
2023-03-14
问题内容

我正在编写一个函数,可以求解任意数量的联立方程。方程的数量由函数的参数之一设置,每个方程由多个符号构成-
与方程数量一样多。这意味着我不能简单地对方程式甚至是将方程式组合在一起所需的符号进行硬编码。该函数需要能够处理任意数量的方程式。因此,我的问题是,如何生成符号列表?

我有一个可能的解决方案,但是我的直觉告诉我这不会很有效。如果有更好的方法,请告诉我。

我是SymPy的新手,现在仍然感觉自己的方式。据我所知,符号需要用字符串定义。因此,我可以通过在字母后面加上一个递增数字(例如’t0’,’t1’等)来生成一系列字符串,将它们添加到列表中,然后使用这些字符串作为参数来创建符号。这些符号本身将存储在列表中,并用于生成方程式。

def solveEquations(numEquations):
    symbolNameList = []
    symbolList = []
    equationList = []
    for i in range(numEquations):
        name = 't' + str(i)
        symbolNameList.append(name)
        symbolList.append(Symbol(name))

    for i in range(numEquations):
        equation = 0
        for sym in symbolList:
            equation += sym ** i # Or whatever structure the equation needs
        equationList.append(equation)


    #Then go on to solve the equations...

这是执行此操作的最佳方法,还是有更有效的方法?


问题答案:

symbols函数可用于轻松生成符号列表

In [1]: symbols('a0:3')
Out[1]: (a₀, a₁, a₂)

In [2]: numEquations = 15

In [3]: symbols('a0:%d'%numEquations)
Out[3]: (a₀, a₁, a₂, a₃, a₄, a₅, a₆, a₇, a₈, a₉, a₁₀, a₁₁, a₁₂, a₁₃, a₁₄)


 类似资料:
  • 问题内容: 对于一个简单的问题,我似乎找不到所需的答案:如何将任何数字四舍五入到最接近的数字? 例如,无论何时数字为0.2、0.7、0.2222、0.4324、0.99999,我都希望结果为1。 到目前为止,我有 不过,它似乎并没有完成任务。 问题答案: 是正确的调用函数。我猜是一个,将执行整数运算。试试吧。 输出: 看到http://ideone.com/yhT0l

  • 问题 你想构造一个可接受任意数量参数的函数。 解决方案 为了能让一个函数接受任意数量的位置参数,可以使用一个*参数。例如: def avg(first, *rest): return (first + sum(rest)) / (1 + len(rest)) # Sample use avg(1, 2) # 1.5 avg(1, 2, 3, 4) # 2.5 在这个例子中,rest是由所

  • SymPy是一个象征性的操作方案,纯Python写的。其目的是要成为一个全功能的Python代数计算库,同时保持为代码尽可能简单,以便理解和容易扩展。目前,Sympy目前只有1600的代码(包括注释行),其功能包括基本的算术,基本简化,一系列扩大,功能(exp, ln, sin, cos, tan, 等),分化,整合(目前只能做很简单的积分),基本替代,任意精度的整数和有理数,标准(Python)的浮点,基本复杂的数字和符号的限制。

  • 我的表(表1)中有一条名为“Jonh Wood Doe Smith”的记录,即使用户键入任何可能的组合,我也想返回它:“John Doe”、“Jonn Wood Smith”等 我实现了一个collumn(全名),它是一个包含所有名称的数组,并打算像这样搜索它: 你知道这是否可能和/或解决这类问题的最佳方法是什么吗?我会使用postgresql,所以专有方法、函数等都不是问题。它不需要与其他数据库

  • 我想创建一个方法,它可以具有任意数量的参数和任何数据类型的任何方法。 为。我想动态调用以下所有方法void method1(int x,int y)void method2(int x,String y)void method3(Float x,Long y,String z) 我正在使用反射来这样做。现在我讨论了如何在调用这个动态方法的过程中向这些方法传递参数。我做了多远... 如何调用MyMe