当前位置:文档之家› Fortran求逆矩阵子程序

Fortran求逆矩阵子程序

Fortran求逆矩阵子程序
Fortran求逆矩阵子程序

! 求逆矩阵

subroutine inverse(A,IA)

implicit none

real :: A(:,:), IA(:,:)

real, allocatable :: B(:,:)

integer :: i,j,N

N = size(A,1)

allocate(B(N,N))

! 先把IA设定成单位矩阵

forall(i=1:N,j=1:N,i==j) IA(i,j)=1.0

forall(i=1:N,j=1:N,i/=j) IA(i,j)=0.0

! 保存原先的矩阵A, 使用B来计算

B=A

! 把B化成对角线矩阵(除了对角线外,都为0) call Upper(B,IA,N) ! 先把B化成上三角矩阵call Lower(B,IA,N) ! 再把B化成下三角矩阵! 求解

forall(i=1:N) IA(i,:)=IA(i,:)/B(i,i)

return

end subroutine

! 求上三角矩阵的子程序

subroutine Upper(M,S,N)

implicit none

integer :: N

real :: M(N,N)

real :: S(N,N)

integer :: I,J

real :: E

do I=1,N-1

do J=I+1,N

E=M(J,I)/M(I,I)

M(J,I:N)=M(J,I:N)-M(I,I:N)*E

S(J,:)=S(J,:)-S(I,:)*E

end do

end do

return

end subroutine Upper

! 求下三角矩阵的子程序subroutine Lower(M,S,N)

implicit none

integer :: N

real :: M(N,N)

real :: S(N,N)

integer :: I,J

real :: E

do I=N,2,-1

do J=I-1,1,-1

E=M(J,I)/M(I,I)

M(J,1:N)=M(J,1:N)-M(I,1:N)*E

S(J,:)=S(J,:)-S(I,:)*E

end do

end do

return

end subroutine Lower

ABAQUS中Fortran子程序调用方法

第一种方法: / o/ J5 @6 U/ ^- o$ 1. 建立工作目录/ ]" 2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc或aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc; # ~/ |0 I0 E6 {, @4 X3 q: W3. 将编译的fortran程序拷贝到工作目录; 4. 将.obj文件拷贝到工作目录; 5. 建立好输入文件.inp; 6. 运行abaqusjob=inp_name user=fortran name即可。 第二种方法: 在Job模块里,创建工作,在EditJob对话框中选择General选项卡,在Usersubroutine file中点击Select 按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。 , D8 i7 d/r c6 @" | 以下是网上摘录的资料,供参考:. |$ t/ }$W7 Y6 m4 h6 D6 j 用户进行二次开发时,要在命令行窗口执行下面的命令: 4 O. R+ ^,@( ? abaqus job=job_name user=sub_name ABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。这种运行机制与ANSYS、LS-DYNA、marc等都不同。 : j6 g' R-o( {0 [* N2 J3 X这些生成的临时文件要到文件夹C:\Documentsand Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。 1子程序格式(程序后缀是.f; .f90; .for;.obj??) 答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。在Abaqus中,运行abaqusj=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。 如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。 2CAE中如何调用?Command下如何调用? 答:CAE中在creat job的jobmanager中的general中可以指定子程序; Command下用命令:abaqus j=jobnameuser=userfilename (无后缀); 3若有多个子程序同时存在,如何处理 答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册) 4我对VF不是很熟,是否可以用VC,C++编写子程序? A: 若要在vf中调试,那么应该根据需要把SITE文件夹中的ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应的位置,并改名为ABA_PARAM.INC即可。 据说6.4的将可以,6.3的你可以尝试着将VC,C++程序编译为obj文件,没试过。在你的工作目录下应该已经存在ufield.obj和uvarm.obj这两个文件(这两个文件应该是你分别单独调试ufield.FOR和uvarm.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UV ARM 和UFIELD这两个subroutine,显然会造成重复定义,请查实。 用户子程序的使用 假设你的输入文件为:a.inp b.for 那么在ABAQUS Command 中的命令应该是这样的: abaqusjob=a user=b

总结求矩阵的逆矩阵的方法

总结求矩阵的逆矩阵的方法 课程名称: 专业班级: 成员组成: 联系方式:

摘要:矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快 捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 关键词:矩阵逆矩阵方法 Method of finding inverse matrix Abstract: Matrix in linear algebra is the main content,many prictical problems with the matrix theory is simple and fast. The inverse matrix andmatrix theory the important content, the solution of inverse matrix nature has become one of the main research contents of linear algebra. The paper will give some method of finding inverse matrix. Key words: Matrix inversematrix method

正文: 1.引言:矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 2.求矩阵的逆矩阵的方法总结: 2.1 矩阵的基本概念 矩阵,是由个数组成的一个行列的矩形表格,通常用大写字母表示,组成矩阵的每一个数,均称为矩阵的元素,通常用小写字母其元素表示,其中下标都是正整数,他们表示该元素在矩 阵中的位置。比如,或表示一个矩阵,下标表示元素位于该矩阵的第行、第列。元素全为零的矩阵称为零矩阵。 特别地,一个矩阵,也称为一个维列向量;而一个矩阵,也称为一个维行向量。 当一个矩阵的行数与烈数相等时,该矩阵称为一个阶方阵。对于方阵,从左上角到右下角的连线,称为主对角线;而从左下角到右上角的连线称为付对 角线。若一个阶方阵的主对角线上的元素都是,而其余元素都是零,则称 为单位矩阵,记为,即:。如一个阶方阵的主对角线上(下)方的元素都是零,则称为下(上)三角矩阵,例如, 是一个阶下三角矩阵,而则是一个阶上三角矩阵。今后我们用表示数域上的矩阵构成

fortran语法手册

1 FORTRAN77四则运算符 + - * / ** (其中**表示乘方) 在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→() 2 FORTRAN77变量类型 2.1 隐含约定:I-N规则 凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。 如IMPLICIT REAL (I,J) 三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。 2.4 数组的说明与使用 使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例: DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3) REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2) 10FORMAT(1X,5(A2,I2,1X,A2,I4)) 2.5 使用DATA语句给数组赋初值 变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如 DATA A,B,C/-1.0,-1.0,-1.0/ DATA A/-1.0/,B/-1.0/,C/-1.0/ DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)

