您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页Mathematica学习笔记(自己总结)

Mathematica学习笔记(自己总结)

来源:华佗小知识
Mathematica 学习笔记

一、Mathematica介绍

Mathematica在Notebook界面下,可以通过交互方式完成各种运算,如函数作图,求极限,解方程等,也可以编写结构化程序。在Mathematical系统中定义了许多功能强大的内建函数(built-in function),这些函数分为两类: 一类是数学意义上的函数:

函数名称 绝对值函数 正弦函数 余弦函数 以e为底的对数函数 以a为底的对数函数 二类是命令意义上的函数:

函数名称 作函数图形的函数 解方程函数 求导函数 注意:Mathematica严格区分大小写,一般地,内建函数的首写字母必须大写,有时一个函数名由几个单词构成,则每个单词的首字母也必须大写,例如求局部极小值函数FindMinimum [f[x], {x, x0}]

符号 Plot[f[x],{x, xmax, xmin}] Solve[eqn, x] D[f[x], x] 备注 符号 Abs[x] Sin[x] Cos[x] Log[x] Log[a, x] 备注 二、表达式的输入

1、 Mathematica中提供了两种格式的数学表达式,形如 x/(2+3x)+y*(x-w) 的称为一维格

𝑥𝑦

式,形如 2+3𝑥+𝑥−𝑤 称为二维格式。可以使用快捷方式输入二维格式,也可以使用基本工具栏输入二维格式。

数算 分式 n 次方 开n次方 下标 2、特殊符号的输入

数学表达式 𝑥 2𝑥2 √𝑥 x2 按键 x Ctrl+/ 2 x Ctrl+^ 2 Ctrl+2 x x Ctrl+_ 2 三、数据类型和常数

1、数值类型

在Mathematica中,基本的数值类型有四种:整数、有理数、实数和复数。如果计算机的内存足够大,Mathematica可以表示任意长度的精确实数,而不受所用的计算机字长的影响。整数与整数的计算结果仍是精确地整数或是有理数。在Mathematica中允许使用分数,用有理数表示化简过的分数。当两个整数相除而不能整除时,系统就用有理数来表示,即有理数是由两个整数的比来组成。实数有两种方法表示:一种是小数点,另一种是指数方法表示的。实数也可以与整数,有理数进行混合运算,结果还是一个实数。复数是由实部和虚部组成,实部和虚部可以用整数,实数,有理数表示,在Mathematica中,用i表示虚数单位,如:3+0.7i 2、不同类型数的转换

在Mathematica的不同应用中,通常对数字的类型要求是不同的。例如在公式推导中的数字常用整数或有理数表示,而在数值计算中数字常用实数表示。在一般情况下输出行Out[n]中,系统根据输入行In[n]的数字类型对计算结果做出相应的处理。如果有一些特殊的要求,就要进行数据类型的转换。

在Mathematica中提供以下几个函数达到转换的目的: N[x] 将x转换成实数

N[x, n] 将x转换成近似实数,精度为n Rationalize[x] 给出x的有理数近似值

Rationalize[x, dx] 给出x的有理数近似值,误差小于dx 3、数学常数

Mathematica中定义了一些常见的数学常数,这些数学常数都是精确数。 Pi 表示π

E 表示自然对数的底,e=2.71828… Degree π/180 i 虚数单位 Infinity 无穷大 -infinity 负的无穷大

GoldenRatio 黄金分割数0.61803 4、数的输出形式

在数的输出中可以使用转换函数进行不同数据类型和精度的转换,另外对一些特殊要求的格式还可以使用如下格式函数:

NumberForm[expr, n] 以n位精度的实数形式输出实数expr ScientificFormat[expr] 以科学计数法输出实数expr EngineergForm[expr] 以工程记数输出实数expr

四、变量

1、变量的命名

Mathematica中内部函数和命令都是以大写字母开始的标示符。为了和他们加以区别,我们自定义的变量应该是以小写字母开始,后跟数字和字母的组合,长度不限。例如:a12, asd, aSD 都是合法的,而12a, z*a 是非法的。另外在Mathematica中的变量区分大小写的,在Mathematica中变量不仅可以存放一个数值,还可以存放表达式或复杂的算式。

