数值分析方法 课件 2-5 Python程序在数值代数中的应用.pptx

数值分析方法 课件 2-5 Python程序在数值代数中的应用.pptx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数值分析方法面向“四新”人才培养普通高等教育系列教材主编李冬果李林高磊首都医科大学生物医学工程学院智能医学工程学学系

第二章数值代数基础

2.1线性方程组的直接解法2.2向量与矩阵的范数2.3线性方程组的迭代解法2.4矩阵特征值计算2.5Python程序在数值代数中的应用目录/Contents

2.5Python程序在数值代数中的应用线性方程组的直接解法的实现Gauss消去法、矩阵的三角分解法的实现(Doolittle/Cholesky分解)线性方程组的迭代解法的实现Jacobi迭代法、Gauss-Seidel迭代法、超松弛迭代法(SOR)法的实现矩阵特征值的Python计算幂法与反幂法的实现、基于QR分解的特征值求法SciPy工具包linalg模块(la.inv,la.solve,la.det,la.norm,la.eig,la.lu,la.svd,la.qr)

Gauss消去法defgauss_elimination(A,b):????A_aug=np.c_[A,b].astype(np.float64)????rows,cols=A_aug.shape????foriinrange(rows-1):????????#判断A_aug[i,i]是否为绝对值最大的元素,如果不是,则交换两行,????????max_index=np.argmax(np.abs(A_aug[i:,i]))????????ifmax_index!=0:????????????max_index=max_index+i????????????A_aug[[i,max_index],:]=A_aug[[max_index,i],:]????????m0=A_aug[i,i]????????forjinrange(i+1,rows):????????????m1=-A_aug[j,i]/m0????????????forkinrange(i,cols):????????????????A_aug[j,k]=m1*A_aug[i,k]+A_aug[j,k]????returnA_aug函数gauss_elimination_0会依次在A_aug每行获取主对角线元素,并通过行初等变换将其下的各行首个非0系数修改为0,从而得到最后的上三角矩阵。例如A=np.array([[2.,-1.,3.],[4.,2.,5.],[1.,2.,2.]])b=np.array([[1.],[1.],[1.]])B=gauss_elimination_0(A,b)结果为:array([[2.??,-1.??,?3.??,?1.??],???????[0.??,?4.??,-1.??,-1.??],???????[0.??,?0.??,?1.125,?1.125]])

Gauss消去法back_substitution(B)array([[-1.],[0.],[1.]])defback_substitution(A_aug):????rows,cols=A_aug.shape????A=A_aug[:,:-1].copy()????b=A_aug[:,-1].copy().reshape((rows,1))????res=np.zeros((rows,1),np.float64)????foriinrange(rows-1,-1,-1):????????s=0????????forjinrange(i+1,rows):????????????s+=A[i,j]*res[j]????????res[i]=(b[i]-s)/A[i,i]????returnres

在Gauss消去法的基础上增加一个有哪些信誉好的足球投注网站列主值的步骤就得到了列主元素法defgauss_elimination(A,b):????A_aug=np.c_[A,b].astype(np.float64)????rows,cols=A_aug.shape????foriinrange(rows-1):????????#判断A_aug[i,i]是否为绝对值最大的元素,如果不是,则交换两行,????????max_index=np.argmax(np.abs(A_aug[i:,i]))????????ifmax_index!=0:????????????max_index=max_index+i??

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档