Python使用变量insin保存(稀疏)矩阵

2024-04-16 19:46:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些大小合适的矩阵(2000*2000),我希望在矩阵的元素中有符号表达式,即.9**b + .8**b + .7**b ...是元素的一个例子。矩阵非常稀疏。你知道吗

我把中间的计算加起来,就建立了这些矩阵。我想把它们存储到磁盘上,以便以后读取,并用不同的b值进行计算。你知道吗

我和sympy打过交道,它做的正是我需要它做的,但是做简单的加法却慢得让人麻木。从我所读到的看来,no或tensorflow可能可以用张量来实现这一点,但我不知道如何在张量中放置符号。你知道吗

有没有人能给我指出一个正确的方向,那就是用什么工具来完成这项任务?我更喜欢用python,但是如果python之外的东西能胜任这项工作,那也很好。你知道吗


Tags: 工具no元素表达式tensorflow符号矩阵方向
1条回答
网友
1楼 · 发布于 2024-04-16 19:46:39

问题很可能来自于你拥有一种象征性的力量。但是,不管出于什么原因,辛比都试图为一种象征性的力量找到一种明确的形式。例如:

In [12]: x = Symbol('x')

In [13]: print(Matrix([[1, 2], [3, 4]])**x)
Matrix([[-2*(5/2 + sqrt(33)/2)**x*(-2/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)**2*(sqrt(33)/4 + 11/4)) + 1/(-1/2 + sqrt(33)/6))/(-sqrt(33)/2 - 3/2) + 2*(-sqrt(33)/2 + 5/2)**x/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)*(sqrt(33)/4 + 11/4)), -4*(5/2 + sqrt(33)/2)**x/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)*(-sqrt(33)/2 - 3/2)*(sqrt(33)/4 + 11/4)) - 2*(-sqrt(33)/2 + 5/2)**x/((-3/2 + sqrt(33)/2)*(sqrt(33)/4 + 11/4))], [(5/2 + sqrt(33)/2)**x*(-2/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)**2*(sqrt(33)/4 + 11/4)) + 1/(-1/2 + sqrt(33)/6)) - (-sqrt(33)/2 + 5/2)**x/((-1/2 + sqrt(33)/6)*(sqrt(33)/4 + 11/4)), 2*(5/2 + sqrt(33)/2)**x/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)*(sqrt(33)/4 + 11/4)) + (-sqrt(33)/2 + 5/2)**x/(sqrt(33)/4 + 11/4)]])

你真的想这么做吗?你提前知道b的价值吗?您可以使用MatPow(arr, b)使表达式不作为幂计算。你知道吗

相关问题 更多 >