2、给变量赋值

在Mathematica中用等号=为变量赋值。同一个变量可以表示一个数值,一个数组,一个表达式,甚至一个图形。例如:x=3; {u,v,w}={1,2,3}

对于已定义的变量,当你不再使用它时,为防止变量值的混淆,可以随时使用“=.”清除它的值,如果变量本身也要清除用函数Clear[x]。 3、变量的替换

在给定一个表达式时其中的变量可能取不同的值,这是可用变量替换来计算表达式的不同值。方法为用expr/.x->a

五、函数

1、系统函数

在Mathematica中定义了大量的数学函数可用直接调用,这些函数其名称一般表达了一定的意义,可用帮助我们理解。

函数名称 Floor[x] Ceiling[x] Sign[x] Round[x] Abs[x] Max[x1,x2,x3…] Min[x1,x2,x3…] Random[] 含义 不比x大的最大整数 不比x小的最小整数 符号函数 接近x的整数 x绝对值 x1,x2,x3…中最大值 x1,x2,x3...中的最小值 0~1之间的随机函数 Random[Real,xmax] Random[Real,{xmin,xmax}] Exp[x] Log[x] Log[b,x] Sin[x], Cos[x], Tan[x], Csc[x], Sec[x], Cot[x] Sinh[x], Cosh[x], Tanh[x], Csch[x], Sech[x], Coth[x] ArcSech[x], ArcCoth[x] Mod[m,n] Quotient[m,n] GCD[n1,n2,n3…]或GCD[s] LCM[n1,n2,n3…]或LCM[s] N! N!! 0~xmax之间的随机函数 xmin~xmax之间的随机函数 指数函数 自然对数函数ln(x) 以b为底的对数函数 三角函数(变量以弧度为单位) 双曲函数 双曲函数 M被n整除的余数,余数与n的符号相同 m/n的整数部分 n1,n2,n3…的最大公约数,s为一数据集合 n1,n2,n3…的最大公倍数,s为一数据集合 n的阶乘,n(n-1)(n-2)…3*2*1 n 的双阶乘, n(n-2)(n-4)… Mathematica中的函数与数学上的函数有些不同的地方,Mathematica中函数是一个具有功能的程序模块,可以直接调用。同时一个函数也可以包括一个,或者多个参数,也可以没有参数,参数的数据类型也比较复杂。了解各个函数的功能和使用方法是学习Mathematica软件的基础。 2、函数的定义 (1)函数的立即定义

立即定义函数的语法:f[x_]=expr, 其中函数名为f,自变量为x,表达式为expr。在执行表达式时,expr中的x都换为f的自变量x,而不是x_。函数的自变量具有局限性,只对所在的函数起作用,函数执行结束也就没有了,不会改变其他全局定义的同名变量名的值。对于定义的函数我们可以使用命令Clear[f]清除掉,Remove[f]可以将该函数在系统中删除。

例如,定义函数f(x)=x∙sin(x)+𝑥2 ,对于定义的函数我们可以求函数的值,也可以绘制它的图形。

(2)多变量函数的定义

Mathematica中也可以定义多变量的函数,形如 f[x_,y_,z_...]=expr,自变量为x, y, z 例如f(x,y)=xy+ycos(x) (3)延迟定义函数

延迟定义函数从定义方法上与即时定义的区别为“=”与“:=”。延迟定义的格式为 f[x_]:=expr,其它操作基本相同。延迟定义函数和即时定义函数的区别在于:即时定义函数在输入函数后立即定义函数并且存放在内存中,直接可以调用。演示定义函数只是在调用函数时才是真正意义的函数。

(4)使用条件运算符定义和If命令定义函数:

𝑥−1 𝑥>0

