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

合集下载

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求解线性代数基本问题

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编程语句与例题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是一款强大的数学软件,可以用于解决各种数学问题和进行数值计算。

在本文中,我们将介绍一些简单的算例,展示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引用方程的解
在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做线性代数Ⅱ线性代数高级运算

用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 进行行列式的运算实例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用于解方程的命令

findroot?x8x0dout298x?073908510?注意用以上的方法得到的解是形式解的集合不能直接在以后的运算中使用如果希望在计算中使用方程的根可以将这些形式根的值存入一个表中表中的元素就可以带入各种的表达式中去进行计算了
第五节 用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,…的最小公倍数注:函数中的多项式可以是多元多项式,通常可以把多项式存放在一个变量中(用赋值语句),这样该变量就代表存入的多项式,使处理多项式更简单。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 的转置。

相关文档
最新文档