DATA CHN/10*' '/INTEGER NUM(1000) DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/ 3 FORTRAN77程序书写规则 程序中的变量名,不分大小写; 变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效; 一行只能写一个语句; 程序的第一个语句固定为PROGRAM 程序名称字符串 某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容; 某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容; 某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行; 某行的第7至72字符位为语句区,语句区内可以任加空格以求美观; 某行的第73至80字符位为注释区,80字符位以后不能有内容。 4 FORTRAN77关系运算符 .GT. 大于 .GE. 天于或等于 .LT. 小于 .LE. 小于或等于 .EQ. 等于 .NE. 不等于 .AND. 逻辑与 .OR. 逻辑或 .NOT. 逻辑非 .EQV. 逻辑等 .NEQV. 逻辑不等 运算符优先级由高到低顺序为:()→**→*或/→+或-→.GT.或.GE.或.LT. 或.LE.或.EQ.或.NE.→.NOT.→.AND.→.OR.→.EQV.或.NEQV 5 FORTRAN77语句

逆矩阵的几种常见求法

逆矩阵的几种常见求法 潘风岭 摘 要 本文给出了在矩阵可逆的条件下求逆矩阵的几种常见方法,并对每种方法做了具体的分析和评价,最后对几种方法进行了综合分析和比较. 关键词 初等矩阵; 可逆矩阵 ; 矩阵的秩; 伴随矩阵; 初等变换. 1. 相关知识 1.1 定义1 设A 是数域P 上的一个n 级方阵,如果存在P 上的一个n 级方阵B ,使得AB=BA=E,则称A 是可逆的,又称A 是B 的逆矩阵.当矩阵A 可逆时,逆矩阵由A 唯一确定,记为1-A . 定义2 设()ij n n A a ?=,由元素ij a 的代数余子式ij A 构成的矩阵 11 2111222212n n n n nn A A A A A A A A A ?? ? ? ? ??? 称为A 的伴随矩阵,记为A *. 伴随矩阵有以下重要性质 AA *= A *A=A E. 注:注意伴随矩阵中的元素ij A 的排列顺序. 1.2 哈密尔顿-凯莱定理

设A 是数域P 上的一个n n ?矩阵,f A λλ=E-()是A 的特征多项式, 则 11122()10n n n nn f A A a a a A A E -=-++ ++ +-=()() (证明参见[1]) . 1.3 矩阵A 可逆的充要条件 1.3.1 n 级矩阵A 可逆的充分必要条件是A 0≠(也即()rank A n =); 1.3.2 n 级矩阵A 可逆的充分必要条件是A 可写成一些初等矩阵的乘积(证明参见[1]); 1.3.3 n 级矩阵A 可逆的充分必要条件是A 可以通过初等变换(特别只通过初等行或列变换)化为n 级单位阵(证明参见[1]); 1.3.4 n 级矩阵A 可逆的充分必要条件是存在一个n 级方阵B ,使得AB=E (或BA=E ); 1.3.5 n 级矩阵A 可逆的充分必要条件是A 的n 个特征值全不为0;(证明参见[2]); 1.3.6 定理 对一个s n ?矩阵A 作一初等行变换就相当于在A 的左边乘上相应的s s ?初等矩阵;对A 作一初等列变换就相当于在A 的右边乘上相应的n n ?初等矩阵.(证明参见[1]) 2.矩阵的求逆 2.1 利用定义求逆矩阵 对于n 级方阵A ,若存在n 级方阵B ,使AB=BA=E ,则1B A -=.

