50Mathematica线性代数运算命令与例题

合集下载

Mathematica基本运算指令

Mathematica基本运算指令

Mathematica基本运算指令基本运算a+b+c 加a-b 减a b c 或 a*b*c 乘a/b 除-a 负号a^b 次方Mathematica 数字的形式256 整数2.56 实数11/35 分数2+6I 复数常用的数学常数Pi 圆周率,π=3.141592654…E 尤拉常数,e=2.71828182…Degree 角度转换弧度的常数,Pi/180I 虚数,其值为√-1Infinity 无限大指定之前计算结果的方法% 前一个运算结果%% 前二个运算结果%%…%(n个%) 前n个运算结果%n 或 Out[n] 前n个运算结果复数的运算指令a+bI 复数Conjugate[a+bI] 共轭复数Re[z], Im[z] 复数z的实数/虚数部分Abs[z] 复数z的大小或模数(Modulus)Arg[z] 复数z的幅角(Argument)Mathematica 输出的控制指令expr1; expr2; expr3 做数个运算,但只印出最后一个运算的结果expr1; expr2; expr3; 做数个运算,但都不印出结果expr; 做运算,但不印出结果常用数学函数Sin[x],Cos[x],Tan[x],Cot[x],Sec[x],Csc[x] 三角函数,其引数的单位为弧度Sinh[x],Cosh[x],Tanh[x],… 双曲函数ArcSin[x],ArcCos[x],ArcTan[x] 反三角函数ArcCot[x],ArcSec[x],ArcCsc[x]ArcS inh[x],ArcCosh[x],ArcTanh[x],…反双曲函数Sqrt[x] 根号Exp[x] 指数Log[x] 自然对数Log[a,x] 以a为底的对数Abs[x] 绝对值Round[x] 最接近x的整数Floor[x] 小于或等于x的最大整数Ceiling[x] 大于或等于x的最小整数Mod[a,b] a/b所得的馀数n! 阶乘Random[] 0至1之间的随机数(最新版本已经不用这个函数,改为使用RandomReal[])Max[a,b,c,...],Min[a,b,c,…] a,b,c,…的极大/极小值数值设定x=a 将变数x的值设为ax=y=b 将变数x和y的值均设为bx=. 或 Clear[x] 除去变数x所存的值变数使用的一些法则xy 中间没有空格,视为变数xyx y x乘上y3x 3乘上xx3 变数x3x^2y 为 x^2 y次方运算子比乘法的运算子有较高的处理顺序四个处理指令Expand[expr] 将 expr展开Factor[expr] 将 expr因式分解Simplify[expr] 将 expr化简成精简的式子FullSimplify[expr] Mathematica 会尝试更多的化简公式,将expr化成更精简的式子多项式/分式转换ExpandAll[expr] 把算式全部展开Together[expr] 将 expr各项通分在并成一项Apart[expr] 把分式拆开成数项分式的和Apart[expr,var] 视var以外的变数为常数,将 expr拆成数项的和Cancel[expr] 把分子和分母共同的因子消去分母/分子运算Denominator[expr] 取出expr的分母Numerator[expr] 取出expr的分子ExpandDenominator[expr] 展开expr的分母ExpandNumerator[expr] 展开expr的分子多项式转换函数Collect[expr,x] 将 expr表示成x的多项式,如Collect[expr,{x,y,…}] 将 expr分别表示成x,y,…的多项式FactorTerms[expr] 将 expr的数值因子提出,如 4x+2=2(2x+1)FactorTerms[expr,x] 将 expr中把所有不包含x项的因子提出FactorTerms[exp r,{x,y,…}] 将 expr中把所有不包含{x,y,...}项的因子提出函数和指数运算TrigExpand[expr] 将三角函数展开TrigFactor[expr] 将三角函数所组成的数学式因式分解TrigReduce[expr] 将相乘或次方的三角函数化成一次方的基本三角函数之组合ExpT oTrig[expr] 将指数函数化成三角函数或双曲函数TrigToExp[expr] 将三角函数或双曲函数化成指数函数复数、次方乘积ComplexExpand[expr] 假设所有的变数都是实数来对expr展开ComplexExpand[expr,{x,y,…}] 假设x,y,..等变数均为复数来对 expr展开PowerExpand[expr] 将项次、系数最高次方Coefficient[expr,form] 于 expr中form的系数Exponent[expr,form] 于 expr中form的最高次方Part[expr,n] 或 expr[[n]] 在 expr项中第n个项代换运算子expr/.x->value 将 expr里所有的x均代换成valueexpr/.{x->value1,y->value2,…} 执行数个不同变数的代换expr/.{{x->value1},{x->value2},…} 将 expr代入不同的x值expr//.{x->value1,y->value2,…} 重复代换到 expr不再改变为止求解方程式的根Solve[lhs==rhs,x] 解方程式lhs==rhs,求xNsolve[lhs==rhs,x] 解方程式lhs==rhs的数值解Solve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}] 解联立方程式,求x,y,…NSolve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}] 解联立方程式的数值解FindRoot[lhs==rhs,{x,x0}] 由初始点x0求lhs==rhs的根四种括号(term) 圆括号,括号内的term先计算f[x] 方括号,内放函数的引数{x,y,z} 大括号或串列括号,内放串列的元素p[[i ]] 或 Part[p,i] 双方括号,p的第i项元素p[[i,j]] 或 Part[p,i,j] p的第i项第j个元素缩短输出指令expr//Short 显示一行的计算结果Short[expr,n] 显示n行的计算结果Command; 执行command,但不列出结果查询物件Command 查询Command的语法及说明Command 查询Command的语法和属性及选择项Aaaa* 查询所有开头为Aaaa的物件定义之查询与清除f[x_]= expr 立即定义函数f[x]f[x_]:= expr 延迟定义函数f[x]f[x_,y_,…] 函数f有两个以上的引数f 查询函数f的定义Clear[f] 或 f=. 清除f的定义Remove[f] 将f自系统中清除掉含有预设值的Patterna_+b_. b的预设值为0,即若b从缺,则b以0代替x_ y_ y的预设值为1x_^y_ y的预设值为1条件式的自订函数lhs:=rhs/;condition 当condition成立时,lhs才会定义成rhs If指令If[test,then,else] 若test为真,则回应then,否则回应elseIf[test,then,else,unknow] 同上,若test无法判定真或假时,则回应unknow 极限Limit[expr,x->c] 当x趋近c时,求expr的极限Limit[expr,x->c,Direction->1]Limit[expr,x->c,Direction->-1]微分D[f,x] 函数f对x作微分D[f,x1,x2,…] 函数f对x1,x2,…作微分D[f,{x,n}] 函数f对x微分n次D[f,x,NonConstants->{y,z,…}] 函数f对x作微分,将y,z,…视为x的函数全微分Dt[f] 全微分dfDt[f,x] 全微分Dt[f,x1,x2,…] 全微分Dt[f,x,Constants->{c1,c2,…}] 全微分,视c1,c2,…为常数不定积分Integrate[f,x] 不定积分∫f dx定积分Integrate[f,{x,xmin,xmax}] 定积分Integrate[f,{x,xmin,xmax},{y,ymin,ymax}] 定积分数列之和与积Sum[f,{i,imin,imax}] 求和Sum[f,{i,imin,imax,di}] 求数列和,引数i以di递增Sum[f,{i,imin,imax},{j,jmin,jmax}]Product[f,{i,imin,imax}] 求积Product[f,{i,imin,imax,di}] 求数列之积,引数i以di递增Product[f,{i,imin,imax},{j,jmin,jmax}]泰勒展开式Series[expr,{x,x0,n}] 对expr于x0点作泰勒级数展开至(x-x0)n 项Series[expr,{x,x0,m},{y,y0,n}] 对x0和y0展开关系运算子a==b 等于a>b 大于a>=b 大于等于aa<=b 小于等于a!=b 不等于逻辑运算子!p notp||q||… orp&&q&&… andXor[p,q,…] exclusive orLogicalExpand[expr] 将逻辑表示式展开二维绘图指令Plot[f,{x,xmin,xmax}]画出f在xmin到xmax之间的图形Plot[{f1,f2,…},{x,xmin,xmax}]同时画出数个函数图形Plot[f,{x,xmin,xmax},option->value]指定特殊的绘图选项,画出函数f的图形Plot几种指令选项预设值说明AspectRatio 1/GoldenRatio 图形高和宽之比例,高/宽Axes True 是否把坐标轴画出AxesLabel Automatic 为坐标轴贴上标记,若设定为AxesLabel->{?ylabel?},则为y轴之标记。