f(x)={ 𝑥2 −1<𝑥≤0

sin𝑥 𝑥≤−1

这样的分段函数要根据x的不同值给出不同的表达式,一种办法是使用运算符,基本格式是 f[x_]:=expr/; condition。当condition条件满足时才把expr赋给f,通过图形可以验证定义函数的正确性。

同时,也可以使用If命令定义上面的函数,If语句的格式为If[条件,值1,值2],如果条件成立取值1,否则取值2。

六、表

将一些相互关联的元素放在一起,使他们成为一个整体,既可以对整体操作,也可以对整体中的一个元素单独进行操作。在Mathematica中这样的数据结构就称作表(list),表主要有三个用法:表(a,b,c)可以表示一个向量;表{{a,b},{c,d}}可表示一个矩阵。

1、建表

在表中元素较少的时候,可以采取直接列表的方式列出来表中的元素,例如{1,2,3}。 小知识:%表示上一次的计算结果,%%表示倒数第二个计算结果,%n表示第n的计算结果。

如果表中的元素较多时,可以用建表函数进行建表。

函数 Table[f,{i,min,max,step}] Table[f,{min,max}] Table[f,max] Table[f,{i,imin,imax},{j,jmin,jmax}…] TableForm[list] Range[n] Range[n1,n2,d] 建模函数的范例如下:

用途 以step为步长给出f的数值表,i由min变到max 给出f的数值表,i有min到max,步长为1 给出max个f的表 生成一个表 以表格格式显示一个表 生产一个{1,2,…}的列表 生成{n1,n1+d,n1+2d,..,n2}的表

2、表中元素的操作

(1)当t表示一个表时,t[[i]]表示t中的第i个子表,如果t={1,2,a,b},那么t[[3]]表示“a”。

七、多项式的表示形式

多项式可以当作表达式的一种特殊的形式,所以多项式的运算与表达式的运算基本一样,表达式中的各种输出形式也可以用于多项式的输出。Mathematica提供一组按不同形式表示代数式的函数。

Expand[ploy] Expand[ploy] ExpandAll[ploy] Factor[ploy] 按幂次展开多项式ploy 全部展开多项式ploy 全部展开ploy 对多项式ploy进行因式分解 FactorTerms[ploy,{x,y,…}] Simplify[ploy] FullSimplify[ploy] Collect[ploy,x] Collect[ploy,{x,y,…}] 例:

按变量x,y…进行因式分解 多多项式化为最简形式 把多项式展开并化简 把多项式ploy按x幂展开 把多项式ploy按x,y,…的幂次展开

多项式的代数运算:

多项式的运算有加、减、乘、除运算:+ - * /

Cancel函数可用约去分子和分母的公因式,两个多项式相除,总能写成一个多项式和一个有理式相加的形式。PolynomialQuotient和PolynomialRemainder分别返商式和余式。

八、方程及其根的表示

Mathematica把方程看作逻辑语句,在数学方程式表示为形如x2−2x+1=0 的形式,在Mathematica中“=”用作赋值语句,这样在Mathematica中用“==”表示逻辑等号,则方程表示为“ x2−2x+1==0”,求方程的根用Roots函数

1、求解一元代数方程 常用的一些求解方程的函数:

Solve[lhs==rhs,vars] NSolve[lhs==rhs,vars] Roots[lhs==rhs,vars] FindRoot[lhs==rhs,{x,x0}] 给出方程的解集 直接给出方程的数值解集 求表达式的根 求x=x0时,方程的解值

当方程中有一些复杂的函数时,Mathematica可能无法直接解来,在这种情况下我们可用FindRoot[]来求解,但要给出起始条件。

2、求方程组的根

使用Solve,NSolve,FindRoot也可求方程组的解,只是使用时格式略有不同。例如: 求解 {

2𝑥+𝑦=0

𝑥+3𝑦−3=0

3、求方程的全解

如果我们求a𝑥2+𝑏𝑥+c=0的根,我们用Solve函数的结果是:

因此,Solve,Roots只是给出方程的一般解,而Reduce函数可用给出方程的全部可能解。

4、解条件方程

在解方程的时候,可以把一个方程看作你要处理的主要方程,其它的方程作为满足的辅助条件,这样处理会很方便。

例如求解𝑥4+𝑏𝑥2+𝑐=0时,通常我们采用𝑥2=𝑦的代换方法求解方程。在

Mathematica中,我们通常首先命名辅助条件组,然后用名字把辅助条件包含在你要用函数Solve[],求解方程组。

九、求和与求积

在Mathematica中,求和用Sum表示,连乘用Product表示。求和求积函数的形式和意义如下:

Sum[f,{i, imin, imax}] Sum[f,{i, imin, imax, di}] Sum[f, {i, imin, imax},{j, jmin, jmax}] Product[f,{i, imin, imax}] Product[f,{i, imin, imax, di}] Product[f, {i, imin, imax},{j, jmin, jmax}] Nsum[f,{i, imin, Infinity}] NProduct[f, {i, imin, Infinity}] 例如:

求和∑imaxi=imin𝑓 以步长di增加i求和 求和∑𝑖𝑚𝑎𝑥𝑖=𝑖𝑚𝑖𝑛∑𝑗=𝑗𝑚𝑖𝑛𝑓 求积∏𝑖𝑚𝑎𝑥𝑖=𝑖𝑚𝑖𝑛𝑓 以步长di增加i求积 求积∏𝑖𝑚𝑎𝑥𝑖=𝑖𝑚𝑖𝑛∏𝑗=𝑗𝑚𝑖𝑛𝑓 求∑∞𝑖=𝑖𝑚𝑖𝑛𝑓近似值 求∏∞𝑖=𝑖𝑚𝑖𝑛𝑓近似值 𝑗𝑚𝑎𝑥𝑗𝑚𝑎𝑥

十、基本的二维图形

Mathematica在直角坐标系中作一元函数图形用下列基本命令。

Plot[f, {x, xmin, xmax}, option->value] 在指定区间上按选项定义值画出函数在直角坐标系中的图形。

Plot[{f1,f2,f3,…},{x, xmin, xmax}, option->value] 在指定区间上按选项定义值同时画出多个函数在直角坐标系中的图形。

Mathematica绘图时允许用户设置选项对绘制图形的细节提出各种要求,例如:要设置图形的高宽比,给图形加标题等,每个选项都有一个确定的名字,以“选项名->选项值”的形式放在Plot中的最右边位置,一次可设置多个选项,选项一次排列,用逗号隔开,也可以不设置选项,采用系统的默认值。

选项 AspectRatio AxesLabel PlotLabel PlotRange PlotStyle PlotPoint 说明 图形的高、宽比 给坐标轴加上名字 给图形加上标题 指定函数因变量的区间 用什么样方式作图(颜色、粗细等) 画图时计算的点数 默认值 1/0.618 不加 不加 计算的结果 值是一个表 25 1、下面举例说明:

绘制f(x)=

𝑠𝑖𝑛 𝑥2

的图形。 x+1

取消刻度可以使用Ticks选项

如果要标注坐标名称x轴为“Time”,y轴为“Height”

将竖轴移到(3,0)位置,并标注图形名称。

修改x方向的刻度,y轴方向的刻度则用默认值。

定义y轴的绘图范围

另外我们也可以将图形结果定义给变量,但不显示图形,后用Show命令显示。

2、数据集合的图形

Mathematica用于绘制数值集合的图形的命令与前面介绍的绘制函数图形的命令是相似的。如下: ListPlot[{y1,y2,…}] 绘制在x的值为1,2,…是y1,y2,…的图形 ListPlot[{x1,y1},{x2,y2},…] 绘制离散点(xi,yi) ListPlot[List,PlotJoined->True] 把离散点连成曲线

3、二维参数作图

前面我们使用Plot命令可以绘制直角坐标系下的函数图形,使用ParametrecPlot可以绘制参数曲线下面给出ParametricPlot的常用形式。

ParametricPlot[{fx,fy},{t,tmin,tmax}] ParametricPlot[{fx,fy},{gx,gy},…,{t,tmin,tmax}] ParametricPlot[{fx,fy},{t,tmin,tmax}, AspectRatio->Automatic] (1)绘制参数方程{

𝑥=sin3𝑡 𝑐𝑜𝑠𝑡

的图形。

𝑦=𝑠𝑖𝑛3𝑡 𝑠𝑖𝑛𝑡

绘制参数图 绘出一组参数图 设法保持曲线的型

(2)下面将一个圆与上面的参数绘在同一个坐标下,并保证图形的形状正确。

4、二维图形元素

用图形元素绘图适用于绘制结构复杂的图形,Mathematica中还提供了各种绘制点、线段、圆弧等函数,同样我们可先用Grahpics作出平面图形的表达式,再用Show显示生成的图形。

Point Line[{{x1,y1},{x2,y2}…}] Rectangle[{xmin,ymin},{xmax,ymax}] Polygon[{{x1,y1},{x2,y2},{x3,y3},…}] Circle[{x,y},r] Circle[{x,y},{rx,ry}] Circle[{x,y},r,{theta1,theta2}] Circle[{x,y},{rx,ry},{theta1,theta2}] Disk[{x,y},r] Raster[{{a11,a12,…},{a21,a22,…}…} Text[Expr,{x,y}] 点 线段 填充矩阵 填充多边形 圆 半轴分别为rx,ry的椭圆 圆弧 椭圆弧 填充圆 灰度在0到1之间的灰层组 文本大小 十一、微分

1、函数的微分

在Mathematica中,计算函数的微分或是非常方便的,命令为D[f,x]表示对x求函数f的导数或偏导数,该函数的常用格式有以下几种:

D[f,x] D[f,x1,x2,…] D[f,{x,n}] D[f,x,NonConstants->{v1,v2,…] 下面举例说明:

计算微分∂x ∂∂𝑛∂f计算多重偏微分∂x1𝜕𝑥2𝑓 计算n阶微分∂x𝑛𝑓 计算微分∂x,其中v1,v2,…依赖于x ∂f𝜕

对二元函数f(x,y)=𝑥2𝑦+𝑦2 求对x,y的一阶和二阶导数。

Mathematica也可以求符号的函数微分,通常结果使用数学上的表示法。例如:求x*g(x)的导数。

对复合函数求导同样可用:

如果要得到函数在某一点的导数值可以把这点代入导数。

2、全微分

在Mathematica中,D[f,x]给出f的偏导数,其中假定f中的其他变量与x无关。当f为单变量时,D[f,x]计算f对x的导数。函数Dt[f,x]给出f的全微分形式,并假定f中所有变量依赖于x。下面Dt命令的常用形式。

Dt[f] Dt[f,x] Dt[f,x1,x2,…] Dt[f,x,Constants->{c1,c2,…}]

求全微分df 求全微分df/dt 求多重全微分dd𝑓 dx1dx2求全微分其中c1,c2,…是常数 求𝑥2+𝑦2的偏微分和全微分

我们可以看出第一种情况y与x没有关系,第二种情况y是x的函数。再看下求多项式x2+x𝑦3+𝑦𝑧的全微分并假定z保持不变是常数。

十二、积分

1、不定积分

在Mathematica中计算不定积分Integerate[f,x],当然也可使用工具栏直接输入不定积分式,来求函数的不定积分。当然并不是所有的不定积分都能求出来,对于一些手工计算相当复杂的不定积分,Mathematica还是能轻易求得,例如

对于被积函数中出现的除积分变量外的函数,统统当作常数处理:

2、定积分

定积分的求解主要命令也是用Integrate,只是要在命令中加入积分限Integrate[f,{x,min,max}]或者使用工具栏输入也可以,例如求∫−4𝑥2𝑒𝑎𝑥𝑑𝑥

4

十三、微分方程

在Mathematca中,使用Dsolve[]可以求解线性和非线性微分方程,以及联立的微分方程组。在没有给定的方程的初值条件下,我们所得到的解包括C[1],C[2]是待定系数。求解微分方程就是寻找未知的函数表达式,在Mathematica中,函数用y[x]表示,其微分用𝑦[𝑥],𝑦,,[𝑥] 等表示。

下面给出微分方程(组)的求解函数

Dsolve[eqn,y[x],x] Dsolve[eqn,y,x] Dsolve[{eqn1,eqn2,…},{y1,y2,…},x]

1、用Dsolve求解微分方程y[x]

求解微分方程y[x] 求解微分方程函数y 求解微分方程组

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务