(完整)Fortran经典编程语言笔记(你值得拥有)

FORTRAN笔记 2014.10.07 目录 第七讲_FORTRAN的基本知识.ppt (2) FORTRAN语言程序设计初步 (2) FORTRAN源程序的书写格式(以77为例) (2) 变量 (2) 变量类型 (2) 算术运算符和运算优先级 (3) 赋值语句 (3) 参数语句(PARAMETER语句) (3) END语句 (3) PAUSE语句 (3) 逻辑运算和选择结构 (4) 关系表达式 (4) FORTRAN中数组的定义及使用 (4) 其他 (5) 1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5) 2. fortran里character*10 是什么意思 (5) 3. Fortran中kind是什么函数? (5)

第七讲_FORTRAN的基本知识.ppt FORTRAN语言程序设计初步 FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用 数学公式表达的问题而设计的,其数值计算的功能较强。 常用的是FORTRAN77和FORTRAN90两种标准。 1、一个程序由若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。 2、每一个程序单位都是以“END”结束的。 3、一个程序单位包括若干行。 1)语句行。由一个FORTRAN语句组成。 2)非语句行,即注释行。 4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。标号的作用是标志一个语句以便被其 他语句引用。 5、一个程序单位中各类语句的位置是有一定规定的。 6、FORTRAN源程序必须按一定的格式书写。 FORTRAN源程序的书写格式(以77为例) 每一行有80列,分别如下: 1、第1-5列为标号区。一行中第一列为“C”或“*”,该行即被认为是注释行。 2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。 3、第7-72列为语句区。 4、第73-80列,注释区。 变量 变量名:一个变量需要用一个名字(变量名)来识别。在同一个程序单位中不能用同一个变量名代表两个不同的变 量。 FORTRAN的变量名按以下规则选定: 1)第一个字符必须是字母,即变量名必须以字母开头; 2)在一个字母后面可以跟1-5为数字或字母。 如果选定的变量名超过6个字符,则只有前面6个字符有效。 注:在变量名中大写与小写字母是等价的。 变量类型 整型变量Integer、实型变量Real、双精度变量Double Precision、复型变量Complex、逻辑型变量Logical和字符型变量Character。 1、隐含约定(I-N规则) FORTRAN规定:在程序中的变量名,凡以字母I,J,K,L,M,N六个字母开头的,即认为该变量为整型变量。 在程序中,凡是变量名以字母I,J,K,L,M,N,i,j,k,l,m,n开头的变量被默认为整型变量,以其他字母开头的变量被 默认为实型变量。 2、用类型说明语句确定变量类型 1)INTEGER语句(整型说明语句) 2)REAL语句(实型说明语句) 3)DOUBLE PRECISION语句(双精度说明语句) 4)COMPLEX语句(复型说明语句) 5)LOGICAL语句(逻辑型说明语句)

总结求矩阵的逆矩阵的方法

总结求矩阵的逆矩阵的方法-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

总结求矩阵的逆矩阵的方法 课程名称: 专业班级: 成员组成: 联系方式:

摘要:矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数 研究的主要内容之一.本文将给出几种求逆矩阵的方法. 关键词:矩阵逆矩阵方法 Method of finding inverse matrix Abstract: Matrix in linear algebra is the main content,many prictical problems with the matrix theory is simple and fast. The inverse matrix andmatrix theory the important content, the solution of inverse matrix nature has become one of the main research contents of linear algebra. The paper will give some method of finding inverse matrix. Key words: Matrix inversematrix method

正文: 1.引言:矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 2.求矩阵的逆矩阵的方法总结: 2.1 矩阵的基本概念 矩阵,是由个数组成的一个行列的矩形表格,通常用大写字母表示,组成矩阵的每一个数,均称为矩阵的元素,通常用小写字母其元素表示,其中下标都是正整数,他们表示该元素 在矩阵中的位置。比如,或表示一个 矩阵,下标表示元素位于该矩阵的第行、第列。元素全为零的矩阵称为零矩阵。 特别地,一个矩阵,也称为一个维列向量;而一个矩阵,也称为一个维行向量。 当一个矩阵的行数与烈数相等时,该矩阵称为一个阶方阵。对于方阵,从左上角到右下角的连线,称为主对角线;而从左下角到右上角的连线称 为付对角线。若一个阶方阵的主对角线上的元素都是,而其余元素都是零,则称为单位矩阵,记为,即:。如一个阶