整理mathematica数学常用命令大全

整理mathematica数学常用命令大全

整理mathematica数学常⽤命令⼤全Mathematica的内部常数Mathematica的常⽤内部数学函数Mathematica中的数学运算符Mathematica的关系运算符注:上⾯的关系运算符也可从基本输⼊⼯具栏输⼊。

如何⽤mathematica求多项式的最⼤公因式和最⼩公倍式如何⽤mathematica求整数的最⼤公约数和最⼩公倍数如何⽤mathematica进⾏整数的质因数分解如何⽤mathematica求整数的正约数如何⽤mathematica判断⼀个整数是否为质数如何⽤mathematica求第n个质数如何⽤mathematica求阶乘如何⽤mathematica配⽅Mathematica没有提供专门的配⽅命令,但是我们可以⾮常轻松地⾃定义⼀个函数进⾏配⽅。

如何⽤mathematica进⾏多项式运算如何⽤mathematica进⾏分式运算如何⽤Mathematica进⾏因式分解如何⽤Mathematica展开如何⽤Mathematica进⾏化简如何⽤Mathematica合并同类项如何⽤Mathematica进⾏数学式的转换如何⽤Mathematica进⾏变量替换如何⽤mathematica进⾏复数运算如何在mathematica中表⽰集合与数学中表⽰集合的⽅法相同,格式如下:下列命令可以⽣成特殊的集合:如何⽤Mathematica求集合的交集、并集、差集和补集如何mathematica⽤排序如何在Mathematica中解⽅程注:⽅程的等号必须⽤:= =如何在Mathematica中解⽅程组Solve[{⽅程组},{变元组}]注:⽅程的等号必须⽤:= =如何在Mathematica中解不等式先加载:Algebra`InequalitySolve` ,加载⽅法为:<然后执⾏解不等式的命令InequalitySolve,此命令的使⽤格式如下:<--mstheme-->如何在Mathematica中解不等式组先加载:Algebra`InequalitySolve` ,加载⽅法为:<然后执⾏解不等式组的命令InequalitySolve,此命令的使⽤格式如下:<--mstheme-->如何在Mathematica中解不等式组先加载:Algebra`InequalitySolve` ,加载⽅法为:<<--mstheme-->如何⽤mathematica表⽰分段函数如何⽤mathematica求反函数对系统内部的函数⽣效,但对⾃定义的函数不起任何作⽤,也许是⽅法不对。

