全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
1394 2
2017-11-06
import numpy as np
def triangleFun(a,b):
row=a.shape[0]
col=a.shape[1]
n=row-1
for i in range(0,n):
  for j in range(i+1,n): #变为上对角元素
    lam =float(a[j,i])/a[i,i]
    a[j,0:n]=a[j,0:n]-lam*a[i,0:n]
    b[j,0:n]=b[j,0:n]-lam*a[i,0:n]  
for p in range(n,-1,-1):
  for q in range(p-1,-1,-1):  #变为下对角元素
    lam=float(a[q,p])/a[p,p]
    a[q,::-1]=a[q,::-1]-lam*a[p,::-1]
    b[q,::-1]=b[q,::-1]-lam*a[p,::-1]
for l in range(0,n+1):
   a[l,l]=a[l,l]/a[l,l]
   b[l,:]=b[l,:]/a[l,l]
print(a,b)

a =np.mat([[1,2,1,4],[2,0,4,3],[4,2,2,1],[-3,1,3,2]])
b=np.eye(4)
print(triangleFun(a,b))

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-11-6 20:44:51
程序出来了 就是答案不对
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-24 14:42:24
def triangleFun(self):
        a=self.a
        b=self.b
        row=a.shape[0]
        col=a.shape[1]
        n=row-1
        for i in range(0,n):
            for j in range(i+1,n+1):
                if a[i,i]==0:
                    continue
                lam =float(a[j,i])/a[i,i]
                a[j,0:n+1]=a[j,0:n+1]-lam*a[i,0:n+1]
                b[j,0:n+1]=b[j,0:n+1]-lam*b[i,0:n+1]
        for p in range(n,-1,-1):
            for q in range(p-1,-1,-1):
                if a[p,p]==0:
                    continue
                lam=float(a[q,p])/a[p,p]
                a[q,0:n+1]=a[q,0:n+1]-lam*a[p,0:n+1]
                b[q,0:n+1]=b[q,0:n+1]-lam*b[p,0:n+1]
        for l in range(0,n+1):
            lam=a[l,l]
            if lam==0:
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群