FORTRAN内部函数库

FORTRAN内部函数 用FORTRAN解题往往要用到一些专门运算,如求三角函数sinx, cosx,对数lnx,指数ex,求一组数中最大数和最小数等。 FORTRAN提供了一些系统函数(称为内部函数)来完成这些运算。程序设计者不必自己设计进行这些运算的语句组(即程序段或子程序),只需写出一个函数的名字以及给出一个或若干个自变量,就可以得到所需的值,例如: SQRT(4.0)求出4.0的平方根, SIN(2.0)求出2(弧度)的正弦值, EXP(3.5)求出e3.5, LOG(3.0)求出3, 常用的函数如下表,FORTRAN77提供的全部函数明细见FORTRAN77内部函数。 函数名含义应用例子相当于数学上的运算 ABS 求绝对值ABS(A) |a| EXP 指数运算EXP(A) e^a SIN 正弦值SIN(X) sin x COS 余弦值COS(X) cos x ASIN 反正弦ASIN(X) sin^(-1)a ACOS 反余弦ACOS(X) cos-1a TAN 正切TAN(X) tan x ATAN 反正切ATAN(A) tan^(-1)a LOG 自然对数LOG(A) lna,或loge(a) LOG10 常用对数LOG10(A) log10a INT 取整INT(A) int(a),取a的整数部分 MOD 求余MOD(A1,A2) a - int(a1/a2)*a2 SIGN 求符号SIGN(A1,A2) |a1|(若a2>0) -|a1|(若a2<0) REAL 转换为实型REAL(I) MAX 求最大值MAX(A1,A2,A3) max(a1,a2,a3) MIN 求最小值 MIN(A1,A2,A3) min(a1,a2,a3) 说明: (1)FORTRAN77将这些系统函数分别编成一个个子程序,组成函数库,存贮于外部介质(如磁盘)上。在完成源程序的编译之后,用LINK命令实现连接,即将已翻译成二进制指令的目标程序与函数库连接。也就是将程序中出现函数名的地方用函数库中相应的一组指令代入之,组成一个统一的“可执行目标块”。例如,程序中出现一个SIN函数,在连接时就将一组二进制指令(它们是实现求正弦值的运算的)直接插入到程序中出现SIN的地方。由于是插入到程序内部的,所以称为“内部函数”。 (2)一个内部函数要求一个或多个自变量。例如,SQRT函数只能有一个自变量SQRT(4.6),MOD函数要求两个自变量MOD(8,3),MAX和MIN函数要求两个以上自变量MAX(6,-8,10),MIN(-6,8,0)。当自变量个数规定为2个时,自变量的顺序不应任意颠倒,MOD(8,3)表示8被3除的余数,其值为2,而MOD(3,8)则表示3被8除的余数,其值为3。当自变量个数>2时,自变量的顺序无关,MAX(6,8,10)和MAX(8,10,6)结果是一样的。

FORTRAN程序设计复习题及答案

FORTRAN程序设计复习题 一、选择题 B (1)下列各FORTRAN表达式中合法的是 A) S+T*2P >= B) .NOT. (A*B+C) C) A2+B2/(C+D) <= D) (A+B).NOT.A*B.GT.(.NOT.只跟一个表达式) C (2)数学式(3/5)ex+y的FORTRAN表达式是 A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/ C) (3/5)*EXP(X+Y)D) EXP(X+Y) D (3)下列FORTRAN77表达式中不合法的是 A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.D C) .NOT.(X.LE.D) A.LT.B.LT.C.LT.D D(4)下列叙述中不正确的是 A) FORTRAN子程序可以单独编译 B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件 C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错 D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(正确描述:主要任务为连接目标文件) B (5)在下列FORTRAN77运算符中,优先级最高的是 A) .AND. B) .NOT. C) .OR. D) .EQ. B (6)FORTRAN表达式"6/5+9/2**3/2"的值为 A) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77表达式中,合法的是: A) .AND.. B) 10.0 C) D) 提示:A)相当于 .AND.(.NOT.()) D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列C) 第6列D) 第5列 D (10)下列关于"SUBROUTIN E MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参D) 子程序执行后,MAP将返回整型数据 提示:子程序无返回值,自定义函数才有) A (11)FORTRAN表达式"2/4+"的值是 A) B) 1 C) D) 0 提示:2/4默认等于整型,=》 D (12)FORTRAN表达式"MOD,"的值是 A) B)0.0 C) D) A (13下列FORTRAN运算符中,优先级最低的是 A)逻辑运算符.AND. B)算术运算符*