Mathematica中初等代数与线性代数使用

Mathematica中初等代数与线性代数使用


U[[i,j]]

矩阵U的第i行、第j列元素
U[[i]]、U[[i,All]


U的第i行n个元素
U的第j列元素 由行{i1,i2,…ip}和列{j1,j2,…jq}组成的子矩阵
U[[All,j]]


U[[{i1,i2,…ip]},{j1,j2,…jq}]]

U[[Range[{i0,i1}],[Range[{j0,j1}]]

A的全部(准确解、数值解)的特征向量

Eigensystem[A] Eigensystem[N[A]]

A的所有(准确解、数值解)的特征值和特征向量
06年建模B题
z = Import["f:\\z1.txt", "Table"]; s0 = s1 = s2 = s3 = s4 = 0; n0 = n1 = n2 = n3 = n4 = 0; For[i = 1, i <= Length[z], i++, If[z[[i, 2]] == 0 || z[[i, 2]] == 1, s0 = s0 + z[[i, 3]]; n0++]; If[z[[i, 2]] >= 2 && z[[i, 2]] <= 6, s1 = s1 + z[[i, 3]]; n1++]; If[z[[i, 2]] >= 7 && z[[i, 2]] <= 13, s2 = s2 + z[[i, 3]]; n2++]; If[z[[i, 2]] >= 14 && z[[i, 2]] <= 32, s3 = s3 + z[[i, 3]]; n3++]; If[z[[i, 2]] >= 33 && z[[i, 2]] <= 45, s4 = s4 + z[[i, 3]]; n4++]; ] t = {{0, s0*1./n0}, {4, s1*1./n1}, {8, s2/n2}, {24, s3/n3}, {40, s4/n4}}

Mathematica教程用Mathematica求解线性代数基本问题

Mathematica教程用Mathematica求解线性代数基本问题

Module[{x,y,...},body] Module[{x=x0,y=y0,…},body] lhs:=Module[vars,rhs/:cond] Block[{x,y,... },body] Block[{x=x0,y=y0,…},bddy]
具有局部变量x,y… 的模块
具有初始值的局部变 量的模块 rhs和cond共享局部 变量 运用局部值x,y, …计 算body 给x,y,..赋初始值
Do循环结构
Do[expr,{i,imax}] 循环计算expr,以步长1,i从 1增加到imax
循环计算expr,以步长di,i Do[expr,{i,imin,imax,di}] 从imin增加到imax Do[expr,{n}] 循环计算expr n次



键入
t0={{1,2,3},{4,5,6}}
则得到一个名为t0的2行3列的矩阵。
• 2、也可利用工具栏或菜单输入矩阵 • 点击工具栏上的矩阵输入的工具,就会得到一个 二行二列的矩阵输入框,若不是二行二列的矩阵, 可通过按Ctrl+Enter键增加一行,按Ctrl+,键增加 一列,用鼠标选定一行(或一列),按Del键可删 除一行(或一列)。通过这样的操作,就可输入任 意一个矩阵。下面的图演示了这个过程。
Out[5]=True
ln[6]:=TrueQ[x==y]
Out[6]=false
用“===”可直接测试两个表达式的等同性:
In[7]:=x===y
Out[7]:=False
一般情况下,“===”返回值为真(True)或假(False), 而“==”为符号形式输出,表示一个符号等式。 在 特殊情况下可用“===”测试一个表达式的 结构,而用“==”测试数学上的等同性。

Mathematica微积分运算命令与例题

Mathematica微积分运算命令与例题

第四章微积分运算命令与例题极限、导数和积分是高等数学中的主要概念和运算,如果你在科研中遇到较复杂的求极限、求导数或求积分问题,Mathematica 可以帮你快速解决这些问题。

Mathematica 提供了方便的命令使这些运算能在计算机上实现,使一些难题迎刃而解。

4.1 求极限运算极限的概念是整个高等数学的基础,对表达式进行极限分析也是数学里很重要的计算分析。

Mathematica 提供了计算函数极限的命令的一般形式为:Limit[函数, 极限过程]具体命令形式为命令形式1:Limit[f, x->x0]功能:计算()x f lim 0x x → , 其中f 是x 的函数。

命令形式2:Limit[f, x->x0, Direction->1]功能:计算()x f lim 0-x x →,即求左极限, 其中f 是x 的函数。

命令形式3:Limit[f, x->x0, Direction->-1]功能:计算()x f lim 0x x +→,即求右极限,其中f 是x 的函数。

注意:在左右极限不相等或左右极限有一个不存在时,Mathematica 的默认状态为求右极限。

例题:例1. 求极限())11ln 1(lim 221--→x x x x 解:Mathematica 命令为In[1]:=Limit[1/(x Log[x]^2)-1/(x-1)^2, x->1]Out[1]=121 此极限的计算较难,用Mathematica 很容易得结果。

例2. 求极限nn n ⎪⎭⎫ ⎝⎛+∞→11lim 解:Mathematica 命令为In[2]:=Limit[(1+1/n)^n, n->Infinity]Out[2]=E例3 写出求函数xe 1在x->0的三个极限命令解:Mathematica 命令为1.Limit[Exp[1/x], x->0]2.Limit[Exp[1/x], x->0, Direction->1]3.Limit[Exp[1/x], x->0, Direction->-1]读者可以比较其结果,观察区别。

用Mathematica做线性代数Ⅱ线性代数高级运算

用Mathematica做线性代数Ⅱ线性代数高级运算

万方数据
-7 - 1
科 技 论 坛
中国 科技信息20 年第2 期 05 3
EH O O 丫 WO MA IN . 5 e 0 CI SI C AND TC N L G ! R TO Dc20 H A E E N CN
E P发展的昨天、今天和明天 R
刘蕾 东北财经大学
1 EP 展的昨 天 、R发
了1 一

刁 5 12 0 0
, 一18 5 一6 ,. 一9 0 0 1 {9 。 {3 )?
20
注2利用这里的算法不难设计利用正交变 : 换 化二次性为标准型的算法。
四 、总 结

we
、 、

作为一个高校的教育工作者,笔者常常在思 考,在科技高速发展,经济生活极为活跃,高 等教育发展及其迅猛的时代,我们应该如何施行 ( 下转 第 81页)
+ 2 x= 0 + 2 x= 0
=0
2 、求向量组的秩及其极大无关组
例如, 量组a (,,,, ,a 求向 1 11 21 = 2 )’ 2 = (,,,,1 , 3 (,,, 13 , 4 (,, 021 一 )‘a 203一 , 5 = )’a =11 0 ,1 的 , -)’ 一个极 4 大无关组 第一步 输人, 按行输人后再转置 A { ,2 , , , , -}2 , - , , , , 1 { 21 ,1 {0 ,1 1 1 ={ 1 2 10 ,5 , , 3 3 { 1, 1 ,,1 ; r so [] , 4一 1 A Ta psA 0 1 n e = 第二步 利用行初等变换。
摘 要:本文探讨了用Mtmta 性代数解题的算法,主要给出了 a eac于线 h i 利用Mt mta a eac进行矩阵初等变 h i 换的算法在求矩阵和向量组的枚,解线性方程组以 及求解矩阵特征值和特征向量中的应用, 进而彰显解题过程, 有利于提高学生的学习兴趣。 关键词: ahm t a M te ai ;算法;学习兴趣。 c 《 线性代数》是工科院校一门必修课,其重 要性从近几年来它在考研中所占的比重而不言而 喻。在 《 线性代数》的学习中,学生往往认为 线性代数概念太抽象,而相应的算法又显得太繁 琐。即使是对概念和算法有了比较清楚的认识, 但是一旦动手做题时就会出 现计算错误, 导致信 心不足,从而影响下面的学习,伤害学生的学习 积极性。作者认为, 可以利用Ma e ai 软 t m ta h c 件包,将学生从繁琐的数字运算中解脱出来,而 将注意力集中在基本概念和基本算法的学习上, 从而增加学习兴趣, 激发学习热情, 进而引导学 显然, 此矩阵的秩为3 。根据矩阵的秩等于 矩阵行向量组的秩,也等于矩阵列向量组的秩, 所以原向量组 ( 列向量组)的秩为3 。那么, 其极大无关组应该由3 个向量组成。此3 个向量 的选取方法为: 在这个阶梯形矩阵的每个平台上

Mathematica编程语句与例题

Mathematica编程语句与例题

的Mathematica自定义函数形式,并画出其在[0,60]上的图形。 解: 因此Mathematica 命令为:
In[17]:=f[x_]:= Which[x<=0,0,x<=10,10+2x,x<=20,30,x<=40,30-(x-20)/2, x<=50,20,x<=60,20-(x-50)*2,x>60,0 ] In[18]:= Plot[f[x],{x,0,60}]
在Mathematica中使用局部变量很简单, 只要把涉及到的局部变量用 大括弧{ }括起来, 放在Module模块命令的{变量表}位置, 并把相 应的语句写成语句序列放在Module模块命令的表达式位置即可。 例如: Mathematica中有如下命令 In[7]:=s=Sin[x]; In[8]:=u= Cos[x]; In[9]:=D[s*u, x] Out[9]= Cos[x]2-Sin[x]2
例3 定义一个函数描述下面问题:任给一个函数y(x),如果y(x)
的一阶导数为零,则输出符号###,否则,输出y (x)+ 5
解: Mathematica 命令为: In[5]:=f[y_,x_]:=Module[{s},s=D[y,x];If[s==0,Return["###"]]; s =s+5;Return[s]] In[6]:= f[3,x] Out[6]= ### In[7]:= f[Tan[x],x] Out[7]=5 + Sec2[x]
在Mathematica的循环结构中,使用如下表示式,可以达到简洁,快速的目的. k++ 表示赋值关系 k = k+1 , ++k 表示先处理k的值,再做赋值 k=k+1 k-表示赋值关系 k = k-1 --k 表示先处理k的值,再做赋值 k=k-1 {x,y}={y,x} 表示交换x与y 值 x+=k 表示 x = x + k x*=k 表示 x = x * k

数学实验一用Mathematica进行行列式的运算

数学实验一用Mathematica进行行列式的运算

数学实验一:用Mathematica 进行行列式的运算实例1(P 16)【例1.6】计算行列式2121989910220111241112---=D 输入:A={{2,1,1,1},{4,2,1,-1},{201,102,-99,98},{1,2,1,-2}}; Det[A] 输出:-1800以上操作及计算结果在计算机显示屏上的显示内容见图1-3.图 1-3实例2(P 37)【例1.8】 计算n 阶行列式121212nn n n x m x x x x m x D x x x m--=-.输入:D1=x1-mC2={{x1-m,x2},{x1,x2-m}}; D2=Det[C2]C3={{x1-m,x2,x3},{x1,x2-m,x3},{x1,x2,x3-m}}; D3=Det[C3]C4={{x1-m,x2,x3,x4},{x1,x2-m,x3,x4},{x1,x2,x3-m,x4},{x1,x2,x3,x4-m}};D4=Det[C4] 输出:-m+x1m 2-mx1-mx2-m 3+m 2x1+m 2x2+m 2x3m 4-m 3x1-m 3x2-m 3x3-m 3x4以上操作及计算结果在计算机显示屏上的显示内容见图1- 4.图 1-4通过观察1、2、3、4阶行列式的输出表达式,总结规律得出n 阶行列式的值为(-1)n -1(∑=mi i x 1-m )注:1. 在数学实验一至七的各实例中出现的命令,其具体含义详见第九章.2. 输入完成后,要同时按“Shift + Enter”键才能有输出内容.数学实验二:用Mathematica 进行矩阵的运算实例1 (P35)【例2.4】设矩阵111320101320-⎡⎤⎡⎤⎢⎥==⎢⎥⎢⎥--⎣⎦⎢⎥-⎣⎦A B 计算AB 与BA 输入:A={{1,3,2},{0,-1,-3}}; B={{1,-1},{0,1},{-2,0}}; C1=A.B ;MatrixForm[C1] C2=B.A ; MatrixForm[C2] 输出:⎪⎪⎭⎫ ⎝⎛--1623 ⎪⎪⎪⎭⎫ ⎝⎛-----462310541以上操作及计算结果在计算机显示屏上的显示内容见图2-3.图 2-3实例2 (P34)【例2.3】已知矩阵123103214032A -⎡⎤⎢⎥=-⎢⎥⎢⎥⎣⎦,432153011250B -⎡⎤⎢⎥=-⎢⎥⎢⎥-⎣⎦求3A-2B 输入:A={{-1,2,3,1},{0,3,-2,1},{4,0,3,2}}; B={{4,3,2,-1},{ 5,-3,0,1},{1,2,-5,0}}; C1=3A-2B;MatrixForm[C1] 输出:⎪⎪⎪⎭⎫ ⎝⎛----61941016151055011 以上操作及计算结果在计算机显示屏上的显示内容见图2-4.图 2-4实例3 (P44)【例2.9】设矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=343122321A ,求其逆矩阵A -1. 输入:A={{1,2,3},{2,2,1},{3,4,3}}; Inverse[A]//MatrixForm输出:13235322111-⎡⎤⎢⎥⎢⎥--⎢⎥⎢⎥-⎣⎦ 以上操作及计算结果在计算机显示屏上的显示内容见图2-5图 2-5实例4 (P52)【例2.12】 求下列矩阵A 的秩.12104246251294732721--⎡⎤⎢⎥⎢⎥=⎢⎥-⎢⎥⎣⎦A 输入:A={{1,-2,1,0,-4},{2,4,6,2,5},{-1,2,9,4,7},{3,2,7,2,1}};5 –Length [ NullSpace[A] ] (注:“5”是矩阵A 的列数) 输出:3以上操作及计算结果在计算机显示屏上的显示内容见图2-6图 2-6实例5 (P40)【习题2-1-4】计算矩阵的幂71101⎡⎤⎢⎥⎣⎦输入:A={{1,1},{0,1}}; B=MatrixPower[A ,7]MatrixForm[B] 输出:{{1,7},{0,1}}⎪⎪⎭⎫ ⎝⎛1071 以上操作及计算结果在计算机显示屏上的显示内容见图2-7图 2-7数学实验三:用Mathematica 求向量组的最大无关组实例1(P 96)【例3.11】 求向量组α1=(1,-1,2,3)T ,α2=(0,2,5,8)T ,α3=(2,2,0,-1)T ,α4=(-1,7,-1,-2)T 的秩及一个最大无关组,并把不属于最大无关组的列向量用最大无关组线性表示.输入:A={{1,0,2,-1},{-1,2,2,7},{2,5,0,-1},{3,8,-1,-2}}; MatrixForm[RowReduce[A]] 输出:⎪⎪⎪⎪⎪⎭⎫⎝⎛-0000110010103001 以上操作及计算结果在计算机显示屏上的显示内容见图3-13.图 3-13已知向量组的秩为3,a 1,a 2,a 3是已知向量组的一个最大无关组,且a 4= -3a 1+a 2+a 3数学实验四:用Mathematica 求解下列问题实例1(P 111)【例4.2】在R 3中,将基α1121⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦,α2131-⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,α3410⎡⎤⎢⎥=-⎢⎥⎢⎥⎣⎦化成标准正交基.输入:a1={1,2,-1};a2={-1,3,1}; a3={4,-1,0}; b1=a1; b2=a2-(a2.b1/b1.b1)*b1;b3=a3-(a3.b1/b1.b1)*b1-(a3.b2/b2.b2)*b2;}3c ,2c ,1c {;3b *)3b .3b /1(3c ;2b *)2b .2b /1(2c ;1b *)1b .1b /1(1c ===输出:}}21,0,21{},31,31,31{},61,32,61{{-- 以上操作及计算结果在计算机显示屏上的显示内容见图4-26.图 4-26实例2 (P 125)【例4.17】方程组⎪⎩⎪⎨⎧⎪⎭⎫ ⎝⎛=+⎪⎭⎫ ⎝⎛---=22222222a y a x y x a z 表示怎样的曲线?以a 取1为例,先写出已知曲线的参数方程如下:⎪⎪⎪⎩⎪⎪⎪⎨⎧+-==+=2112221t cos x intS y Cost x 输入:ParametricPlot3D[{(1+Cos[t])/2,Sin[t]/2,2]t [Cos 1-},{t,0,2Pi}] 输出:以上操作及计算结果在计算机显示屏上的显示内容见图4-27.图4-27数学实验五:用Mathematica 求解线性方程组实例1 (P149)【例5.6】 求方程组123123412430263202640x x x x x x x x x x ++=⎧⎪++-=⎨⎪---=⎩ 的基础解系与通解.输入:M={{1,3,1,0},{2,6,3,-2},{-2,-6,0,-4}}; NullSpace[m] 输出:{{-2,0,2,1},{-3,1,0,0}}以上操作及计算结果在计算机显示屏上的显示内容见图5-1图 5-1一个基础解系: ξ1={-2,0,2,1}T , ξ2={-3,1,0,0}T , 原方程的通解为:x=k 1ξ1+k 2ξ2 , k 1, k 2为任意常数.实例2 (P150)【例5.7】【例5.7】求非齐次线性方程组的通解:1234123123412342439262272411x x x x x x x x x x x x x x x +-+=⎧⎪++=⎪⎨++-=⎪⎪+++=⎩ 输入:A={{2,4,-1,3},{1,2,1,0},{1,2,2,-1},{2,4,1,1}}; b={9,6,7,11};u=NullSpace[A]v=LinearSolve[A,b]输出:{{-1,0,1,1},{-2,1,0,0}}{5,0,1,0}以上操作及计算结果在计算机显示屏上的显示内容见图5-2图 5-2原方程组的通解为:x=k{-1,0,1,1}T+k2{-2,1,0,0}T+{5,0,1,0}T,其中 k1,k2为任1意常数.数学实验六:用Mathematica进行特征值的运算实例1 (P167)【例6.3】求矩阵211020413A-⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦的特征值和特征向量输入:A={{-2,1,1},{0,2,0},{-4,1,3}};Eigenvalues[A]Eigenvectors[A]输出:{-1,2,2}{{1,0,1},{1,0,4},{1,4,0}}以上操作及计算结果在计算机显示屏上的显示内容见图6-1图 6-1从输出的结果可以看出,矩阵有三个特征值:-1、2、2,对应有三个特征向量{1,0,1},{1,0,4},{1,4,0}.实例2 (P177)【例6.9】设A=400031013⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦, 求一个正交矩阵P,使1-P AP=Λ为对角阵输入:A={{4,0,0},{0,3,1},{0,1,3}}; B=Eigenvalues[A]c=Eigenvectors[A]]]3[[c ]]2[[c ]].2[[c /]]2[[c ]]1[[c ]].1[[c /]]1[[c 输出:{2,4,4} {{0,-1,1},{0,1,1},{1,0,0}}}0,0,1{}21,21,0{}21,21,0{-以上操作及计算结果在计算机显示屏上的显示内容见图6-2.图 6-2由上面的输出结果,正交矩阵P可取为: ⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛-=0212102121100P 相对应的Λ为:⎪⎪⎪⎭⎫ ⎝⎛=Λ400040002数学实验七:用Mathematica 进行二次型的运算实例1 (P196)【例7.4】用正交变换法将二次型f =323121232221444x x x x x x x x x +++++化成标准形,并求正交变换矩阵.输入:A={{1,2,2},{2,1,2},{2,2,1}}; B=Eigenvalues[A] c= Eigenvectors[A];]]3[[c ]].3[[c /]]3[[c 1c .1c /1c ]];1[[c *]])1[[c ]].1[[c /]]1[[c ]].2[[c (]]2[[c 1c ]]1[[c ]].1[[c /]]1[[c -= 输出:{-1,-1,5}}31,31,31{}61,32,61{}21,0,21{---以上操作及计算结果在计算机显示屏上的显示内容见图7-1图 7-1由上面的输出结果,正交变换矩阵P可取为:⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛---=31612131320316121P ,相对应的Λ为: ⎪⎪⎪⎭⎫⎝⎛--=500010001Λ作正交变换x =Py ,则2322215500010001y y y y y y )AP P (y Ax x f T T T T +--=⎪⎪⎪⎭⎫⎝⎛--===成为标准形.实例2 (P205)【例7.7】判定二次型xz xy z y x f 44465222++---=的正定性. 输入:A={{-5,2,2},{2,-6,0},{2,0,-4}};Eigenvalues[A] a11=-5Det[{{-5,2}{2,-6}}]Det[A] 输出:{-8,-5,-2} -5 26 -80以上操作及计算结果在计算机显示屏上的显示内容见图7-2图 7-2因为奇数阶顺序主子式为负,而偶数阶顺序主子式为正,所以已知二次型为负定二次型.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

50Mathematica线性代数运算命令与例题第五章 线性代数运算命令与例题线性代数中常用的工具是矩阵(向量)和行列式。

用这些工具可以表示工程技术,经济工作中一些需要用若干个数量从整体上反映其数量关系的问题。

用这些工具可以简明凝练而准确地把所要研究的问题描述出来,以提高研究的效率。

在线性代数课程中我们看到了用这些工具研究齐次和非齐次线性方程组解的理论和解的结构,矩阵的对角化,二次型化标准形等问题的有力,便捷.5.1向量与矩阵的定义数学上矩阵是这样定义的:由n m ⨯个数排成m 行n 列的数表mnm m n n a a a a a a a a a ΛM M M ΛΛ212222111211称为m 行n 列矩阵,特别,当m=1时就是线性代数中的向量。

记作:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=mn m m n n a a a a a a a a a A ΛM M M ΛΛ212222111211两个n m ⨯矩阵称为同型矩阵。

线性代数中的运算对象是向量和矩阵,因此首先介绍向量和矩阵的输入。

5.1.1输入一个矩阵命令形式1:Table[f[i,j],{i ,m},{j ,n}] 功能: 输入n m ⨯矩阵,其中f 是关于i 和j 的函数,给出[i , j]项的值.命令形式2:直接用表的形式来输入功能:用于矩阵元素表达式规律不易找到的矩阵的输入。

注意:1.Mathematica 是采用一个二重表的形式来表示矩阵的,即用{{…},{…},…,{…}} 其中表中的每个表元素都是等长的一维表,第一个表元素是矩阵的第一行,第二个表元素是矩阵的第二行,一般,第n 个表元素是矩阵的第n行。

要看通常的矩阵形式可以用命令:MatrixForm[%]2. 对应上述命令形式,输入一个向量的命令为 Table[f[j],{j,n}]或直接输入一个一维表{a1,a2,…,an},这里a1,a2,…,an 是数或字母。

例题例 1.输入矩阵A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---4138163912145856120312、向量b={1,4,7,-3}。

解:Mathematica 命令In[1]:= a={{12,-3,0,2,1},{56,-8,-45,21,91},{3,6,81,13,4}}Out[1]:= {{12,-3,0,2,1},{56,-8,-45,21,91},{3,6,81,13,4}} In[2]:=b={1, 4, 7, -3} Out[2]:= {1, 4, 7, -3}例2. 输入一个35⨯矩阵[][][][][][][][][][][][][][][]⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡8Sin7Sin6Sin7Sin6Sin5Sin6Sin5Sin4Sin5Sin4Sin3Sin4Sin3Sin2Sin解:Mathematica命令In[3]:=Table[Sin[i+j],{i,5},{j,3}]Out[3]:={{Sin[2],Sin[3],Sin[4]},{Sin[3],Sin[4],Sin[5]},{Sin[4],Sin[5],Sin[6]},{Sin[5],Sin[6],Sin[7]},{Sin[6],Sin[7],Sin[8]}}In[4]:=MatrixForm[%]Out[4]:=Sin[2] Sin[3] Sin[4]Sin[3] Sin[4] Sin[5]Sin[4] Sin[5] Sin[6]Sin[5] Sin[6] Sin[7]Sin[6] Sin[7] Sin[8]5.1.2 几个特殊矩阵的输入1. 生成0矩阵命令形式: Table[0,{m},{n}]功能:产生一个nm⨯的0矩阵2. 生成随机数矩阵命令形式: Table[Random[ ],{m},{n}]功能: 产生一个nm⨯的随机数矩阵3.生成上三角矩阵命令形式: Table[If[i<=j,a,0],{i,m},{j,n}] 功能: 产生一个非0元全为数a的上三角矩阵4.生成下三角矩阵命令形式: Table[If[i>=j,a,0],{i,m},{j,n}]功能: 产生一个非0元全为数a的nm⨯下三角矩阵5.生成三对角矩阵命令形式: Table[Switch[i-j,-1,a[[i]],0,b[[i]],1,c[[i-1]],-,0],{i,m},{j,n}]功能: 产生一个nm⨯的三对角矩阵6.生成对角矩阵命令形式:DiagonalMatrix[list]功能:使用列表中的元素生成一个对角矩阵.7.生成单位矩阵命令形式:IdentityMatrix[n]功能:生成n阶单位阵例题例3. 构造34 的0矩阵。

解: Mathematica命令In[5]:=Table[0,{4},{3}]Out[5]:= {{0,0,0},{0,0,0},{0,0,0},{0,0,0}}In[6]:= MatrixForm[%]Out[6]:=0 0 00 0 00 0 00 0 0例4. 构造一个52⨯的随机数矩阵。

解: Mathematica命令In[7]:=Table[Random[ ],{2},{5}]Out[7]:={{0.46223,0.545335,0.423938,0.635765,0.792571},{0.802126,0.372146,0.114424,0660867,0.0163719}}例5. 构造非0元全为2的4⨯5上三角矩阵。

解:Mathematica命令In[8]:=Table[If[i<=j,2,0],{i,4},{j,5}] Out[8]={{2,2,2,2,2},{0,2,2,2,2},{0,0,2,2,2},{0,0,0,2,2}}In[9]:=MatrixForm[%]Out[9]=2 2 2 2 20 2 2 2 20 0 2 2 20 0 0 2 2例6. 构造非0元全为1的4⨯4下三角方阵。

解:Mathematica 命令In[10]:=Table[If[i>=j ,1,0],{i ,4},{j ,4}] Out[10]={{1,0,0,0},{1,1,0,0},{1,1,1,0},{1,1,1,1}} In[11]:=MatrixForm[%] Out[11]=1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1例7. 生成三对角矩阵⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡b c a b c a b c a b c a b c a b 00000000000000000000。

解:Mathematica 命令In[12]:=Table[Switch[i-j ,-1,a ,0,b ,1,c ,_,0],{i ,6},{j ,6}]Out[12]={{b ,a ,0,0,0,0},{c ,b ,a ,0,0,0},{0,c ,b ,a ,0,0},{0,0,c ,b ,a ,0},{0,0,0,c ,b ,a},{0,0,0,0,c ,b}}例8. 生成对角矩阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡d c b a 。

解:Mathematica 命令In[13]:=DiagonalMatrix[{a ,b ,c ,d}]Out[13]={{a ,0,0,0},{0,b ,0,0},{0,0,c ,0}, {0,0,0,d}}例9.生成5阶单位矩阵。

解:Mathematica 命令 In[14]:=a=IdentityMatrix[5]Out[14]={{1,0,0,0,0},{0,1,0,0,0},{0,0,1,0 0},{0,0,0,1,0},{0,0,0,0,1} } In[15]:=MatrixForm[%] Out[15]=1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 00 0 0 0 15.2向量与矩阵的运算5.2.1基本运算运算功能命令形式矩阵加法和减法将两个同型矩阵相加(减)A B数乘将数与矩阵做乘法kA其中k是一个数,A是一个矩阵矩阵的乘法将两个矩阵进行矩阵相乘A.B其中乘号"."使用键盘上的小数点矩阵的求逆求方阵的逆Inverse[A]A必须为方阵矩阵的转置求矩阵的转置Transpose[A]A可以是任意矩阵向量的数量积(点积) 求同维向量的数量积 v1.v2 其中乘号"."使用键盘上的小数点例题 例10. 计算⎥⎦⎤⎢⎣⎡---+⎥⎦⎤⎢⎣⎡--761232193731解:Mathematica 命令In[16]:= {{1,3,7},{-3,9,-1}}+{{2,3,-2},{-1,6,-7}}Out[16]={{3, 6, 5},{-4, 15, -8}}例11. 计算⎥⎦⎤⎢⎣⎡1533215。

解:Mathematica 命令In[17]:=5{{1,2,3},{3,5,1}}Out[17]={{5, 10, 15}, {15, 25, 5}}例12. 求向量{}c b,a,与{}g f,e,的点积。

解:Mathematica 命令In[18]:= {a , b , c}.{e , f , g} Out[18]= a e + b f + c g例13. 求向量{a ,b ,c}与矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡654321的乘积。

解:Mathematica 命令In[19]:= {a , b , c}.{{1, 2},{3, 4},{5, 6}} Out[19]={a + 3 b + 5 c , 2 a + 4 b + 6 c}例14. 求矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡654321与向量{a ,b}的乘积。

解:Mathematica 命令In[20]:={{1,2},{3,4},{5,6}}.{a , b} Out[20]:={a + 2 b , 3 a + 4 b , 5 a + 6 b}注:Mathematica 中不区分行向量和列向量,而是尽可能给出结果。

例15:求矩阵⎥⎦⎤⎢⎣⎡--112031与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--104212100131的乘积。

解:Mathematica 命令In[21]:= a={{1,3,0},{-2,-1,1}}In[22]:=b={{1,3,-1,0},{0,-1,2,1},{2,4,0,1}}In[23]:=a.bOut[23]:={{1, 0, 5, 3}, {0, -1, 0, 0}}例16. 求矩阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---6201111121324321的逆。

解:Mathematica 命令In[24]:=A={{1,2,3,4},{2,3,1,2},{1,1,1,-1},{1,0,-2,-6}}Out[24]={{1,2,3,4},{2,3,1,2},{1,1,1,-1},{1,0,-2,-6}} In[25]:=Inverse[A]Out[25]={{22,-6,-26,17},{-17,5,20,-13},{-1,0,2,-1},{4,-1,-5,3}}例17. 求矩阵⎥⎦⎤⎢⎣⎡d cb a的逆。

相关文档
最新文档