贤者新手;在向量和矩阵中引入符号(变量)

问题描述 投票:1回答:1

我想用符号而不是数字来评估线性代数运算。例如,具有以下矩阵:

A = matrix(QQ,[
    [ 2,  1,  2, -6],
    [-1,  2,  1,  7],
    [ 3, -1, -3, -1],
    [ 1,  5,  6,  0],
    [ 2,  2,  1,  1]
    ])

我想为具有符号变量的向量乘以如下:

t = 'real'
var('x1')
assume(x1, t)
var('x2')
assume(x2, t)
var('x3')
assume(x3, t)
var('x4')
assume(x4, t)
xx = vector(QQ, [x1, x2, x3, x4])
A * xx.transpose()

不幸的是,构建xx向量是不成功的,产生此错误消息:

TypeError: Cannot evaluate symbolic expression to a numeric value.

这不起作用,那么如何在Sage的线性代数框架中使用符号呢?

python linear-algebra symbolic-math sage
1个回答
2
投票

一种解决方案是使用多项式环中的条目。

sage: R.<x1,x2,x3,x4> = PolynomialRing(QQ)
sage: R
Multivariate Polynomial Ring in x1, x2, x3, x4 over Rational Field

然后使用R中的坐标定义矢量。

sage: xx = vector(R,[x1,x2,x3,x4])
sage: A * xx

结果是另一个带有R条目的向量。

另一种解决方案是在象征性的环SR中工作,正如@kcrisman在ask-sage上指出的那样。

© www.soinside.com 2019 - 2024. All rights reserved.