《数学软件选讲ppt课件.ppt》由会员分享,可在线阅读,更多相关《数学软件选讲ppt课件.ppt(77页珍藏版)》请在三一办公上搜索。
1、数 学 软 件 选 讲,MathematicaMatlabSAS,第 一 篇Mathematica,基础知识作为一门新的编程语言图形处理(二维、三维及其参数方程的形式)极限、微分与积分求解方程(组)、微分方程(组)在线形代数方面的应用数值处理文件及其它高级操作,第一章基础知识,一、Mathematica3.0 界面及运行介绍二、基本数值运算1. 整数运算:加、减、乘、除、幂、阶乘2. 数学常量:E、Pi、I、Degree、Infinity3. 函数及数学函数4. 浮点数及复数运算:N函数,三、变量及表达式1. 变量的定义及清除 变量的特点(1)变量的默认作用域是全局的(2)全局变量不需事先定义
2、或声明(3)尽量避免使用下划线定义变量2. 多项式及其操作 (1) 定义、替换符操作,(2) 常用操作:Expand、Factor、Together、PartSimplify、Collect、Coefficient、Exponent四、序列及其操作1. 序列的定义2. 序列的生成:Table函数3. 序列的操作,(1) 添加删除:Append、Prepend、Insert、Delete、DeleteCases (2) 取元素:Part、Take、Drop、Select (3) 检测:Length、Count、Position五、表达式“头”的概念:Head及Apply函数,六、自定义函数 1.
3、 一元函数例: Clearf,xfx_:= x2+4x-2 2. 多元函数例: fx_,y_:= x2+y2-3 3. 迭代函数例:fn_:= fn-1+fn-2;f0= 1; f1=1;,1 条件语句 逻辑判断符=!=!=,第二章编程语言, 逻辑运算符!|test仅当test为True时才执行赋值语句 If 语句语法:If test, then, else若test为 True,则执行then,若test为False,则执行else., Which 语句语法:Which test1, value1, test2,依次计算testi,给出对应第一个test为True 的value Switch
4、expr,form1,value1,form2,比较expr与formi,给出与第一个form值匹配的value,例1. 定义如下的函数:,使用 /; 定义:f x_:= 0 /;x0 x2, 使用 If 定义:f x_:= If x2, x2, x 使用Which定义:f x_:= Which x2, x2, True, x 2 输出语句Print,3 循环语句 Do 语句语法:Doexpr, i, imin, imax, di计算expr,i=imin,imax,步长为di While 语句语法:Whiletest, body当test为True时,计算body, For 语句语法:For
5、start, test, incr, body以start为起始值,重复计算body和incr,直到test为False时为止 循环控制语句Break和ContinueBreak退出最里面的循环Continue转入当前循环的下一步,基本二维图形 Plot f, x, xmin, xmax,用于绘制形如y =f (x)的函数的图形。当将多个图形绘制在同一坐标系上时,形如: Plot f1, fn,x, xmin, xmax注意:有时需要使用Evaluate函数。,第三章图形处理,例:在同一坐标系下绘出sinx, sin2x, sin3x, sin4x, sin5x的图形。常用的选项:PlotSt
6、yleHuea设置线条颜色PlotRangea,b控制显示范围DisplayFunction控制图形显示AspectRatio图形的宽、高比AxesOrigin设置原点坐标,程序:Cleara,y,xv=200;g=9.8;ya_,x_:=Tana*x-g*x2*Seca2/(2v2)PlotEvaluateTableyi,x,i,Pi/12,5Pi/12,Pi/12,x,0,4000,例:有如下的抛物线簇:, ListPlot List,用于绘制散点图。 注意,List的形式应为:,例:在同一坐标系下绘制下列两组散点图p1=0,0,0,45,5.3,89.6,22.6,131.2;p2=0,
7、0,2.68,44.8,12.57,88.28,27,130.3;程序:g1=ListPlotp1,PlotJoined-True,DisplayFunction - Identity;g2=ListPlotp2,PlotJoined - True,DisplayFunction - Identity;Showg1,g2,DisplayFunction - $DisplayFunction;, ParametricPlot fx , fy,t,tmin,tmax 用于绘制形如x = fx(t) , y = fy(t)的参数方程图形。例:绘制以点(3,4)为圆心,半径为2的圆。Parametri
8、cPlot3+2Cost,4+2Sint,t,0,2Pi可增加如下选项:AspectRatio-1, AxesOrigin-0,0,2.其它二维图形 ContourPlot f, x,xmin,xmax, y,ymin,ymax,用于绘制形如z =f (x, y)的函数的等高线图。 DensityPlot f, x,xmin,xmax, y,ymin,ymax,用于绘制形如z =f (x, y)的函数的密度图。例:绘制函数 f=sinxsiny的等高线图和密度图,3.三维图形 Plot3D f,x,xmin,xmax,y,ymin,ymax绘制形如Z = f (x, y)的三维图形。例:绘制以
9、下的函数图形: Z = 10sin(x+siny)命令:Plot3D10 Sinx+Siny,x,-10,10,y,-10,10可增加选项:PlotPoints-40, ParametricPlot3D fx , fy , fz,t,tmin,tmax ,u,umin,umax 用于绘制形如x = fx(t) , y = fy(t) , z = fz(t)的参数图形。,4.利用函数包绘制特殊图形载入图形函数包的方法:类名包名例:GraphicsGraphics PolarPlotr,t,tmin,tmax绘制极坐标图形 LogPlotf,x,xmin,xmax画对数线性图 BarChartli
10、st画出list的条形图 PieChartlist画出list的百分图,例:GraphicsImplicitPlot ImplicitPloteqn,x,xmin,xmax绘制形如f (x,y)=0的隐函数图形例:绘制以点(3,4)为圆心,半径为2的圆。ImplicitPlot(x-3)2+(y-4)2=2,x,0,5,第二章幂级数、极限、微分与积分,1.幂级数展开Seriesexpr,x, xo ,n求在点 x=xo 处至多n次的幂级数展开例:求ex 在点 x=0处 x4 级幂级数展开注:使用Normal函数可以去掉级数中的极小项,从而转变成一般表达式。,2.极限 Limitexpr,x-
11、xo求 x 逼近 xo时expr的极限,某些函数在一点处的极限随逼近方向不同而不同,可用Direction选择方向: Limitexpr, x- xo, Direction - 1 左极限 Limitexpr, x- xo,Direction- -1 右极限例:求1/x 的左右极限,例:,3. 微分D f ,x,n求f 的n阶偏微分 Dt f 求f 的全微分例:Dxn,x,3 Dtx2+y2例:y = xarctgx,求其100阶导数及其在0 点的值,4. 积分Integrate f , x求f 的不定积分Integrate f ,x,xmin,xmax求 f 的定积分Integrate f
12、,x,xmin,xmax, y,ymin,ymax求 f 的多重积分例:,第三章线性代数,1.构造矩阵和向量Table f ,i,m ,j,n构造mn矩阵,f 是i, j的函数,给出i, j项值Array f ,m, n构造mn矩阵,i, j项的值是 f i, jDiagonalMatrix List生成对角线元素为List的对角矩阵IdentityMatrixn构造n阶单位阵,截取矩阵块 Mi取矩阵M的第 i 行Map#i&, M取矩阵M的第 i 列 Mi, j 取矩阵M的i, j 位置的元素 Mi1,ir, j1,js矩阵M的rs子矩阵,元素行标为ik,列标为jk MRangei0,i1,
13、 Rangej0,j1 矩阵M的从 i0到i1行, j0到j1列元素组成的子矩阵,3.矩阵及向量的运算M.N对M、N做矩阵乘法(向量内积)M*N将M、N的对应位置元素相乘OuterTimes,M,N求M、N的外积Dimensions M 给出矩阵M的维数Transpose M 转置Inverse M 求逆Det M 方阵M的行列式值,MatrixPowerM,nn阶矩阵幂MatrixExpM矩阵指数Eigenvalues M M的特征值EigenvectorsMM的特征向量,第四章求解方程(组)、微分方程(组),1.求解多项式方程(组)Solve eqns ,vars求解多项式方程Solvee
14、qn1,eqnn, var1,varn求解多项式方程组注:Solve只能给出多项式方程(组)的解,因此它们只适用于幂次不高、规模不大的多项式方程(组)。,NSolve eqns ,vars 求多项式方程的数值解NSolveeqn1,eqnn, var1,varn求多项式方程组的数值解对于数值解,可以直接用NSolve求解例:求解以下方程(组)x2+ax=2x3+34x+1=0 x5-1331x+11= 0,2.求解微分方程(组)DSolve eqns ,yx, x求解yx的微分方程DSolve eqns ,y, x 以纯函数的形式给出y的解DSolveeqn1, eqn2, y1, y2, ,
15、 x 求解微分方程组例:求解以下微分方程(组)y = y y k y =1,第五章数值处理,1.数值积分NIntegrateexpr , x,xmin,xmax注意,NIntegrate直接计算数值积分,不先给出符号结果,而Integrate/N会尽可能的先求精确解的形式。数值根求解FindRootlhs=rhs , x, x0 以x0为初始点求方程的数值解,FindRootlhs=rhs , x, x0 ,x1给出两个初值求数值根(方程的符号导数无法求出时,必须使用此形式)FindRooteqn1, eqn2, x, x0,y, y0 , 对联立方程 eqni 求数值解例:求解下列方程(组)
16、 cosx =xx600+5x+3=0,3.微分方程数值解NDSolveeqn1, eqn2, y,x,xmin,xmax求函数y的数值解,x的范围为xmin,xmaxNDSolveeqn1, eqn2,y1, y2, ,x,xmin,xmax求函数yi的数值解注:以上两种形式用于求解常微分方程(组) NDSolve以InterpolatingFunction目标生成函数yi的解。 InterpolatingFunction目标提供独立变量x在xmin到xmax范围内yi的近似值。,例:求解以下微分方程(组)并画出函数y的图形,NDSolveeqn1, eqn2, y,x,xmin,xmax,
17、 t,tmin,tmax求由函数y构成的偏微分方 程的数值解NDSolveeqn1, eqn2,y1, y2, ,x,xmin,xmax ,t,tmin,tmax求由函数yi构成的偏微分方程组的数值解例:求下面微分方程的数值解并绘图。,4.极大极小值ConstrainedMax f, inequalities, x, y, ConstrainedMax f, inequalities, x, y, 求由目标函数 f 和不等式约束inequalities构成的线形规划例:ConstrainedMaxx+y,x1,y2,x, yLinearProgramming c, m, b求使cx在约束mxb
18、和x0下取最小值的矢量x,FindMinimum f, x, x0以x0为初始点,求函数的局部极小值注:FindMinimum的用法与FindRoot完全相同。,5.曲线拟合Fit data, funs, vars用变量为vars的函数funs拟合一组数据data,第 二 篇Matlab,第一章矩阵及其基本运算,一、矩阵的表示1实数值矩阵生成 2复数矩阵生成3. 符号矩阵的生成用sym函数或syms函数 4. 大矩阵的生成.m文件及函数的定义,5. 特殊矩阵的生成全零阵、全1阵、单位阵:zeros,eye,ones 随机矩阵:均匀分布:rand标准正态分布:randn线性等分向量:linspa
19、ceHilbert矩阵:hilb 魔方矩阵:magic,二、矩阵操作1取矩阵中的元素 2增加及删除矩阵中的元素3矩阵的旋转与变形三、矩阵运算1. 加减法运算2. 乘法运算, 矩阵乘法 数组乘法(数乘) 向量内积、外积、叉乘* 矩阵的卷积与解卷、张量积 3. 集合运算并:union 返回a、b的并集,即c = ab 交:intersect 返回向量a、b的公共部分,即c= ab差:setdiff 返回属于a但不属于b的不同元素的集合,C = a-b 交集的非: setxor,检测集合中的元素: ismember 4. 除法运算左除:右除:/x=Ab是方程 Ax =b的解x=b/A是方程 xA=b
20、的解。 5. 矩阵乘方 6. 矩阵函数expmlogmsqrtm,7. 方阵的行列式:det 8. 方阵的逆:inv 9. 矩阵的迹:trace 10. 矩阵的秩:rank 11. 矩阵和向量的范数 norm欧几里德范数norm(x,inf )无穷范数 12. 其它运算,四、矩阵分解1LU分解:L,U=lu(X) U为上三角阵,L为下三角阵或其变换形式,满足LU=X 2QR分解:Q,R=qr(A)求得正交矩阵Q和上三角阵R,Q和R满足A=QR3特征值分解V,D=eig(A) 计算A的特征值对角阵D和特征向量V,使AV=VD成立五、其它二次型、秩与线性相关性、稀疏矩阵,第二章Matlab语言基础
21、,一、M文件1脚本文件:在Matlab的工作空间内对数据进行操作。2函数文件:可接受输入参数并返回输出参数,其内的变量不占用Matlab工作空间,第一行包含function注: M文件的调用以文件名为准。%为Matlab的注释符,其后的语句不执行(只对当前行有效)。,二、Matlab语言1逻辑判断符=isequal函数2逻辑运算符&| 3条件语句 if-else语句 switch-case语句,4循环语句 for语句 while语句三、编程技巧1.调试程序2.输入输出参数nargin、nargout,第三章Matlab图形处理,一、二维图形 1. 基本二维图形Plot用法如下:a.Plot (
22、X)b.Plot (X,Y)c.Plot (X1,Y1,X2,Y2,) d.Plot (X1,Y1,LineSpec1,X2,Y2, X3,Y3, ),其中参数LineSpec定义线条的属性。Matlab中可以对线条定义如下的特性:a.线型: -(实线) - (划线) :(点线) -. (点划线)b.线条宽度: LineWidthc.颜色d.标记类型e.标记大小:Markersize,fPlot在指定的范围limits内画出一元函数y=f (x)的图形用法:fplot(function,limits)注意:函数function必须是一个M文件函数或者是一个包含变量 x,且能用函数eval计算的
23、字符串。例:在同一坐标系下绘制tgx和的sinx图形fplot(tan(x),sin(x),-1,1,0,2*pi)注意坐标系调整函数axis的作用和用法,2. 图形标注title为图形添加标题xlabel为x轴加标注ylabel为y轴加标注text在指定位置上添加文本字符串gtext用鼠标在图形上放置文本legend为图形添加图例,3. 特殊二维图形polar 画极坐标形式函数r = f ()的极坐标图用法如下:polar(theta,rho,LineSpec) 例:t = 0:.01:2*pi;polar(t,sin(3*t).*cos(2*t),-r)4. 其它二维图形pie用x中的数据
24、画一饼形图,semilogxx轴对数图形loglog 双对数图形bar 用二维垂直条形显示向量或矩阵中的值barh 用二维水平条形显示向量或矩阵中的值hist 二维条形直方图,可以显示出数据的分 配情形,二、三维图形 1. 曲面与网格图形命令mesh生成由X,Y和Z指定的网线面在使用该命令前应先用meshgrid函数生成可用 于计算函数值的矩阵网格。通常用法如下:X,Y =meshgrid(a)Z= f (X,Y)mesh(X,Y,Z),2. 三维图形的其它形式contour曲面的等高线图pie3三维饼图surf 在矩形区域内显示三维带阴影曲面图quiver 矢量图或速度图surfnorm 计
25、算与显示三维曲面的法线,第四章Matlab应用,一、多项式运算二、极限limit (F, x, a, right ) x趋向于a时F的极限三、导数diff (S, v, n),四、积分 1.符号积分a. 不定积分 int (S, v)b. 定积分 int (S, v, a,b) 2.数值积分a. 一元函数 quad ( fun,a,b)自适应Simpson法 trapz ( X, Y )梯形法,b. 二元函数dblquad ( fun,xmin,xmax,ymin,ymax)在矩形区域xmin,xmax,ymin,ymax上计算二元函数z=f (x,y)的二重积分quad2ggen ( fun
26、,xlower,xupper,ylower,yupper)在任意区域xlower,xupper,ylower,yupper上计算二元函数z=f (x,y)的二重积分,五. 插值a. interp1( X,Y,xi,method) 一维数据插值b. interp2( X,Y,Z,xi, yi,method) 二维数据插值例:已知1900年到2019年每隔十年的数据如下:75.995 91.972 105.711 123.203 131.669 150.697179.323 203.212 226.505 249.633 256.344 267.893用插值法求2019年的数据。,六、方程(组)求
27、解 1. 方程(组)的符号解solve (eq)求方程的符号解solve (eq1,eq2,eqn)求方程组的符号解例:solve(x2+3x-6)solve(-x2*y+3*x-6,x+y2-1) 2.方程(组)的数值解fzero (fun,x0)用数值方法求方程根,fsolve(fun,x0)用数值方法求方程根 例:求下列方程的根,解:先建立方程函数文件,并保存为myfun.mfunction F = myfun(x)F = 2*x(1) - x(2) - exp(-x(1); -x(1) + 2*x(2) - exp(-x(2);然后调用优化程序x0 = -5; -5; % 初始点x,f
28、val = fsolve(myfun,x0,options),七、积分变换 1. Fourier积分变换F = fourier( f )对符号单值函数 f 中的缺省变量 x(由命令findsym确定)计算Fourier变换形式例:syms x w u vf = sin(x)*exp(-x2)F = fourier(f)注:用eval函数计算得出的表达式f = ifourier(F) 逆Fourier积分变换Y = fft(X)快速Fourier变换,2. Laplace变换L = laplace(F) 输出参量L = L(s)为有缺省符号自变量t的标量符号对象F的Laplace变换例:syms
29、 x s t vf1= sqrt(t); L1 = laplace(f) F = ilaplace(L) 逆Laplace变换3. Z变换F = ztrans(f )对缺省自变量为n的单值函数f计算z-变换,八、求解微分方程(组) 1. 常微分方程(组)符号解dsolve(eq1,eq2, ) 缺省独立变量为t例:dsolve(Dy=1+y2,y(0)=1)dsolve(D3u=u,u(0)=1,Du(0)=-1,D2u(0)=pi) 2. 常微分方程(组)数值解ode45、ode23、ode113、ode15s、ode23s、de23t、ode23tb,3. 偏微分方程数值解 assempde单的Poission方程(一类特殊的椭圆型方程),能求解的方程形如:,,, hyperbolic仅能求解如下形式的双曲型方程:,,, parabolic仅能求解如下形式的抛物型方程:,,,九、极值问题(优化工具箱) 1. 无条件极值问题fminu ( fun, x0 ,options) 2. 条件极值问题constr ( fun, x0 ,options) 3. 有界条件问题constr ( fun, x0 ,options, VLB, VUB),