数学软件Mathematica的应用.docx
《数学软件Mathematica的应用.docx》由会员分享,可在线阅读,更多相关《数学软件Mathematica的应用.docx(14页珍藏版)》请在冰豆网上搜索。
![数学软件Mathematica的应用.docx](https://file1.bdocx.com/fileroot1/2023-2/1/bbebb285-6eef-4b9b-ac76-41cc05580bbf/bbebb285-6eef-4b9b-ac76-41cc05580bbf1.gif)
数学软件Mathematica的应用
数学软件Mathematica的应用
一、数学软件Mathematica简介
★Mathematica是由美国Wolfram公司研究开发的一款著名的数学软件;
★Mathematica能够完成符号运算、数学图形的绘制等,功能非常强大;
★Mathematica能够做精确计算;
★Mathematica的界面操作非常友好;
★Mathematica是数学建模常用的数学软件之一。
二、利用模板进行微积分运算
File(文件)→Palettes(模板)→BasicInput(基本输入)
File(文件)→Palettes(模板)→BasicCalculations(基本计算)
三、Mathematica中一些常用的函数
(1)数学常数
数学常数
意义
Pi
π=3.97932…
E
自然对数的底,e=2.71828…
I
虚数单位,I=
Infinity
无穷大∞
(2)数学函数
变量可为实数或复数的函数
意义
Exp[z]
指数函数ex
Log[z]
以e为底的对数函数lnz
Log[b,z]
以b为底的对数函数logbz
Sin[z],Cos[z],Tan[z],Cot[z],Csc[z],Sec[z]
三角函数
ArcSin[z],ArcCos[z],ArcTan[z],
ArcCot[z],ArcCsc[z],ArcSec[z]
反三角函数
Sinh[z],Cosh[z],Tanh[z],Coth[z],Csch[z],Sech[z]
双曲函数
ArcSinh[z],ArcCosh[z],ArcTanh[z],
ArcCoth[z],ArcCsch[z],ArcSech[z]
反双曲函数
(3)数值函数
数值函数
意义
Floor[x]
取整函数
Abs[x]
绝对值函数
Sign[x]
符号函数
Max[x1,x2,…,xn]或Max[list]
取最大值,list为一集合
Min[x1,x2,…,xn]或Max[list]
取最小值,list为一集合
Mod[m,n]
m用n除的余数
FactorInteger[n]
把整数n分解为素数的乘积
GCD[n1,n2,…]或GCD[s]
最大公约数,s为一集合
LCM[n1,n2,…]或LCM[s]
最小公倍数,s为一集合
Prime[k]
第k个素数
PrimeQ[n]
当n是素数时返回True,否则返回False
n!
阶乘n(n-1)(n-2)…
n!
!
双阶乘n(n-2)(n-4)…
Binomial[n,m]
二项式系数
(4)表操作函数
表格函数
意义
Table[f,{i,min,max,step}
给出f的数值表(其它形式可参考
(1))
Table[f,{i,m},{j,n}]
生成一个多维表(f是i,j的函数)
Range[n]
生成数列{1,2,3,…,n}
Range[n1,n2,d]
生成数列{n1,n1+d,n1+2d,…n2}
Array[a,n]
定义一个n维数组a(a是数组名)
Array[a,{m,n}]
定义一个m*n维数组a
t[[n]]
表t中的第n个子表
First[list]
表list中的第一个元素
Last[list]
表list中的最后一个元素
t[[i,j]]
表t的第i个子表的第j个元素
t[[{n1,n2,n3,…}]]
表t中第n1,n2,n3,…个元素组成的表
Join[list1,list2,…]
连接表
Union[lsit1,list2,…]
求并集
Sort[list]
排序
Apply[Plus,list]
把list中的所有元素相加
(5)代数函数
函数
意义
Solve[方程,未知数]
求解方程的精确解
NSolve[方程,未知数]
给出方程的数值解
Solve[{方程组},{未知数列表}]
求解方程组的精确解
NSolve[{方程组},{未知数列表}]
给出方程组的数值解
Expand[多项式]
把多项式展开
Factor[多项式]
把多项式分解因式
Simplify[多项式]
把多项式写成最简形式
Collect[多项式,x]
把多项式按x的升幂排列
Expand[分式]
展开分子,每项除以分母
ExpandAll[分式]
分子和分母完全展开
Together[分式]
通分
Apart[分式]
把分式分解为最简分式之和
Cancel[分式]
约分
Factor[分式]
分母和分子都分解因式
Sum[fi,{i,min,max}]
计算和式
Product[fi,{i,min,max}]
计算乘积
(6)微积分运算函数
函数
意义
Limit[expr,x->x0]
计算函数expr当x->x0时的极限
Limit[expr,x->x0,Direction->1]
计算左极限:
方向从0到1
Limit[expr,x->x0,Direction->-1]
计算右极限:
方向从0到-1
D[f,x]
计算一阶导数f’(x)
D[f,{x,n}]
计算n阶导数f(n) (x)
D[f,x1,x2,…]
计算多重偏导数
D[f,{x1,n1},{x2,n2},…]
计算多重混合高阶偏导数
Dt[f]
求全微分df
Integrate[f,x]
计算不定积分
Integrate[f(x),{x,a,b}]
计算定积分
Nintegrate[f(x),{x,a,b}]
用数值计算方法计算定积分
Integrate[f(x,y),{x,a,b},{y,c,d}]
计算二重积分
NIntegrate[f(x,y),{x,a,b},{y,c,d}]
用数值计算方法计算二重积分
Integrate[f(x,y,z),{x,x0,x1},{y,y1,y2},{z,z1,z2}]
计算三重积分
NIntegrate[f(x,y,z),{x,x0,x1},{y,y1,y2},{z,z1,z2}]
用数值计算方法计算三重积分
Series[f(x),{x,x0,n}]
把f(x)在x=x0展开直到x的n次幂
Series[f(x,y),{x,x0,n1},{y,y0,n2}]
把二元函数f(x,y)展开
Normal[幂级数]
去掉幂级数中的误差项O[x]n,得到一多项式
DSolve[微分方程或初值条件,y[x],x]
解y(x)的微分方程,x为变量
DSolve[{微分方程组或初值条件},{x[t],y[t]},t]
解微分方程组,t为变量
NDSolve[{方程1,方程2,…},y[x],{x,xmin,xmax}]
求微分方程在指定区间的数值解
(7)作图函数
函数
意义
Plot[函数f(x),{x,xmin,xmax},选项]
在区间[xmin,xmax]作出函数f(x)的图形
Plot[{函数1,函数2,…},{x,xmin,xmax},选项]
在区间[xmin,xmax]上作出多个函数的图形
ParametricPlot[{x[t],y[t]},{t,t0,t1},选项]
画参数曲线
在t∈[t0,t1]的图形
Plot3D[f[x,y],{x,x0,x1},{y,y0,y1},选项]
在区域上x∈[x0,x1],y∈[y0,y1]绘出空间曲面z=f(x,y)的图形
Plot3D[{f[x,y],g(x,y)},{x,x0,x1},{y,y0,y1},选项]
同时绘出多个曲面的图形
ParametricPlot3D[{x(u,v),y(u,v),z(u,v)},{u,u0,u1},{v,v0,v1},选项]
绘出空间参数曲面x=x(u,v),y=y(u,v),z=z(u,v)的图形
ParametricPlot3D[{x(t),y(t),z(t)},{t,t0,t1},选项]
绘出空间参数曲线x=x(t),y=y(t),z=z(t)的图形
数据作图函数
意义
ListPlot[{x1,y1},{x2,y2},…]
画出数据点(x1,y1),(x2,y2),…
ListPlot[数据,PlotJoined->True]
画一条通过数据点的光滑曲线
ListPlot3D[{x1,y1,z1},…]
画出数据点(x1,y1,z1),…
图形显示函数
意义
Show[图形]
显示定义的图形
Show[图形,选项->选项值]
改变选项显示图形
Show[图形1,图形2,…]
组合图形
Show[ContourGraphics[g]]
将图形g转换成等值线图
Show[DensityGraphics[g]]
将图形g转换成密度图
(8)数值分析函数
下面是其常用的几种形式:
拟合函数形式
意义
Fit[拟合数据,用于拟合的函数列表,变量]
拟合函数一般形式
Fit[data,{1,x},x]
作线性拟合a+bx
Fit[data,{1,x,x^2},x]
构造二次拟合a+bx+cx2
Fit[data,Table[x^i,{i,0,n}],x]
n次多项式拟合
Exp[Fit[Log[data],{1,x},x]]
拟合曲线为ea+bx
函数
意义
FindRoot[方程,{x,x0}]
从x=x0开始,计算方程的一个数值解
FindRoot[方程,{x,x0,xmin,xmax}]
求根区间围(xmin,xmax)
FindRoot[{方程组},{x,x0},{y,y0},…]
计算方程组的一个数值解
函数
意义
FindMinimum[f,{x,x0}]
以x=x0为起始点计算f的一个局部极小值
FindMinimum[f,{x,{xs,x0,x1}}]
xs为起始点,在区间(x0,x1)上求f的极小值
FindMinimum[f,{x,x0},{y,y0},…]
计算多元函数的极小值
FindMaximum[f,{x,x0}]
以x=x0为起始点计算f的一个局部极大值
FindMaximum[f,{x,{xs,x0,x1}}]
xs为起始点,在区间(x0,x1)上求f的极大值
FindMaximum[f,{x,x0},{y,y0},…]
计算多元函数的极大值
函数
意义
NMinimize[f,{x,y,…}]
求自变量为x,y,…的函数f的最小值
NMinimize[{f,cons},{x,y,…}]
求满足约束条件cons的函数f的最小值
NMaximize[f,{x,y,…}]
求自变量为x,y,…的函数f的最大值
NMaximize[{f,cons},{x,y,…}]
求满足约束条件cons的函数f的最大值
(9)编程相关
关系运算符
意义
逻辑运算符
意义
==
等于
!
非
!
=
不等于
&&
且
>
大于
||
或
>=
大于等于
Xor
异或
<
小于
<=
小于等于
在Mathematica中,一个逻辑表达式的值有三个:
真(True)、假(False)和“非真非假”。
条件控制函数If
(1)If语句的结构与一般的程序设计语言中的If的结构类似。
它有三种情况:
If[逻辑表达式,表达式1]
当逻辑表达式的值为真时则计算表达式1,表达式1的值就是整个If结构的值;
If[逻辑表达式,表达式1,表达式2]
当逻辑表达式的值为真时则计算表达式1,为假时则计算表达式2;
If[逻辑表达式,表达式1,表达式2,表达式3]
当逻辑表达式的值为真时则计算表达式1,为假时则计算表达式2,其它情况则计算表达式3。
循环控制语句
Mathematica中有3种描述循环的语句,它们是Do,While和For语句。
下面是其一般形式:
For[初值,条件,修正,循环体]
While[条件,循环体]
Do[循环体,{循环围}]
四、结合图形进行分析
1.作出函数
在区间
上的图像,观察当
时函数的变化情况;
作出函数
在区间
上的图像,观察当
时函数的变化情况;
2.作出双曲抛物面
的图形;
3.作weierstracs函数
(处处连续但处处不可导)的图像;
4.求出非线性方程组
在围x∈(-5,5),y∈(-5,5)的所有根;
五、验证与探索
1.
的泰勒级数
2.
的无穷乘积猜想
六、算法与程序
1.分形图(迭代)
2.将矩阵化为行最简形(步骤)
七、实际问题的Mathematica求解
1.椭圆弧长的计算问题
计算椭圆
的弧长及近似值。
解:
假设
,则
记
(即离心率的平方),则
记
,称为第二类椭圆积分,则
2.汽车保有量的预测
年份
时间t
私家汽车保有量(万辆)
1996
1
3.1
1997
2
3.6
1998
3
4.2
1999
4
4.8
2000
5
6.7
2001
6
9.1
2002
7
13
2003
8
18.9
2004
9
29
2005
10
51.1
2006
11
78.2
2007
12
113
试预测2010年我国私家汽车保有量大概是多少?
八、数学建模与数学计算的重要性
★高技术本质上是数学技术;
★21世纪是科学和工程数学化的世纪;
★把对外部世界各种现象或事件的研究化归为数学问题的数学建模的方法在各种研究方法,特别是与电子计算机的出现有关的研究方法中,占有主导地位;
★数学建模的方法能使人们在解决复杂的科学技术问题时设计出在最佳情势下可行的新的技术手段,并且能预测新的现象;
★数学建模和与之相伴的计算正在成为工程设计中的关键工具。
附:
分形图局部逐渐放大图