中国海洋大学Fortran程序考试典型题

1、找出100-150之间和400-450之间能被9整除的数 2、找出100-999之间的回文数 3、找出水仙花数

4、输出“*”图形 5、输入n个数,找出大于平均值的数和最小数

6、把一个数值型数组的相同数删除到只剩一个 7、形成一个5*5矩阵,对角线元素为“i”,其余为“j”program juzhen implicit none integer I,J integer,parameter::size=5 integer::a(size,size) forall(I=1:size,J=1:size,I>J) a(I,J)=j forall(I=1:size,J=1:size,I==J) a(I,J)=i forall(I=1:size,J=1:size,I

integer,allocatable::c(:) write(*,*) "输入数组A的数据个数" read(*,*) n write(*,*) "输入数组B的数据个数" read(*,*) m l=m+n allocate (a(n)) allocate (b(m)) allocate (c(l)) write(*,*) "从小到大输入A的元素" do i=1,n read(*,*) a(i) end do write(*,*) "从小到大输入B的元素" do i=1,m read(*,*) b(i) end do do i=1,n c(i)=a(i) end do i=1 do while(i=c(n))then n=n+1 c(n)=b(i) goto 10 else if(b(i)>c(j).and.b(i)

求逆矩阵的方法

求逆矩阵的方法与矩阵的秩 一、矩阵的初等行变换 (由定理2.4给出的求逆矩阵的伴随矩阵法,要求计算矩阵A 的行列式A 值和它的伴随矩阵*A .当A 的阶数较高时,它的计算量是很大的,因此用伴随矩阵法求逆矩阵是不方便的.下面介绍利用矩阵初等行变换求逆矩阵的方法.在介绍这种方法之前,先给出矩阵初等行变换的定义.) 定义2.13 矩阵的初等行变换是指对矩阵进行下列三种变换: (1) 将矩阵中某两行对换位置; (2) 将某一行遍乘一个非零常数k ; (3) 将矩阵的某一行遍乘一个常数k 加至另一行. 并称(1)为对换变换,称(2)为倍乘变换,称(3)为倍加变换. 矩阵A 经过初等行变换后变为B ,用 A →B 表示,并称矩阵B 与A 是等价的. (下面我们把)第i 行和第j , ”;把第i 行遍乘k k ”;第j 行的k 倍加至第i 为“ + k ”. 例如,矩阵 A = ????? ?????321321321c c c b b b a a a ???? ? ?????321 3 21321 c c c a a a b b b ???? ??????32 1 321321c c c b b b a a a ???? ? ?????32 1321321 kc kc kc b b b a a a ???? ? ?????32 1 321321 c c c b b b a a a ??? ? ? ??? ??+++32 1 332 2113 21 c c c ka b ka b ka b a a a (关于初等矩阵内容请大家自己阅读教材) 二、运用初等行变换求逆矩阵 由定理2.7的推论“任何非奇异矩阵均能经过初等行变换化为单位阵”可知,对于任意一个n 阶可逆矩阵A ,经过一系列的初等行变换可以化为单位阵I ,那么用一系列同样的初等行变换作用到单位阵I 上,就可以把I 化成A -1.因此,我们得到用初等行变换求逆矩阵的方法:在矩阵A 的右边写上一个同阶的单位矩阵I ,构成一个n ?2n 矩阵 ( A , I ),用初等行变换将左半部分的A 化成单位矩阵I ,与此同时,右半部分的I 就被化成了1-A .即 ( A , I )初等行变换 ?→???( I , A -1 ) 例1 设矩阵 A = ???? ? ?????--23 2 311111 ③k ①,② ②+①k

MATLAB教程2012a第3章习题解答 张志涌

第3章 数值阵列及其运算 习题3及解答 1 在MATLAB 中,先运行指令A=magic(3), B=[1,2,1;3,4,3;5,6,7]生成阵列33?A ,33?B ,然后根据运行结果回答以下问题: 〖目的〗 ● 体验矩阵乘法次序不可交换; ● 体验矩阵左除、右除的不同; ● 体验数组乘法次序可交换; ● 体验数组左除、右除的相同性; ● 体验矩阵乘法与数组乘法的根本性差别 ● 体验矩阵求逆的两种方法; ● 体验数组“逆”概念 〖解答〗 A=magic(3), B=[1,2,1;3,4,3;5,6,7] %创建阵列 A = 8 1 6 3 5 7 4 9 2 B = 1 2 1 3 4 3 5 6 7 (1) C1amb=A*B %相乘矩阵的次序不可交换 C1bma=B*A C1amb = 41 56 53 53 68 67 41 56 45 C1bma = 18 20 22 48 50 52 86 98 86 (2) C2adb=A\B %矩阵左除和右除根本不同 C2bda=B/A C2adb = 0.0333 0.1000 0.1611 0.5333 0.6000 0.7444 0.0333 0.1000 -0.1722 C2bda = 0.0056 0.0889 0.1722 0.1389 0.2222 0.3056

0.2333 0.7333 0.2333 (3) C3amb=A.*B %数组乘法不分左、右乘,因为是“元素对元素的运算”C3bma=B.*A C3amb = 8 2 6 9 20 21 20 54 14 C3bma = 8 2 6 9 20 21 20 54 14 (4) C4adb=A.\B %数组除法不分左、右除,因为是“元素对元素的运算”C4bda=B./A C4adb = 0.1250 2.0000 0.1667 1.0000 0.8000 0.4286 1.2500 0.6667 3.5000 C4bda = 0.1250 2.0000 0.1667 1.0000 0.8000 0.4286 1.2500 0.6667 3.5000 (5) C5ada=A\A %相当于inv(A)*A,所以得到“单位阵” C5adda=A.\A %相当于“数组逆”乘数组,得到“单位数组” C5ada = 1 0 0 0 1 0 0 0 1 C5adda = 1 1 1 1 1 1 1 1 1 (6) C6ade=A\eye(3) %矩阵求逆的代数方程法 C6inv=inv(A) %直接利用求逆指令。两者结果相同 C6ade = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 C6inv = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 (7) A C7add1=A.\1 %求“数组逆” C7ade=A\eye(3) %求“矩阵逆” A = 8 1 6 3 5 7 4 9 2 C7add1 = 0.1250 1.0000 0.1667 0.3333 0.2000 0.1429 0.2500 0.1111 0.5000

FORTRAN 90 程序编程规范

FORTRAN 90 程序编程规范 Fortran 90 编程规范,使程序代码高度组织化,更加易读、易懂、易于维护,程序更加高效。使编出的程序更易懂、易于维护。 1 语言选择 数值预报创新系统软件开发应避免使用Fortran77 的某些过时特征以Fortran 90不一致的特征。选择Fortran 90 作为开发语言,并采用Fortran 90 的新功能,如动态内存的分配(dynamic memory allocation)、递归(recursion ), 模块(modules)、POINTER 、长变量名、自由格式等。 Fortran 77其中某些只是一些冗余的功能,这些功能已经过时,另外,还有一些在Fortran90 中被证明是不好的用法,建议不要使用。 2 Fortran 90 的新特性 2.1.1 建议使用的Fortran 90 新特性 建议使用Fortran 90 提供的模块(module ),并用Use ONLY 指定module 中哪些变量或派生类型定义可用于调用程序。 尽量使用数组下标三元组,这样可优化并减少所需的代码行数。为提高可读性,要在括号内表明数组的维数,例如: 1dArrayA(:) = 1dArrayB(:) + 1dArrayC(:) 2dArray(: , :) = scalar * Another2dArray(: , :) 当访问数组的子集时,例如在有限差分等式中,可以通过使用下标三元组实现。例如:2dArray(: , 2:len2) = scalar *( & Another2dArray(:, 1:len2 -1) & - Another2dArray(:, 2:len2) & ) 对程序单元(program units )命名,并使用End program ,End subroutine ,End interface ,End module 等结构再次指定“program unit ”的名称。 在逻辑表达式中使用>、 >=、 ==、 <、 <=、 /=,它们分别代 替.gt.、.ge.、.eq.、.lt.、.le.、.ne. 。新的表示方法更接近标准的数学符号 在变量定义中始终使用“::”;始终用“DIMENSION ”定义数组形状;始终用(len=)的语法格式声明字符变量的长度。

矩阵求逆方法大全-1

求逆矩阵的若干方法和举例 苏红杏 广西民院计信学院00数本(二)班 [摘 要] 本文详细给出了求逆矩阵的若干方法并给出相应的例子,以供学习有关矩阵方面 的读者参考。 [关键词] 逆矩阵 初等矩阵 伴随矩阵 对角矩阵 矩阵分块 多项式等 引 言 在我们学习《高等代数》时,求一个矩阵的逆矩阵是一个令人十分头痛的问题。但是,在研究矩阵及在以后学习有关数学知识时,求逆矩阵又是一个必不可缺少的知识点。为此,我介绍下面几种求逆矩阵的方法,供大家参考。 定义: n 阶矩阵A 为可逆,如果存在n 阶矩阵B ,使得E BA AB ==,这里E 是n 阶单位矩阵,此时,B 就称为A 的逆矩阵,记为1-A ,即:1-=A B 方法 一. 初等变换法(加边法) 我们知道,n 阶矩阵A 为可逆的充分必要条件是它能表示成一系列初等矩阵的乘积A=m Q Q Q 21, 从而推出可逆矩阵可以经过一系列初等行变换化成单位矩阵。即,必有一系列初等矩阵 m Q Q Q 21使 E A Q Q Q m m =-11 (1) 则1-A =E A Q Q Q m m =-11 (2) 把A ,E 这两个n 阶矩阵凑在一起,做成一个n*2n 阶矩阵(A ,E ),按矩阵的分块乘法,(1)(2)可以合并写成 11Q Q Q m m -(A ,E )=(11Q Q Q m m -,A ,E Q Q Q m m 11 -)=(E ,1-A ) (3) 这样就可以求出矩阵A 的逆矩阵1-A 。 例 1 . 设A= ???? ? ??-012411210 求1-A 。 解:由(3)式初等行变换逐步得到: ????? ??-100012010411001210→ ????? ??-100012001210010411 →???? ? ??----123200124010112001→

fortran程序实例

1)实例3—求多个半径下的圆周长 ! z3.f90 --Fortran95 ! FUNCTIONS: ! z3 - Entry point of console application. !************************************************************************* ! PROGRAM: z3 ! PURPOSE: Entry point for the console application. !************************************************************************ program z3 ! 求多个半径下的圆周长 ! 主程序 ! PROGRAM Z3 PRINT *, 'R=',1.2,'C=',C(1.2) PRINT *, 'R=',3.4,'C=',C(3.4) PRINT *, 'R=',15.6,'C=',C(15.6) PRINT *, 'R=',567.3,'C=',C(567.3) END program z3 !子程序 FUNCTION C(R) PI=3.1415926 C=2*PI*R RETURN ! Body of z3 end

2)实例4—键盘与显示器输入/输出 a)Fortran 基本操作 b)程序指令 ! ZXZ_I_O.f90 ! FUNCTIONS: ! ZXZ_I_O - Entry point of console application. ! PROGRAM: ZXZ_I_O ! PURPOSE: Entry point for the console application. !***************输入、输出样式种种************************** program ZXZ_I_O implicit none !变量声明的位置 INTEGER(2) i; INTEGER(4) j; INTEGER(4) m; REAL n INTEGER A,B ! Variables PRINT*,'输入整数A'; READ*, A PRINT*,'输入整数B'; READ*, B B=A+B PRINT*,'B=A+B=',B WRITE(*,*) 'A*B=',A*B PRINT* ,'以上为计算机的计算结果,注意B的值'

矩阵及逆矩阵的求法

矩阵的可逆性与逆矩阵的求法 目录 摘要 (1) 第1章.矩阵 (2) 1.1矩阵的定义 (2) 1.2矩阵的运算 (2) 第2章.矩阵的可逆性及逆矩阵 (5) 2.1矩阵的基本概念 (5) 2.2矩阵可逆的判断方法 (6) 2.3矩阵可逆性的求法 (10) 第3章.逆矩阵的拓展 (17) 3.1广义逆矩阵的引入 (17) 3.2广义逆矩阵的定义及存在 (17) 第4章.总结 (21) 参考文献 (22) 致谢 (23) 附件:论文英文简介

矩阵的可逆性与逆矩阵的求法 [摘要]:矩阵理论是现代代数学的重要分支理论之一,它也为现代科技及现代经济理论研究提供不可或缺的数学支持。在线性代数研究中引入矩阵的目的之一就是为了研究线性方程组B AX 求解及更一般的矩阵方程求解提供数学工具,其中矩阵的可逆性及逆矩阵的求法是最主要的内容。本文从矩阵的基本概念及运算入手,主要探讨和归纳矩阵可逆性的四种判定方法和求逆矩阵的五种方法,并引进Matlab这一数学软件求逆矩阵的程序,同时关注广义逆矩阵意义及求法。 [关键词]:矩阵可逆性逆矩阵广义逆求法

