Python求一个3-3矩阵对角线元素之和,正三角形python

  Python求一个3*3矩阵对角线元素之和,正三角形python

  我看了过去关于三对角的问题,但似乎没有人遇到我遇到的问题。我试图用,非均匀泊松方程的三对角刚度矩阵scipy.sparse.spdiags但似乎并没有因此收到矩阵。在定义泊松刚度(x0):

  n=len(x0)-1 #元素的量(不是点数的量)x0,x1,x_N

  h=np.zeros(N)

  a=NP。零(^北部1)

  b=np.zeros(N)

  对于范围内的我(N):

  h[I]=x0[I 1]-x0[I]#每个非均匀元素的长度

  a[0]=1/h[0]

  对于范围(1,N)中的我:

  a[I]=1/h[I]1/h[I-1]#刚度矩阵的主对角线

  a[N]=1/h[N-1]

  对于范围内的我(N):

  b[I]=-1/h[I]#刚度矩阵的上下对角线。

  三对角线_数据=np.array([[a],[b],[b]])

  位置=[0,1,-1]

  刚度矩阵=scipy。稀疏。spdiags(三对角数据,位置,N ^ 1,N ^ 1)

  打印刚度_矩阵

  因此,当x0=[0,0.3,0.4,0.7,1]时,得到的刚度矩阵如下:

  ^{pr2}$

  我的问题是为什么它是这样的,而不是矩阵形式?在

  我尝试过更改数据类型以查看是否存在问题,但我会收到诸如(for.toarray())之类的错误:詹姆斯-MBP:泊松詹姆斯马龙$ python泊松1d.py

  回溯(最近一次呼叫):

  文件Poisson1d.py ,第33行,在

  泊松刚度([0,0.3,0.4,0.7,1])

  文件泊松1d。py ,第29行,泊松_刚度

  刚度矩阵=scipy。稀疏。spdiags(三对角数据,位置,N ^ 1,N ^ 1).托阵列()

  转换为数组中的文件"/Users/jamesmalone/anaconda/lib/python 2.7/site-packages/scipy/sparse/base。py”,第637行

  返回self.tocoo().toarray(order=order,out=out)

  转换为数组中的文件"/Users/jamesmalone/anaconda/lib/python 2.7/site-packages/scipy/sparse/首席运营官。py”,第275行

  B.ravel(A ),fortran)

  运行时错误:内部错误:无法解析数据类型

  提前谢谢。在

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: