1 / 165

MATLAB 与科学计算

MATLAB 与科学计算. 一、前言. MATLAB : matrix laboratory 的缩写,矩阵实验室的意思。一开始它是一种专门用于矩阵数值计算的软件。自 MATLAB4.0 版本问世以来,该软件成为最具有吸引力,应用最为广泛的科学计算语言。我们这个课就拿 MATLAB6.1 版本来讲。( 6.x 版本大同小异). 学习该软件的必要性: 目前, MATLAB 软件不仅走入企业、公司和科研机构,而且在高等院校也是从大学生到博士生都必须掌握的一项基本技能,是必不可少的计算工具,。 MATLAB 功能: 数值计算、符号运算和图形处理。.

nona
Download Presentation

MATLAB 与科学计算

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. MATLAB与科学计算

  2. 一、前言 • MATLAB:matrix laboratory的缩写,矩阵实验室的意思。一开始它是一种专门用于矩阵数值计算的软件。自MATLAB4.0版本问世以来,该软件成为最具有吸引力,应用最为广泛的科学计算语言。我们这个课就拿MATLAB6.1版本来讲。(6.x版本大同小异)

  3. 学习该软件的必要性:目前,MATLAB软件不仅走入企业、公司和科研机构,而且在高等院校也是从大学生到博士生都必须掌握的一项基本技能,是必不可少的计算工具,。学习该软件的必要性:目前,MATLAB软件不仅走入企业、公司和科研机构,而且在高等院校也是从大学生到博士生都必须掌握的一项基本技能,是必不可少的计算工具,。 • MATLAB功能:数值计算、符号运算和图形处理。

  4. 学习它的意义:随着计算机科学和计算软件的发展,数学系学生必须掌握一门好的计算软件。这是我们就业、继续身造或做科研工作所要用到的。是当代大学生必备的一项技能。学习它的意义:随着计算机科学和计算软件的发展,数学系学生必须掌握一门好的计算软件。这是我们就业、继续身造或做科研工作所要用到的。是当代大学生必备的一项技能。

  5. 其它计算软件:MATHEMATIC(数学分析问题的计算);IDL(航天、控制),FOETRAN、BASIC(科学计算)。可以说一个人掌握了一门计算软件,再学习其它计算软件很容易。其它计算软件:MATHEMATIC(数学分析问题的计算);IDL(航天、控制),FOETRAN、BASIC(科学计算)。可以说一个人掌握了一门计算软件,再学习其它计算软件很容易。

  6. MATLAB桌面平台: (1)主窗口:整个大的窗口(其它几个窗口都包括在其中) (2)命令窗口(command window):》为运算提示符,表示MATLAB在准备状态。当在提示符后输入一段运算式并按回车键后,就给出计算结果

  7. (3)历史窗口(command history):保留命令历史记录,这方便于使用者查询。双击历史窗口中的某一行命令,即可在命令窗口中执行该命令。

  8. (4)当前目录窗口(current directory):在当前目录窗口中可显示或改变当前目录,也可以显示当前目录下的文件,并提供搜索功能。

  9. (5)发行说明书窗口(launch pad):用来说明用户所拥有的Mathworks公司产品的工具包、演示以及帮助信息。 (6)工作间管理窗口(workspace):显示目前内存中所有的MATLAB变量的变量名、数学结构、字节数及其类型。

  10. 命令窗口查询帮助:help+函数名,当用户知道函数名字,而不知道其用法时,用help命令可以去了解此函数的用法。命令窗口查询帮助:help+函数名,当用户知道函数名字,而不知道其用法时,用help命令可以去了解此函数的用法。 如:help inv

  11. MATLAB标点的含义: (1)分号;……区分行以及取消运行显示等。例: A=[1,2;3,4]与A=[1,2;3,4];的区别。 (2) 逗号,……区分列及函数参数分隔符等。例:=[1,2;3,4] ,B=[1,4,3;3,2,1;4,5,6]

  12. (3)小括号():指定运算过程的先后次序等。例:(3)小括号():指定运算过程的先后次序等。例: x=0.5; y=sin(x)/(2+cos(x)) z= sin(x)/2+cos(x) (4)方括号[ ]:矩阵定义标志等。见上。

  13. (5)续行号…:例: y=sin(x)/(2+cos(x)) 也可写为 y=sin(x)… /(2+cos(x))

  14. (6)百分号%:注释标记,该行%以后的语句不执行。例(6)百分号%:注释标记,该行%以后的语句不执行。例 %线性规划程序 %a=0.5; b=sin(x);%正弦函数

  15. (6)等号=:赋值标记。见上。 (7)单引号’’:字符串表示符,单引号里面的内容为字符串。单引号一定在英文状态下输入例:  a='xingtai college' (8)冒号’:’:有多种应用功能,学习过程中注意。如:选取矩阵的所有行、列;矩阵定义

  16. 二、数值计算 变量:MATLAB语言不需要对所使用的变量进行事先声明,也不需要指定其类型,它会自动根据所赋予变量的值或所进行的操作来确定变量的类型。如果变量重新赋值将会用新值代替旧值。如: a=1 b=0.5 c=a*b c=3

  17. 变量命名的规则: (1)变量名区分大小写; (2)变量名长度不能超过31位; (3)必须以字母开头,变量名中可包含字母、数字、下划线,但不能使用标点。

  18. 常量:MATLAB中有些预定义的变量,这些特殊的变量称为常量。常用到的有:常量:MATLAB中有些预定义的变量,这些特殊的变量称为常量。常用到的有: i,j: 虚数单位; pi: π; NaN: 表示不定值,比如0/0; inf: 无穷大(infinit),比如1/0。

  19. 算术操作符: +、-:加,减;可以通用。 *,^,\ , / :分别为矩阵乘,乘方,左除,右除; .*, .^ , .\ , ./ :分别为数组乘,乘方,左除,右除;此时向量的运算不会满足矩阵的运算法则。注意矩阵的加点运算结果。

  20. 如: a1=2; a2=[1,2,3,4]; b2=[4,3,2,1]; a1+a2 a1-a2 a2-a1 a1*a2

  21. a1./a2 %a1/a2是错误的写法 a1.\a2 a2-b2 a2+b2 a2.*b2 %a2*b2是错误的写法 a2./b2 b2./a2 a2.\b2

  22. 例 已知水的黏度随温度的变化公式为 μ=μ0/(1+at+bt2)其中μ0=1.785×10-3, a=0.03368,b=0.000221, 求水在0,20,40,80℃时的黏度。 程序如下:

  23. miu0=1.785e-3; a=0.03368; b=0.000221; t=0:20:80 miu=miu0./(1+a*t+b*t.^2) 运行后的结果为 : miu = 0.0018 0.0010 0.0007 0.0005 0.0003

  24. 字符串: 字符串的约定(1)字符串用单引号括起来;(2)字符串的每个每个字符(包括空格)都是字符数组的一个元素. 例 s=‘xingtai college’ f=‘sin(x)’ 是字符串(char array)

  25. 向量的生成: (1)直接输入:如a=[1,2,5,3] (2) 利用冒号表达式生成:如:b=[2:2:10],此时[ ]可省略,步长为1时,步长可省略。第一个数为首元素的值,第2个数为步长或差值,第三个数为尾元素的限值,不能超过这个值。如b=2;2:11等价于b=[2:2:10]

  26. (3)线性等份向量生成:y=linspace(x1,x2,n),生成n维向量,使得y(1)=x1,y(n)=x2。如:y=linspace(1,100,6)。(3)线性等份向量生成:y=linspace(x1,x2,n),生成n维向量,使得y(1)=x1,y(n)=x2。如:y=linspace(1,100,6)。 • 向量的基本运算 (1)向量的加减:用+、-。同维向量才可以加、减。相应元素加减

  27. (2)向量与数可以加、减。用+、-。数与向量的每个元素进行作用。(2)向量与数可以加、减。用+、-。数与向量的每个元素进行作用。 (3)向量与数可以相乘。用*。 (4)向量与数可以相除。向量/数,数./向量。 (5)两个向量点积。必须是同维向量。用dot(a,b)。

  28. (6)两个向量叉积。cross(a,b),a,b必须有是3维且次序不能颠倒,。(6)两个向量叉积。cross(a,b),a,b必须有是3维且次序不能颠倒,。 (7)混合积。由以上两个函数实现。dot(a,cross(b,c)) • 矩阵的生成: (1)直接输入:如:a=[1,3,4;4,3,2].

  29. (2)创建M文件输入大矩阵:当矩阵很大时,直接输入显得很笨,出错不易修改.我们可以编写一个M文件,M文件的扩展名必须是m.(2)创建M文件输入大矩阵:当矩阵很大时,直接输入显得很笨,出错不易修改.我们可以编写一个M文件,M文件的扩展名必须是m. 例 编写一个名为matrix.m(名字自己随便起)的M文件如下: %matrix.m ‘’’’

  30. mat=[1,2,3,3;3,4,5,1;3,2,1,4;8,9,7,5] 在命令窗口中输入matrix,就会运行该文件.查看矩阵的结构可用size(mat).

  31. 矩阵运算: (1) +、-、*:加、减、乘运算。 (2)矩阵的除法有两种形式:左除“\”和右除‘/’.右除是先计算逆再做乘法;而左除不计算逆直接进行除法运算,这样可避免奇异矩阵无法求逆带来的麻烦.

  32. 如:A=[1,2,3,2;3,2, 4,1;3,1,5,6;2,5,3,2], b=[1;3;2;1],求方程组Ax=b的解.由于rank(A)=rank(B)=4(B为增广矩阵),所以有唯一解,x=A\b,或x=inv(A)*b.

  33. 又如: A=[361,625,961,1444,1936;1,1,1,1,1], b=[1;1]‘,求方程组Ax=b的解.由于rank(A)=rank(B)=2(B为增广矩阵),所以有无穷多个解,MATLAB中用除法解方程组时所得到的解是所有解中范数最小的一个x=A\b。

  34. (3)矩阵与常数间的运算:+、-、*运算是数与矩阵的每个元素进行运算,除法运算,只能常数做除数。(3)矩阵与常数间的运算:+、-、*运算是数与矩阵的每个元素进行运算,除法运算,只能常数做除数。 (4)矩阵求逆:inv(A)为A的逆(inverse).

  35. (5)求转置矩阵:A'. (6)求矩阵的行列式:det(A) ,(determinant是行列式)。 (7)矩阵幂运算:用^.如A^3,表示A*A*A。 (8)矩阵指数运算:expm(A),A为方阵。

  36. (9)矩阵对数运算:logm(A),A为方阵。 如:a=rand(3); %成生一个3阶随机矩阵 b=expm(a) c=logm(b)

  37. (10)矩阵开方:sqrtm(a). (11)求矩阵呢的秩:rank(a). • 特殊矩阵的生成: (1)zeros(n):生成 n×n阶0矩阵。 (2)zeros(m,n):生成 m×n阶0矩阵。 (3)zeros(size(a)):生成与a阶数相同的0矩阵。

  38. (4) eye(n):生成 n阶单位矩阵。 (5) eye(m,n):生成 m×n阶单位矩阵。 (6) eye(size(a)):生成与a阶数相同的单位矩阵。 (7) ones(n):生成 n阶全1矩阵。 (8) ones(m,n):生成 m×n阶全1矩阵。

  39. (9) ones(size(a)):生成与a阶数相同的全1矩阵。 (10)rand(n):生成 n×n阶随机矩阵,其元素值在0和1之间。 (11)rand(m,n):生成 m×n阶随机矩阵。 (12)rand:生成一个随机数。

  40. (13)rand(size(a)):生成与a阶数相同的随机矩阵。(13)rand(size(a)):生成与a阶数相同的随机矩阵。 • 矩阵的特殊操作: (1)变维操作reshape(a,m,n):把矩阵a变成n×n阶矩阵。如 a=1:12,reshape(a,2,6), reshape(a,3,4)。注意变维操作要保证元素个数一致。

  41. s=1:12; c=zeros(3,4); c(:)=s(:); %符号“:”表示变维操作,这两个矩阵必须预先定义维数,结果c取的是s的元素。

  42. (2)对角元素抽取diag(a,k)(注:diagonal为对角线的意思):抽取矩阵a的第k条对角线的元素作为向量,k=0 时为主对角线,k为正值时为上方第k条对角线, k为负值时为下方第k条对角线。 diag(a)相当于diag(a,0).例 a=rand(3); v=diag(a)

  43. 说明:如果b是一个向量,则diag(b)为对角矩阵,其对角线元素为b的元素。如:b=1:3,diag(b).说明:如果b是一个向量,则diag(b)为对角矩阵,其对角线元素为b的元素。如:b=1:3,diag(b). (3)tril(a) (注:triangle low):提取矩a的主下三角。 (4)tril(a,k):提取矩a的第k条对角线下面部分。 k=0 时为主对角线,k为正值时为上方第k条对角线, k为负值时为下方第k条对角线。

  44. (5)triu(a,k) (注:triangle up) :提取矩a的第k条对角线上面部分。 • 逻辑运算符: (1)= =:等于。 (2)~=:不等于。 (3)〈:小于。 (4)〉:大于。

  45. (5)〈=:小于等于。 (6)〉=:大于等于。 (7)&:逻辑与。 (8)|:逻辑或。 (9)~:逻辑非。

  46. 说明: ①在关系比较中,若双方为同维数组(矩阵),则比较的结果也是同维数组(矩阵)。它们的元素有0和1组成。对应位置上的元素满足比较关系时为1,否则为0。当常数与数组(矩阵)比较时,结果与数组(矩阵)同维,其值依次为常数与数组元素依次比较的结果。例:

  47. a=[1:3;4:6;7:9] x=5 y=x<=a 运行结果 y = 0 0 0 0 1 1 1 1 1

  48. ②逻辑运算的意义是: 与:当运算双方的对应元素值都为非0时,结果为1,否则为0; 或:当运算双方的对应元素值有一非0时,结果为1,否则为0; 非:当运算数组(矩阵)的对应位置上的元素值为0时,结果为1,否则为0。例

  49. a=[1,2;3,2]; b=[0,1;3,0]; d=a&b e=a|b f= ~b ③算术运算、比较运算、逻辑与或非运算的优先级:先比较运算、再算术运算、最后逻辑与或非运算。

  50. 常用的一些函数(直接调用): sin(x):正弦函数(sine);例: x=-pi:0.1:pi;y=sin(x);plot(x,y) asin(x):反正弦函数(anti-sine); cos(x):余弦函数(cosine); acos(x):反余弦函数(anti-cosine); tan(x):正切函数(tangent);

More Related