矩阵可逆性的判断和可逆矩阵的求法是矩阵理论学习的重点与难点,也是研究矩阵性质及运算中必不可少的一部分。本文在分析和归纳判断矩阵的可逆性和逆矩阵的求法,给出了四种判断矩阵可逆的方法,其中有初等矩阵的应用,有行列式的应用,还有向量的线性无关和线性方程组的应用。逆矩阵的求法给出了五种方法:分别是行变换、列变换、伴随矩阵、分块矩阵法以及Matlab 软件的解法,同时也讨论了广义逆矩阵的求法。对矩阵可逆性的判断与逆矩阵的求法将会给矩阵的学习带来很大的帮助。 第1章 矩 阵 1.1矩阵的定义 定义1 由st 个数ij c 排成一个s 行t 列的表 ???? ?? ? ??st s s t t c c c c c c c c c 2 1 2222111211 叫作一个s 行t 列(或t s ?)矩阵,ij c 叫作这个矩阵的元素。 定义2 矩阵的行(列)初等变换指的是对一个矩阵施行的下列变换: )(i 交换矩阵的两行(列); )(ii 用一个不等于零的数乘矩阵的某一行(列),即用一个不等于零的数乘矩阵的某一行(列)的元素; )(iii 用某一数乘矩阵的某一行(列)后加到另一行(列),即用某一数乘矩阵的某一行(列)的每一元素后加到另一行(列)的对应元素上。 矩阵的初等变换在线性方程组求解,求矩阵的秩及求矩阵的逆矩阵方面都有重要的作用。 1.2矩阵运算 定义1 数域F 的数a 与F 上一个n m ?矩阵)(ij a A =的乘积aA 指的是n m ?矩阵 )(ij aa ,求数与矩阵的乘积的运算叫作数与矩阵的乘法。 定义2 两个n m ?矩阵)(),(ij ij b B a A ==的和B A +指的是n m ?矩阵)(ij ij b a +,求两

(完整版)逆矩阵的几种求法与解析(很全很经典)

逆矩阵的几种求法与解析 矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 1.利用定义求逆矩阵 定义: 设A 、B 都是n 阶方阵, 如果存在n 阶方阵B 使得AB= BA = E, 则称A 为可逆矩阵, 而称B 为A 的逆矩阵.下面举例说明这种方法的应用. 例1 求证: 如果方阵A 满足A k= 0, 那么EA 是可逆矩阵, 且 (E-A )1-= E + A + A 2+…+A 1-K 证明 因为E 与A 可以交换, 所以 (E- A )(E+A + A 2+…+ A 1-K )= E-A K , 因A K = 0 ,于是得 (E-A)(E+A+A 2+…+A 1-K )=E , 同理可得(E + A + A 2+…+A 1-K )(E-A)=E , 因此E-A 是可逆矩阵,且 (E-A)1-= E + A + A 2+…+A 1-K . 同理可以证明(E+ A)也可逆,且 (E+ A)1-= E -A + A 2+…+(-1)1-K A 1-K . 由此可知, 只要满足A K =0,就可以利用此题求出一类矩阵E ±A 的逆矩阵. 例2 设 A =? ? ?? ? ???? ???0000 30000020 0010,求 E-A 的逆矩阵. 分析 由于A 中有许多元素为零, 考虑A K 是否为零矩阵, 若为零矩阵, 则可以采用例2 的方法求E-A 的逆矩阵. 解 容易验证

A 2 =????????? ???0000000060000200, A 3=? ? ?? ? ? ? ?? ???00000000 00006000 , A 4=0 而 (E-A)(E+A+ A 2+ A 3)=E,所以 (E-A)1-= E+A+ A 2+ A 3= ? ? ?? ? ???????1000 31006210 6211. 2.初等变换法 求元素为具体数字的矩阵的逆矩阵,常用初等变换法.如果A 可逆,则A 可通过初等变换,化为单位矩阵I ,即存在初等矩阵S P P P ,,21Λ使 (1)s p p p Λ21A=I ,用A 1-右乘上式两端,得: (2) s p p p Λ21I= A 1- 比较(1)(2)两式,可以看到当A 通过初等变换化为单位矩阵的同时,对单位矩阵I 作同样的初等变换,就化为A 的逆矩阵A 1-. 用矩阵表示(A I )??? →?初等行变换 为(I A 1-),就是求逆矩阵的初等行变换法,它是实际应用中比较简单的一种方法.需要注意的是,在作初等变换时只允许作行初等变换.同样,只用列初等变换也可以求逆矩阵. 例1 求矩阵A 的逆矩阵.已知A=???? ? ?????521310132. 解 [A I]→??????????100521010310001132→???? ? ?????001132010310100521 → ??????????--3/16/16/1100010310100521→???? ??????-----3/16/16/110012/32/10103/46/136/1001

相关主题
文本预览
相关文档 最新文档