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求解线性代数基本问题
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编程语句与例题8.1全局变量、局部变量、过程8.1.1全局变量我们知道, 变量是在命令或程序执行中其值可以发生变化的,在任何计算机语言中程序中,变量作用时非常重要的。
一个变量在没有被赋值之前, 对应的变量名只是数学意义中的符号, 一旦被赋值, 对应的变量名就是被赋值的内容。
利用变量可以方便地进行计算和保存中间的计算结果。
例如:在Mathematica的Notebook中键入In[1]:= x*x – x + 1Out[1]=1- x - x2 (*这里x没有被赋值,故它只是一个符号,输入变为一个数学式子In[2]: = x = 2+2 (*变量x存放了计算结果4Out[2]= 4In[3]:= x*x – x + 1 (*这里x已经有值4,计算机自动用4代替x参与计算Out[3]= 13如果要想使变量还原为一个符号,使用清除变量命令即可。
这种在Mathematica中键入的各种命令或在Mathematica的程序语句中, 变量被赋值后, 必须用Mathematica清除变量的命令才能使其还原为符号的变量, 称为全局变量。
上面例子中的变量x就是一个全局变量。
察看某变量是否为全局变量,可以键入命令:?变量名如果显示结果出现Global`变量名…说明该变量是全局变量,否则,就不是全局变量。
例如要知道变量w是否为全局变量,可以键入: ? w键入执行命令后,显示结果Global`ww = 2说明w是全局变量,且有数值2。
如果用户自己定义了函数,Mathematica会把自定义的函数名作为全局变量,此时,如果键入命令:?自定义函数名可以看到全局变量的说明和该自定义的函数的定义信息。
8.1.2 局部变量由于Mathematica中的变量名还可以用作代数中的数学符号,在Mathematica的命令或程序中出现的任何合法的变量名符号,如果该变量名所代表的变量没有被赋值,则它就作为数学算式中的符号参与数学的公式推导和运算;如果该变量被赋值了,则用该变量所赋的值参与对应的数学公式推导和运算。
mathematica简单算例
mathematica简单算例Mathematica是一款强大的数学软件,可以用于解决各种数学问题和进行数值计算。
在本文中,我们将介绍一些简单的算例,展示Mathematica的基本用法和功能。
一、求解方程假设我们需要求解一个简单的一元二次方程,比如x^2-5x+6=0。
我们可以使用Mathematica的Solve函数来解这个方程。
代码如下:```mathematicaSolve[x^2 - 5x + 6 == 0, x]```运行以上代码后,Mathematica会给出方程的解,即x=2和x=3。
通过这个例子,我们可以看到Mathematica可以方便地解决各种复杂的方程。
二、绘制函数图像Mathematica还可以用来绘制函数的图像。
假设我们想要绘制函数y=x^2的图像,我们可以使用Mathematica的Plot函数。
代码如下:```mathematicaPlot[x^2, {x, -10, 10}]```运行以上代码后,Mathematica会生成一个关于y=x^2的图像,x 的取值范围为-10到10。
通过这个例子,我们可以看到Mathematica可以帮助我们直观地理解数学函数。
三、计算数列Mathematica还可以用来计算数列的和。
假设我们需要计算斐波那契数列的前20项的和。
我们可以使用Mathematica的Sum函数来计算。
代码如下:```mathematicaSum[Fibonacci[n], {n, 1, 20}]```运行以上代码后,Mathematica会计算出斐波那契数列的前20项的和。
通过这个例子,我们可以看到Mathematica可以帮助我们快速计算各种数学问题。
四、符号计算Mathematica还可以进行符号计算。
假设我们需要对一个多项式进行展开,比如(x+1)^3。
我们可以使用Mathematica的Expand函数来展开多项式。
代码如下:```mathematicaExpand[(x + 1)^3]```运行以上代码后,Mathematica会展开多项式(x+1)^3,结果为x^3+3x^2+3x+1。
mathematica引用方程的解
mathematica引用方程的解Mathematica引用方程的解
在Mathematica中,可以使用Solve和DSolve函数分别求解代数方程和微分方程。
1. 求解代数方程
对于代数方程,使用Solve函数。
例如,求解x^2 - 3x + 2 == 0:
```
Solve[x^2 - 3x + 2 == 0, x]
{{x -> 2}, {x -> 1}}
```
输出结果显示方程有两个解,x=2和x=1。
2. 求解微分方程
对于微分方程,使用DSolve函数。
例如,求解y'[x] == y[x]:
```
DSolve[{y'[x] == y[x]}, y[x], x]
{{y[x] -> C[1] E^x}}
```
输出结果给出了微分方程的通解y(x) = C*e^x,其中C是任意常数。
3. 约束条件求解
有时需要给出初始或边界条件,可以将它们作为附加方程一同传递给Solve或DSolve。
例如,对于y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0:
```
sol = DSolve[{y''[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], x]
{y[x] -> Cos[x]}
```
解包含了满足初始条件的特解y(x) = cos(x)。
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 一
0
刁 5 12 0 0
, 一18 5 一6 ,. 一9 0 0 1 {9 。 {3 )?
20
注2利用这里的算法不难设计利用正交变 : 换 化二次性为标准型的算法。
四 、总 结
0
we
、 、
0
作为一个高校的教育工作者,笔者常常在思 考,在科技高速发展,经济生活极为活跃,高 等教育发展及其迅猛的时代,我们应该如何施行 ( 下转 第 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 进行行列式的运算实例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因为奇数阶顺序主子式为负,而偶数阶顺序主子式为正,所以已知二次型为负定二次型.。
Mathematica用于解方程的命令
第五节 用Mathematica解 方程
Solve[ f[x]= =0,x] DSolve[degn,y[x],x]
例6 求解方程 cos x x
注意,用以上的方法得到的解是形式
解的集合,不能直接在以后的运算中 使用,如果希望在计算中使用方程的 根,可以将这些形式根的值存入一个 表中,表中的元素就可以带入各种的 表达式中去进行计算了。
5.1.6 割线法 FindRoot[eqn,{x,x0,x1}]
对于5次及5次以上的方程已经没有公式
解 Solve[ ]只能给出以Roots表示的抽象解 这时改用Nsolve[ ]能求出近似值。
例3 求五次方程的根
Solve x ^5 + x^ 2 - x + 3 0, x
@
x5 x2 x 3 0
D
只能得出符号解
改用Nsolve[ ] 可以得到近似解
如果用牛顿法求不出根,则用割线法求近 似值。割线法的命令格式为 FindRoot[eqn,{x,x0,x1} ] 其中(x0,x1)为根的间隔区间。即在该区间 里有且仅有方程的一个根。
例6
3 2 x 3 x 3x 9 0 求方程
的根。
系统提示出错,并给出一个并不存在的根。
5.1 Mathematica用于解方程的 命令:
1、
Solve[f[x]= =0,x] 2、 Nsolve[f[x]==0,x] 3、 Roots[f[x]==0,x] 4、 Reduce[f[x]==0,x] 5、 FindRoot[f[x]==0,{x,x0}] 6、FindRoot[f[x]==0,{x,x0,x1}]
Mathematica数学实验——基本代数式运算
教师指导实验2实验名称:基本代数式运算一、问题:代数式的展开、分解、化简等运算。
二、实验目的:学会使用Simplify,FullSimplify 对代数式进行化简;用Collect,Factor 对代数式进行合并同类项和因式分解;能对分式进行约分、通分和分解;能用不同的函数对代数式进行展开。
三、预备知识:本实验所用的Mathematica 命令提示。
1、Simplify[expr] 化简表达式expr ,FullSimplify[expr] 更广义的化简表达式expr[2、Collect[expr,x] 将表达式expr 中的x 的同次幂合并,Factor[expr]分解expr[3、Cancel[expr] 将分式expr 约分,Together[expr] 将分式expr 通分,Apart[expr] 将分式expr 分解为最简分式和;4、Expand[expr] 展开表达式expr ,ExpandAll[expr] 将表达式expr 彻底展开,ExpandNumerator[expr] 只展开分式expr 的分子, ExpandDinominator[expr] 只展开分式expr 的分母。
四、实验的内容和要求:1、用函数Simplify[expr] 和FullSimplify[expr] 化简22sin 2sin cos cos x x x x ++,并 观察化简的结果;2、依次使用Collect[expr,x] 和Factor[expr],将42232223322x a x x a x a x ---+-合并为x 的同类项,并于以因式分解;3、对分式22224341x x x x x x x -+-+--进行约分,通分及展开为最简分式和; 4、用4个不同的代数式展开函数展开32()()a b c d +-,比较展开结果的不同。
五、操作提示1、用函数Simplify[expr] 和FullSimplify[expr] 化简22sin 2sin cos cos x x x x ++ In[1]:= Simplify [ Sin[ x ]^2 + 2 Sin[ x ] Cos[ x ] + Cos[ x ]^2 ] Out[1]= (Sin[x] + Cos[x])2In[2]:= FullSimplify [ Sin[ x ]^2 + 2 Sin[ x ] Cos[ x ] + Cos[ x ]^2 ] Out[2]= 1 + Sin[2 x]2、依次使用Collect[expr,x] 和Factor[expr],将42232223322x a x x a x a x ---+-合并为x 的同类项,并于以因式分解;In[3]:= Collect [x 4 – 3 a 2 – 3 x 2 – 2 x 3 + a 2 x 2 – 2 a 2 x , x ] Out[3]= - 3 a 2 -2 a 2 x + (- 3 + a 2 ) x 2 – 2 x 3 + x 4In[4]:= Collect [x4 – 3 a2 – 3 x2 – 2 x3 + a2 x2 – 2 a2 x , a ] Out[4]= – 3 x2 – 2 x3 + x4 + a2 ( -3 – 2 x + x2)In[5]:= Factor [x4 – 3 a2 – 3 x2 – 2 x3 + a2 x2 – 2 a2 x ] Out[5]= (- 3 + x ) (1 + x ) ( a2 + x2 )3、对分式22224341x x x xx x x-+-+--进行约分,通分及展开为最简分式和;In[6]:= r =2222x-4x x+3x-4+x-x x-1; Cancel [ r ]Out[6]= -4+x4+x+-1+x1+xIn[7]:= Together [ r ]Out[7]=22(-4+x) (-1+x)(1+x)In[8]:= Apart [ r ]Out[8]= 2-33+-1+x1+x4、用4个不同的代数式展开函数展开32 () () a b c d +-In[9]:= p = ( a + b ) ^ 3 / ( c – d ) ^ 2 ; Expand [ p ]Out[9]=32232222 a3a b3ab b+++(c-d)(c-d)(c-d)(c-d)In[10]:= ExpandAll [ p ]Out[10]=3223 22222222 a3a b3ab b+++c-2cd+d c-2cd+d c-2cd+d c-2cd+dIn[11]:= ExpandNumerator [ p ]Out[11]=+32232a3a b+3ab+b(c-d)In[12]:= ExpandDenominator [ p ]Out[12]=322 (a+b)c-2cd+d学生练习实验2实验名称:基本代数式运算一、问题:代数式的展开、分解、化简等运算 二、实验目的:学会使用Simplify,FullSimplify 对代数式进行化简;用Collect,Factor 对代数式进行合并同类项和因式分解;能对分式进行约分、通分和分解;能用不同的函数对代数式进行展开。
30Mathematica基本代数运算l
第三章初等代数运算命令与例题3.1多项式运算多项式是我们最熟悉的简单表达式,n 次一元多项式的一般形式为:P n(x) =a 0 +a1x+ a2x 2 +…+a n x n在Mathematica 中, 有关表达式的任何运算都可以应用到多项式中,特别,多项式的加减乘除四则运算只要用Mathematica 中的加减乘除号来连接两个多项式即可, 如:数学形式Mathematica 输入形式多项式相加(3+x 2) + (1-2x5 ) (3+x^2)+(1-2*x^5)多项式相减(3+x 2) - (1-2x5 ) (3+x^2)-(1-2*x^5)多项式相乘(3+x 2)(1-2x5 ) (3+x^2)*(1-2*x^5)多项式相除(3+x 2) ÷ (1-2x5 ) (3+x^2)/(1-2*x^5)上述多项式的运算只有多项式的加减可以计算外,多项式的乘除实际上不进行真正的运算,而只是以乘积或有理分式的形式表出,要想真正产生运算需用Mathematica 提供的多项式展开命令。
Mathematica 提供还提供了多项式因式分解,提取多项式幂次和系数等处理多项式的一些函数,下面列举其中的常用函数及功能:Mathematica 函数形式功能1) Expand[多项式] 把多项式按升幂展开2) Factor[多项式] 对多项式进行因式分解3) Collect[多项式,x] 把多项式按x的同次幂合并形式展开4) Simplify[多项式] 把多项式写成项数最小的形式5) Exponent[多项式, x] 取出多项式中x的最高幂数6) Coefficient[多项式,form] 取出多项式中form的系数7) Part[多项式, n] 取出多项式的第n项8) Length[多项式] 给出多项式的项数9) PolynomialQuotient[p,q, x] 计算p÷q的商,这里p,q是关于x的多项式10) PolynomialRemainder[p,q, x] 计算p÷q的余式,这里p,q是关于x的多项式11) PolynomialGCD[p,q, …] 求多项式p,q,…的最大公因子12) PolynomialGCD[p,q, …] 求多项式p,q,…的最小公倍数注:函数中的多项式可以是多元多项式,通常可以把多项式存放在一个变量中(用赋值语句),这样该变量就代表存入的多项式,使处理多项式更简单。
(完整版)Mathematica入门教程含习题与答案
Mathematica入门教程第1篇第1章MATHEMATICA概述 (3)1.1 M ATHEMATICA的启动与运行 (3)1.2 表达式的输入 (4)1.3 M ATHEMATICA的联机帮助系统 (6)第2章MATHEMATICA的基本量 (8)2.1 数据类型和常数 (8)2.2 变量 (10)2.3 函数 (11)2.4 表 (14)2.5 表达式 (17)2.6 常用的符号 (19)2.7 练习题 (19)第2篇第3章微积分的基本操作 (20)3.1 极限 (20)3.2 微分 (20)3.3 计算积分 (22)3.4 无穷级数 (24)3.5 练习题 (24)第4章微分方程的求解 (26)4.1 微分方程解 (26)4.2 微分方程的数值解 (26)4.3 练习题 (27)第3篇第5章MATHEMATICA的基本运算 (28)5.1 多项式的表示形式 (28)5.2 方程及其根的表示 (29)5.3 求和与求积 (32)5.4 练习题 (33)第6章函数作图 (35)6.1 基本的二维图形 (35)6.2 二维图形元素 (40)6.3 基本三维图形 (42)6.4 练习题 (46)第4篇第7章MATHEMATICA函数大全 (48)7.1 运算符和一些特殊符号,系统常数 (48)7.2 代数计算 (49)7.3 解方程 (50)7.4 微积分 (50)7.5 多项式函数 (51)7.6 随机函数 (52)7.7 数值函数 (52)7.8 表相关函数 (53)7.9 绘图函数 (54)7.10 流程控制 (57)第8章MATHEMATICA程序设计 (59)8.1 模块和块中的变量 (59)8.2 条件结构 (61)8.3 循环结构 (63)8.4 流程控制 (65)8.5 练习题 (67)--------------习题与答案在68页-------------------第1章Mathematica概述1.1 Mathematica的启动与运行Mathematica是美国Wolfram研究公司生产的一种数学分析型的软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。
mathematica迭代法解方程组
mathematica迭代法解方程组Mathematica中可以使用NSolve或FindRoot来求解方程组,当然,也可以使用迭代法来解决。
下面介绍一种简单的迭代法求解方程组的方法。
假设我们要求解如下方程组:$$begin{cases}x^2-y+z=1y^2-z+x=2z^2-x+y=3end{cases}$$首先,我们需要将方程组转化为向量形式。
定义一个向量函数$F(mathbf{x})=begin{pmatrix}f_1(mathbf{x})f_2(mathbf{x})f_3 (mathbf{x})end{pmatrix}$,其中$f_i(mathbf{x})$表示第$i$个方程的左侧减去右侧所得到的值,即:$$begin{aligned}f_1(mathbf{x})&=x^2-y+z-1f_2(mathbf{x})&=y^2-z+x-2f_3(mathbf{x})&=z^2-x+y-3end{aligned}$$接下来,我们采用Jacobi迭代法求解该方程组。
具体步骤如下:1. 给定初值$mathbf{x}^{(0)}$和迭代次数$n$;2. 对于每个分量$x_i$,计算出它的下一步迭代值$x_i^{(k+1)}$:$$x_i^{(k+1)}=frac{1}{a_{ii}}left(b_i-sum_{jeq i}a_{ij}x_j^{(k)}ight)$$3. 将所有的分量合并成一个向量$mathbf{x}^{(k+1)}$;4. 如果达到了指定的迭代次数$n$,则停止迭代,输出当前的近似解$mathbf{x}^{(n)}$;否则返回第2步。
下面是Mathematica中实现该算法的代码:```(*定义向量函数*)f[x_List] := {x[[1]]^2 - x[[2]] + x[[3]] - 1,x[[2]]^2 - x[[3]] + x[[1]] - 2,x[[3]]^2 - x[[1]] + x[[2]] - 3}(*Jacobi迭代法求解方程组*)jacobi[x0_List, n_Integer] := Module[{x = x0},Do[x[[i]] = (1/Coefficient[f[x], x[[i]]])*(f[x][[i]] +Sum[Coefficient[f[x], x[[i]], 1]*x[[j]], {j, 1, 3}] - Coefficient[f[x], x[[i]], 0]),{k, 1, n}];x](*测试*)sol = jacobi[{0, 0, 0}, 10]f[sol] (*检验结果是否满足方程组*)```运行以上代码得到的结果为:```{0.592662, 1.39611, -1.90835}{0., 0., 0.} (*结果满足方程组*)```这里我们取初始值为$mathbf{x}^{(0)}=begin{pmatrix}000end{pmatrix}$,迭代10次后得到的近似解为$mathbf{x}^{(10)}approxbegin{pmatrix}0.59271.3961-1.9084end {pmatrix}$,同时检验结果发现其满足方程组。
Mathematica编程语句与例题
例7: 用函数描述如下结果:任给一个整数x, 显示它被3除的余数。 解: Mathematica自定义函数:
In[19]:=f[x_]:=Switch[Mod[x,3], 0, Print["0 is the remainder on division of" ,x ,"by 3"], 1, Print["1 is the remainder on division of" ,x ,"by 3"], 2, Print["2 is the remainder on division of" ,x ,"by 3"] ] In[20]:= f[126] Out[20]= 0 is the remainder on division of 126 by 3 In[21]:= f[346] Out[21]= 1 is the remainder on division of 346 by 3 In[22]:= f[599] Out[22]= 2 is the remainder on division of 599 by 3
8.1.3 过程
在Mathematica中,一个用分号隔开的表达式序列称为一个复合表达式,它 也称为一个过程。 例如: In[11]:=s=1;u=s+3;u*u Out[11]=16 ★Mathematica的过程可以作为Module模块命令的表达式,如果不关心局部 变量问题,可以把一个过程用小括号括起来构成一个整体,这样可以用由小 括号括起来的过程来定义一个函数。 例如:已知有n个元素的一个数表x={a1,a2,…,an},定义一个计算此类数表最 大数与最小数平方差的函数,用过程来定义可以写为: In[12]:=g[x_]:=(m =Max[x];n = Min[x];m*m - n*n) 如果不用小括号括起来,而是写为 In[13]:=g[x_]:=m =Max[x];n = Min[x];m*m-n*n 则In[13]定义的g[x]实际上是Max[x],不是数表最大数与最小数平方差函数, 应该注意过程加小括号与不加括号的区别。本例题还可以用模块来定义函数: In[14]:=g[x_]:=Module[{m, n}, m =Max[x];n = Min[x];m*m-n*n]
mathematica中列向量乘以行向量 -回复
mathematica中列向量乘以行向量-回复题目: Mathematica中列向量乘以行向量导言:在研究线性代数和矩阵运算时,我们经常会遇到列向量和行向量的乘法运算。
在Mathematica中,我们可以利用内置的函数和操作符轻松地进行这种运算。
本文将详细介绍在Mathematica中如何实现列向量乘以行向量操作,并提供一些示例以帮助您更好地理解。
1. 创建列向量和行向量在Mathematica中,我们可以使用以下语法来创建列向量和行向量:- 列向量: 利用Column和List函数的组合来创建一个n行1列的列向量。
例如,若要创建一个3行1列的列向量`v`,可以使用以下代码:v = Column[{1, 2, 3}]- 行向量: 利用MatrixForm和Row函数的组合来创建一个1行n列的行向量。
例如,若要创建一个1行4列的行向量`u`,可以使用以下代码:u = MatrixForm[Row[{1, 2, 3, 4}]]2. 列向量乘以行向量为了实现列向量`v`乘以行向量`u`的操作,我们可以使用Dot函数或.操作符。
这两种方式都可以获取两个向量的点积(内积)。
语法如下:- 使用Dot函数:`Dot[v, u]`- 使用.操作符:`v.u`其中,`v`代表列向量,`u`代表行向量。
3. 示例现在,让我们通过几个示例来演示如何在Mathematica中实现列向量乘以行向量的操作。
示例1: 列向量乘以行向量假设我们有一个列向量v和一个行向量u,分别为:v = Column[{1, 2, 3}]u = MatrixForm[Row[{4, 5, 6}]]要计算v乘以u的结果,我们可以使用以下Mathematica代码:result = v.u运行此代码后,Mathematica将计算结果存储在result变量中,并在输出中显示结果。
示例2: 矩阵乘以向量我们也可以将列向量和行向量视为矩阵的一部分,并通过矩阵乘法来实现列向量乘以行向量的操作。
用软件Mathematica 求解线性代数
求解逆矩阵的办法: ) 求解逆矩阵的办法:1)利用伴随矩阵
1 * A = A A
例:设
3 2 0 5 0 3 −2 3 6 −1 A= 2 0 1 5 −3 1 6 −4 −1 4
化简A为行最简形矩阵并求秩。 化简A为行最简形矩阵并求秩。 LOGO
以矩阵形式显示 行最简型矩阵
有三个非零行,秩为3 有三个非零行,秩为3
求矩阵的秩
YOUR SITE HERE
MatrixPower[A,n] 求矩阵A的n次幂 求矩阵A LinearSolve[A,b] 求线性方程组的解
YOUR SITE HERE
学习资料: 学习资料:
学习网站 中文电子书索取地址 lg8124@ 书籍
LOGO
YOUR SITE HERE
向量的相关运算 求解线性方程thematica 的功能
LOGO
• 数值与符号运算
-
能够快速准确的进行所有的数学运算
• 绘图功能强大
创建任何函数的二维及三维图像 - 创建任何函数的二维及三维图像
• 编制程序;处理声音、图像;系统模拟仿真 编制程序;处理声音、图像; 等
分号表示,系统执 分号表示, 行计算, 行计算,但不再显 示计算结果。 示计算结果。
LOGO
矩阵 格式
软件按列表数据 软件按列表数据计算 列表数据计算 ,反馈给用户也是列 表数据。 表数据。
YOUR SITE HERE
9、用Mathematic计算行列式、矩阵
9、用Mathematic 计算行列式、矩阵 在Mathematica 系统中,有固定的输入法和函数对矩阵的有关问题进行计算。
所以必须要掌握这些输入法与函数。
如:1、求行列式在Mathematica 系统中,用函数Det[b]求行列式的值,其中b 是所给行列式的元素所构成的二维数表,b 的一维子表顺次由行列式的逐行(或列)上的元素构成.例1计算行列式.1245101124126853D -= 解:}};1,2,4,5{},1,0,1,1{},2,4,1,2{},6,8,5,3{{b ]1[In -==:]b [Det ]2[In =:122]2[Out -=2、矩阵的加法在Mathematica 系统中,矩阵的加减法实际上就是二维数表间的相应加减法.在二维数表的表达式后输入//MatrixForm 可输出矩阵形式的表达式.例2已知矩阵,612342017915,864202109751⎪⎪⎪⎭⎫ ⎝⎛--=⎪⎪⎪⎭⎫ ⎝⎛-=B A 求.B A +解:}};8,6,4,2{},0,2,1,0{},1,5,7,9{{a ]1[In -==:}};6,1,2,3{},4,2,0,1{},7,9,1,5{{b ]2[In --==:b a ]3[In +=:b a ]4[In +=://MatrixForm}{5,6,5,14},{1,-1,0,4}6},{{6,6,16,1]3[Out ==MatrixForm //]4[Out⎪⎪⎪⎭⎫ ⎝⎛-1456540111616663、矩阵的乘法在Mathematica 系统中,矩阵用二维数表表示,矩阵a 与b 的乘法运算用ba ⋅表示.其中“∙”表示矩阵乘法运算符号.例3设矩阵,01202131,431103⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎭⎫ ⎝⎛-=B A 求.AB 解:]b ,a [Clear ]1[In =:;:}}1,4{},0,3{},13,{{a ]2[In -== ;: 2,1,0}}0,{1,3,1,2}{{b ]3[In -== b a ]4[In ⋅=:;,,,,,,5,5,2}}{1,0},36{06},211{{3]3[Out --= 4、矩阵的转置在Mathematica 系统中,求矩阵A 的转置矩阵用函数Transpose[A].例4若矩阵,452331021⎪⎪⎭⎫ ⎝⎛=A 求.AA ,A T T 解:;:}},2,453,3,{},1,2,0,1{{a ]1[In == MatrixForm//a]Transpose[]2[In =: a];T ranspose[b ]3[In ==:orm b//MatrixF a ]4[In ⋅=:⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=452331021MatrixForm //]2[Out ⎪⎪⎭⎫ ⎝⎛=204754546MatrixForm //]4[Out 5、矩阵的逆矩阵在Mathematica 系统中,求矩阵A 的逆矩阵用函数Inverse[A].例5求矩阵⎪⎪⎪⎭⎫ ⎝⎛=343122321A 的逆矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章 线性代数运算命令与例题线性代数中常用的工具是矩阵(向量)和行列式。
用这些工具可以表示工程技术,经济工作中一些需要用若干个数量从整体上反映其数量关系的问题。
用这些工具可以简明凝练而准确地把所要研究的问题描述出来,以提高研究的效率。
在线性代数课程中我们看到了用这些工具研究齐次和非齐次线性方程组解的理论和解的结构,矩阵的对角化,二次型化标准形等问题的有力,便捷.5.1向量与矩阵的定义数学上矩阵是这样定义的:由n m ⨯个数排成m 行n 列的数表mnm m nn a a a a a a a a a212222111211称为m 行n 列矩阵,特别,当m=1时就是线性代数中的向量。
记作: ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=mn m m n n a a a a a a a a a A 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⨯矩阵[][][][][][][][][][][][][][][]⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡8Sin 7Sin 6Sin 7Sin 6Sin 5Sin 6Sin 5Sin 4Sin 5Sin 4Sin 3Sin 4Sin 3Sin 2Sin 解: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}]功能:产生一个n m ⨯的0矩阵2. 生成随机数矩阵命令形式: Table[Random[ ],{m},{n}]功能: 产生一个n m ⨯的随机数矩阵3.生成上三角矩阵命令形式: Table[If[i<=j,a,0],{i,m},{j,n}]功能:产生一个非0元全为数a的上三角矩阵4.生成下三角矩阵命令形式: Table[If[i>=j,a,0],{i,m},{j,n}]m⨯下三角矩阵功能:产生一个非0元全为数a的n5.生成三对角矩阵命令形式: Table[Switch[i-j,-1,a[[i]],0,b[[i]],1,c[[i-1]],-,0],{i,m},{j,n}] m⨯的三对角矩阵功能:产生一个n6.生成对角矩阵命令形式:DiagonalMatrix[list]功能:使用列表中的元素生成一个对角矩阵.7.生成单位矩阵命令形式:IdentityMatrix[n]功能:生成n阶单位阵例题4⨯的0矩阵。
例3. 构造3解: 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 02⨯的随机数矩阵。
例4. 构造一个5解: 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 01 1 0 01 1 1 01 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 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 15.2向量与矩阵的运算5.2.1基本运算例题例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 c b a 的逆。
解:Mathematica 命令In[26]:= Inverse[{{a ,b},{c ,d}}]Out[26]:=例18. 求矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=654354324321A 的转置。