【问题标题】:Transforming a set of symbolic linear equations in to matrix form将一组符号线性方程转换为矩阵形式
【发布时间】:2016-05-01 23:06:34
【问题描述】:

我想将一组符号线性方程转换为如下形式: {0} = [M]*{v} 其中 {0} 是零向量,[M] 是变量矩阵,{v} 是系数向量。

只是为了向您展示我的问题,我希望有人可以帮助我以所需的形式编写我的示例:

from sympy import*
init_printing()

a_0, a_1, a_2, x  = symbols('a_0, a_1, a_2, x')

a_0 + a_1*x + a_2 * x**2

注意:我使用 LaTeX 形式,所以如果你没有安装 LaTeX,你应该删除 init_printing()

所以我想做一个像这样的表格:

                   {a_0
{0} = [1 x x^2] *   a_1
                    a_2}

在我的例子中,会有一组相似的线性方程,但我想学习可以让我将一组线性方程转换为矩阵形式的想法或函数。

【问题讨论】:

  • 几点说明:标签属于标签,不属于标题;感谢/问候不属于 Stack Overflow 的任何地方;更好的焦点也会有所帮助:“我的目标是这个,但我的问题是这个”令人困惑。
  • 检查sympy函数linear_eq_to_matrix

标签: python matrix vector linear-algebra sympy


【解决方案1】:

分解x 术语的一个简单技巧是采用雅可比行列式

In [40]: eq = a_0 + a_1*x + a_2 * x**2

In [41]: Matrix([eq]).jacobian(Matrix([a_0, a_1, a_2]))
Out[41]:
⎡       2⎤
⎣1  x  x ⎦

这里可能对您有用的另一个函数是collect

In [45]: collect(eq, x, evaluate=False)
Out[45]:
⎧               2    ⎫
⎨1: a₀, x: a₁, x : a₂⎬
⎩                    ⎭

【讨论】:

    【解决方案2】:

    以下示例演示:创建多项式,创建具有 x 次幂的矩阵;创建系数矩阵;矩阵乘法;提取矩阵的元素。

    参考:Polynomials ManipulationMatrices

    from sympy import *
    a_0, a_1, a_2, x  = symbols('a_0, a_1, a_2, x')
    p = Poly( a_0 + a_1*x + a_2 * x**2, x)
    powers = Matrix([[x**k for k in range(p.degree()+1)]])
    c = p.all_coeffs()
    c.reverse()
    coefficients = Matrix(c)
    print(powers, coefficients, (powers*coefficients)[0,0])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多