1 / 47

第 一 篇 Mathematica

第 一 篇 Mathematica. 基础知识 编写简单的 Mathematica 程序 图形处理(二维、三维及其参数方程的形式) 求解数学问题(极限、微分与积分、求解方程(组)、微分方程(组)、在线形代数方面的应用、数值处理) 文件及其它高级操作 Mathematica 与 C/C++ 、 .net 的结合. 第一章 基础知识. 一、 Mathematica3.0 界面及运行介绍 二、基本数值运算 1. 整数运算:加、减、乘、除、幂、阶乘 2. 数学常量: E 、 Pi 、 I 、 Degree 、 Infinity 3. 函数及数学函数

emory
Télécharger la présentation

第 一 篇 Mathematica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 一 篇Mathematica

  2. 基础知识 • 编写简单的Mathematica程序 • 图形处理(二维、三维及其参数方程的形式) • 求解数学问题(极限、微分与积分、求解方程(组)、微分方程(组)、在线形代数方面的应用、数值处理) • 文件及其它高级操作 • Mathematica与C/C++、.net的结合

  3. 第一章 基础知识 一、Mathematica3.0 界面及运行介绍 二、基本数值运算 1. 整数运算:加、减、乘、除、幂、阶乘 2. 数学常量:E、Pi、I、Degree、Infinity 3. 函数及数学函数 4. 浮点数及复数运算:N函数

  4. 三、变量及表达式 1. 变量的定义及清除 ◆ 变量的特点 (1) 变量的默认作用域是全局的 (2) 全局变量不需事先定义或声明 (3) 尽量避免使用下划线定义变量 2. 表达式“头”的概念: Head及Apply函数

  5. 3. 多项式及其操作 (1)定义、替换符操作 (2)常用操作: Expand、Factor、Together、Apart Simplify、Collect、Coefficient、 Exponent

  6. 四、序列及其操作 1. 序列的定义 2. 序列的生成:Table函数 3. 序列的操作 (1) 检测:Length、Count、Position (2) 添加删除:Append、Prepend、Insert、 Delete、DeleteCases (3) 取元素:Part、Take、Drop、Select

  7. 五、自定义函数 1. 一元函数 例: Clear[f,x] f[x_]:= x^2+4x-2 2. 多元函数 例: f[x_,y_]:= x^2+y^2-3 3. 迭代函数 例:f[n_]:= f[n-1]+f[n-2]; f[0]= 1; f[1]=1;

  8. 第二章 编程语言 1· 条件语句 ◆ 逻辑判断符 == >= <= > < != === =!=

  9. ◆ 逻辑运算符 ! || && ◆ /;运算符 x = a /;test 仅当test为True时才执行赋值语句 ◆ If 语句 语法:If [test, then, else] 若test为 True,则执行then,若test为False,则执行else.

  10. ◆ Which 语句 语法:Which [test1, value1, test2,…] 依次计算testi,给出对应第一个test为True 的value ◆ Switch[expr,form1,value1,form2,…] 比较expr与formi,给出与第一个form值匹配的value

  11. 例1. 定义如下的函数: • 使用 /; 定义: • f [x_]:= 0 /;x<=0 • f [x_]:= x /; x>0&&x<=2 • f [x_]:= x^2 /; x>2

  12. ② 使用 If 定义: f [x_]:= If [ x<=0, 0, If [x>2, x^2, x ] ] ③ 使用Which定义: f [x_]:= Which [ x<=0, 0, x>2, x^2, True, x ] 2· 输出语句Print

  13. 3· 循环语句 ◆ Do 语句 语法:Do[expr, {i, imin, imax, di}] 计算expr,i=imin,…,imax,步长为di ◆ While 语句 语法:While[test, body] 当test为True时,计算body

  14. ◆ For 语句 语法:For[start, test, incr, body] 以start为起始值,重复计算body和 incr,直到test为False时为止 ◆ 循环控制语句Break和Continue Break[] 退出最里面的循环 Continue[] 转入当前循环的下一步

  15. 第三章 图形处理 基本二维图形 ① Plot[ f, { x,xmin,xmax}],用于绘制形如y =f (x)的函数的图形。 当将多个图形绘制在同一坐标系上时,形如: Plot[{ f1,…,fn},{x,xmin,xmax}] 注意:有时需要使用Evaluate函数。

  16. 例:在同一坐标系下绘出 sinx, sin2x, sin3x, sin4x, sin5x 的图形。 常用的选项: PlotStyle->Hue[a] 设置线条颜色 PlotRange->{a,b} 控制显示范围 DisplayFunction控制图形显示 AspectRatio 图形的宽、高比 AxesOrigin 设置原点坐标

  17. 例:有如下的抛物线簇: 程序: Clear[a,y,x] v=200;g=9.8; y[a_,x_]:=Tan[a]*x-g*x^2*Sec[a]^2/(2v^2) Plot[Evaluate[Table[y[i,x],{i,Pi/12,5Pi/12, Pi/12}]],{x,0,4000}]

  18. ② ListPlot [List],用于绘制散点图。 注意,List的形式应为: 例:在同一坐标系下绘制下列两组散点图 p1={{0,0},{0,45},{5.3,89.6},{22.6,131.2}}; p2={{0,0},{2.68,44.8},{12.57,88.28},{27,130.3}}; 程序: g1=ListPlot[p1,PlotJoined->True, DisplayFunction -> Identity]; g2=ListPlot[p2,PlotJoined -> True, DisplayFunction -> Identity]; Show[g1,g2,DisplayFunction -> $DisplayFunction];

  19. ③ ParametricPlot [{ fx , fy},{t,tmin,tmax}] 用于绘制形如{x = fx(t) , y = fy(t)}的参数方程图形。 例:绘制以点(3,4)为圆心,半径为2的圆。 ParametricPlot[{3+2Cos[t],4+2Sin[t]}, {t,0,2Pi}] 可增加如下选项: AspectRatio->1, AxesOrigin->{0,0}

  20. 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=sinx·siny的等高线图和密度图

  21. 3. 三维图形 ①Plot3D[ f,{x,xmin,xmax},{y,ymin,ymax}] 绘制形如Z = f (x, y)的三维图形。 例:绘制以下的函数图形: Z = 10sin(x+siny) 命令:Plot3D[10 Sin[x+Sin[y]],{x,-10,10}, {y,-10,10}] 可增加选项: PlotPoints->40

  22. ② ParametricPlot3D [{ fx , fy , fz}, {t,tmin,tmax} ,{u,umin,umax}] 用于绘制形如{x = fx(t) , y = fy(t) , z = fz(t)}的参数图形。

  23. 4. 利用函数包绘制特殊图形 载入图形函数包的方法: <<类名`包名` 例:<<Graphics`Graphics` PolarPlot[r,{t,tmin,tmax}] 绘制极坐标图形 LogPlot[f,{x,xmin,xmax}] 画对数线性图 BarChart[list] 画出list的条形图 PieChart[list] 画出list的百分图

  24. 例:<<Graphics`ImplicitPlot` ImplicitPlot[eqn,{x,xmin,xmax}] 绘制形如 f (x,y)=0的隐函数图形 例:绘制以点(3,4)为圆心,半径为2的圆。 ImplicitPlot[(x-3)^2+(y-4)^2==2,{x,0,5}]

  25. 第四章 幂级数、极限、微分与积分 1. 幂级数展开 Series[expr,{x, xo ,n}] 求在点 x=xo处至多n 次的幂级数展开 例:求ex 在点 x=0处 x4级幂级数展开 注:使用Normal函数可以去掉级数中的极小项,从而转变成一般表达式。

  26. 例: 2. 极限 Limit[expr,x-> xo] 求 x 逼近 xo时expr的极限 某些函数在一点处的极限随逼近方向不同而不同,可用Direction选择方向: Limit[expr, x-> xo, Direction ->1] 左极限 Limit[expr, x-> xo,Direction-> -1] 右极限 例:求1/x 的左右极限

  27. 3. 微分 D[ f ,{x,n}] 求f 的n阶偏微分 Dt[ f ] 求f 的全微分 例:D[x^n,{x,3}] Dt[x^2+y^2] 例:y = xarctgx,求其100阶导数及其在0 点的值

  28. 4. 积分 Integrate[ f , x] 求f 的不定积分 Integrate[ f ,{x,xmin,xmax}] 求 f 的定积分 Integrate[ f ,{x,xmin,xmax}, {y,ymin,ymax}] 求 f 的多重积分 例:

  29. 第三章 线性代数 1. 构造矩阵和向量 Table[ f ,{i,m} ,{j,n}] 构造m×n矩阵,f 是 i, j的函数,给出[i, j]项值 Array[ f ,{m, n}] 构造m×n矩阵,[i, j] 项的值是 f [i, j] DiagonalMatrix[ List] 生成对角线元素为 List的对角矩阵 IdentityMatrix[n] 构造n阶单位阵

  30. 截取矩阵块 • M[[i]] 取矩阵M的第 i 行 • Map[#[[i]]&, M] 取矩阵M的第 i 列 • M[[i, j ]] 取矩阵M的i, j 位置的元素 • M[[{i1,…,ir}, {j1,…,js}]] 矩阵M的r×s子 矩阵,元素行标为ik,列标为jk • M[[Range{i0,i1}, Range{j0,j1}]] 矩阵M的从 i0到i1行, j0到j1列元素组成的子矩阵

  31. 3. 矩阵及向量的运算 M.N 对M、N做矩阵乘法(向量内积) M*N 将M、N的对应位置元素相乘 Outer[Times,M,N] 求M、N的外积 Dimensions[ M ] 给出矩阵M的维数 Transpose[ M ] 转置 Inverse[ M ] 求逆 Det[ M] 方阵M的行列式值

  32. MatrixPower[M,n] n阶矩阵幂 MatrixExp[M] 矩阵指数 Eigenvalues[ M ] M的特征值 Eigenvectors[M] M的特征向量

  33. 第四章 求解方程(组)、微分方程(组) 1. 求解多项式方程(组) Solve[ eqns ,vars] 求解多项式方程 Solve[{eqn1,…eqnn}, {var1,…varn}] 求解多项式方程组 注:Solve只能给出多项式方程(组)的解,因此它们只适用于幂次不高、规模不大的多项式方程(组)。

  34. NSolve[ eqns ,vars] 求多项式方程的数值解 NSolve[{eqn1,…eqnn}, {var1,…varn}] 求多项式方程组的数值解 对于数值解,可以直接用NSolve求解 例:求解以下方程(组) x2+ax=2 x3+34x+1=0 x5-1331x+11= 0

  35. 2. 求解微分方程(组) DSolve[ eqns ,y[x], x] 求解y[x]的微分方程 DSolve[ eqns ,y, x] 以纯函数的形式给出y的解 DSolve[{eqn1, eqn2,…}, {y1, y2, …}, x] 求解微分方程组 例:求解以下微分方程(组) y’ = y y’’- ky =1

  36. 第五章 数值处理 • 1. 数值积分 • NIntegrate[expr , {x,xmin,xmax}] • 注意,NIntegrate直接计算数值积分,不先给出符号结果,而Integrate[…]//N会尽可能的先求精确解的形式。 • 数值根求解 • FindRoot[lhs==rhs , {x, x0}] 以x0为初始点求方程的数值解

  37. FindRoot[lhs==rhs , {x, {x0 ,x1}}] 给出两个 初值求数值根(方程的符号导数无法求出 时,必须使用此形式) FindRoot[{eqn1, eqn2,…}, {x, x0},{y, y0 }, …] 对联立方程 eqni 求数值解 例:求解下列方程(组) cosx =x x600+5x+3=0

  38. 3. 微分方程数值解 NDSolve[{eqn1, eqn2,…}, y,{x,xmin,xmax}] 求函数y的数值解,x的范围为{xmin,xmax} NDSolve[{eqn1, eqn2,…},{y1, y2, …}, {x,xmin,xmax}]求函数yi的数值解 注:以上两种形式用于求解常微分方程(组) NDSolve以InterpolatingFunction目标生成函数yi的解。 InterpolatingFunction目标提供独立变量x在xmin到xmax范围内yi的近似值。

  39. 例:求解以下微分方程(组)并画出函数y的图形例:求解以下微分方程(组)并画出函数y的图形

  40. NDSolve[{eqn1, eqn2,…}, y,{x,xmin,xmax}, {t,tmin,tmax}]求由函数y构成的偏微分方 程的数值解 NDSolve[{eqn1, eqn2,…},{y1, y2, …}, {x,xmin,xmax} ,{t,tmin,tmax}]求由函数yi构 成的偏微分方程组的数值解 例:求下面微分方程的数值解并绘图。

  41. 4. 极大极小值 ConstrainedMax[f, {inequalities}, {x, y, …}] ConstrainedMax[f, {inequalities}, {x, y, …}] 求由目标函数 f 和不等式约束inequalities构成的线形规划 例:ConstrainedMax[x+y,{x<1,y<2},{x, y}] FindMinimum[f, {x, x0}]以x0为初始点,求函数的局部极小值 注:FindMinimum的用法与FindRoot完全相同。

  42. Minimize和NMinimize用于求解带约束条件的极值问题Minimize和NMinimize用于求解带约束条件的极值问题

  43. 5. 曲线拟合 Fit [data, funs, vars] 用变量为vars的函数funs拟合一组数据data 例:points={{0,-1},{1,2},{3,7},{4,6},{7,9},{11,14}}; 注:5.0 及以上版本可用FindFit函数代替

  44. 第五章 文 件 及 相 关 操 作 1. 目录及文件操作 SetDirectory[“dir”] 设定当前工作目录 FileNames[“form”] 列出符合形式的文件 CopyFile[“file1”, “ file2 ”] DeleteFile[“file”]

  45. 2. 数据文件的读入和输出 ReadList[“file”,type] 从文件中读入数据 “file”为文件名,可以包含路径 type为数据类型,常用的如:Number, String,Character等 3. 局部变量 Block[{x=x0, y=y0,……},body]

More Related