《与科学计算》PPT课件.ppt
《《与科学计算》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《与科学计算》PPT课件.ppt(166页珍藏版)》请在三一办公上搜索。
1、MATLAB与科学计算,一、前言,MATLAB:matrix laboratory的缩写,矩阵实验室的意思。一开始它是一种专门用于矩阵数值计算的软件。自MATLAB4.0版本问世以来,该软件成为最具有吸引力,应用最为广泛的科学计算语言。我们这个课就拿MATLAB6.1版本来讲。(6.x版本大同小异),学习该软件的必要性:目前,MATLAB软件不仅走入企业、公司和科研机构,而且在高等院校也是从大学生到博士生都必须掌握的一项基本技能,是必不可少的计算工具,。MATLAB功能:数值计算、符号运算和图形处理。,学习它的意义:随着计算机科学和计算软件的发展,数学系学生必须掌握一门好的计算软件。这是我们就
2、业、继续身造或做科研工作所要用到的。是当代大学生必备的一项技能。,其它计算软件:MATHEMATIC(数学分析问题的计算);IDL(航天、控制),FOETRAN、BASIC(科学计算)。可以说一个人掌握了一门计算软件,再学习其它计算软件很容易。,MATLAB桌面平台:(1)主窗口:整个大的窗口(其它几个窗口都包括在其中)(2)命令窗口(command window):为运算提示符,表示MATLAB在准备状态。当在提示符后输入一段运算式并按回车键后,就给出计算结果,(3)历史窗口(command history):保留命令历史记录,这方便于使用者查询。双击历史窗口中的某一行命令,即可在命令窗口中
3、执行该命令。,(4)当前目录窗口(current directory):在当前目录窗口中可显示或改变当前目录,也可以显示当前目录下的文件,并提供搜索功能。,(5)发行说明书窗口(launch pad):用来说明用户所拥有的Mathworks公司产品的工具包、演示以及帮助信息。(6)工作间管理窗口(workspace):显示目前内存中所有的MATLAB变量的变量名、数学结构、字节数及其类型。,命令窗口查询帮助:help+函数名,当用户知道函数名字,而不知道其用法时,用help命令可以去了解此函数的用法。如:help inv,MATLAB标点的含义:(1)分号;区分行以及取消运行显示等。例:A=1
4、,2;3,4与A=1,2;3,4;的区别。(2)逗号,区分列及函数参数分隔符等。例:=1,2;3,4,B=1,4,3;3,2,1;4,5,6,(3)小括号():指定运算过程的先后次序等。例:x=0.5;y=sin(x)/(2+cos(x)z=sin(x)/2+cos(x)(4)方括号:矩阵定义标志等。见上。,(5)续行号:例:y=sin(x)/(2+cos(x)也可写为 y=sin(x)/(2+cos(x),(6)百分号%:注释标记,该行%以后的语句不执行。例%线性规划程序%a=0.5;b=sin(x);%正弦函数,(6)等号=:赋值标记。见上。(7)单引号:字符串表示符,单引号里面的内容为字
5、符串。单引号一定在英文状态下输入例:a=xingtai college(8)冒号:有多种应用功能,学习过程中注意。如:选取矩阵的所有行、列;矩阵定义,二、数值计算,变量:MATLAB语言不需要对所使用的变量进行事先声明,也不需要指定其类型,它会自动根据所赋予变量的值或所进行的操作来确定变量的类型。如果变量重新赋值将会用新值代替旧值。如:a=1 b=0.5 c=a*b c=3,变量命名的规则:(1)变量名区分大小写;(2)变量名长度不能超过31位;(3)必须以字母开头,变量名中可包含字母、数字、下划线,但不能使用标点。,常量:MATLAB中有些预定义的变量,这些特殊的变量称为常量。常用到的有:i
6、,j:虚数单位;pi:;NaN:表示不定值,比如0/0;inf:无穷大(infinit),比如1/0。,算术操作符:+、-:加,减;可以通用。*,,/:分别为矩阵乘,乘方,左除,右除;.*,.,.,./:分别为数组乘,乘方,左除,右除;此时向量的运算不会满足矩阵的运算法则。注意矩阵的加点运算结果。,如:a1=2;a2=1,2,3,4;b2=4,3,2,1;a1+a2a1-a2a2-a1a1*a2,a1./a2%a1/a2是错误的写法a1.a2 a2-b2a2+b2a2.*b2%a2*b2是错误的写法a2./b2b2./a2a2.b2,例 已知水的黏度随温度的变化公式为=0/(1+at+bt2)
7、其中0=1.78510-3,a=0.03368,b=0.000221,求水在0,20,40,80时的黏度。程序如下:,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,字符串:字符串的约定(1)字符串用单引号括起来;(2)字符串的每个每个字符(包括空格)都是字符数组的一个元素.例 s=xingtai college f=sin(x)是字符串(char array),向量的生成:(1)直接输入:如a=1,2,5,3(2
8、)利用冒号表达式生成:如:b=2:2:10,此时 可省略,步长为1时,步长可省略。第一个数为首元素的值,第2个数为步长或差值,第三个数为尾元素的限值,不能超过这个值。如b=2;2:11等价于b=2:2:10,(3)线性等份向量生成:y=linspace(x1,x2,n),生成n维向量,使得y(1)=x1,y(n)=x2。如:y=linspace(1,100,6)。向量的基本运算(1)向量的加减:用+、-。同维向量才可以加、减。相应元素加减,(2)向量与数可以加、减。用+、-。数与向量的每个元素进行作用。(3)向量与数可以相乘。用*。(4)向量与数可以相除。向量/数,数./向量。(5)两个向量点
9、积。必须是同维向量。用dot(a,b)。,(6)两个向量叉积。cross(a,b),a,b必须有是3维且次序不能颠倒,。(7)混合积。由以上两个函数实现。dot(a,cross(b,c)矩阵的生成:(1)直接输入:如:a=1,3,4;4,3,2.,(2)创建M文件输入大矩阵:当矩阵很大时,直接输入显得很笨,出错不易修改.我们可以编写一个M文件,M文件的扩展名必须是m.例 编写一个名为matrix.m(名字自己随便起)的M文件如下:%matrix.m,mat=1,2,3,3;3,4,5,1;3,2,1,4;8,9,7,5 在命令窗口中输入matrix,就会运行该文件.查看矩阵的结构可用size(
10、mat).,矩阵运算:(1)+、-、*:加、减、乘运算。(2)矩阵的除法有两种形式:左除“”和右除/.右除是先计算逆再做乘法;而左除不计算逆直接进行除法运算,这样可避免奇异矩阵无法求逆带来的麻烦.,如: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=Ab,或x=inv(A)*b.,又如:A=361,625,961,1444,1936;1,1,1,1,1,b=1;1,求方程组Ax=b的解.由于rank(A)=rank(B)=2(B为增广矩阵),所以有无穷多个解,
11、MATLAB中用除法解方程组时所得到的解是所有解中范数最小的一个x=Ab。,(3)矩阵与常数间的运算:+、-、*运算是数与矩阵的每个元素进行运算,除法运算,只能常数做除数。(4)矩阵求逆:inv(A)为A的逆(inverse).,(5)求转置矩阵:A.(6)求矩阵的行列式:det(A),(determinant是行列式)。(7)矩阵幂运算:用.如A3,表示A*A*A。(8)矩阵指数运算:expm(A),A为方阵。,(9)矩阵对数运算:logm(A),A为方阵。如:a=rand(3);%成生一个3阶随机矩阵 b=expm(a)c=logm(b),(10)矩阵开方:sqrtm(a).(11)求矩阵
12、呢的秩:rank(a).特殊矩阵的生成:(1)zeros(n):生成 nn阶0矩阵。(2)zeros(m,n):生成 mn阶0矩阵。(3)zeros(size(a):生成与a阶数相同的0矩阵。,(4)eye(n):生成 n阶单位矩阵。(5)eye(m,n):生成 mn阶单位矩阵。(6)eye(size(a):生成与a阶数相同的单位矩阵。(7)ones(n):生成 n阶全1矩阵。(8)ones(m,n):生成 mn阶全1矩阵。,(9)ones(size(a):生成与a阶数相同的全1矩阵。(10)rand(n):生成 nn阶随机矩阵,其元素值在0和1之间。(11)rand(m,n):生成 mn阶随
13、机矩阵。(12)rand:生成一个随机数。,(13)rand(size(a):生成与a阶数相同的随机矩阵。矩阵的特殊操作:(1)变维操作reshape(a,m,n):把矩阵a变成nn阶矩阵。如 a=1:12,reshape(a,2,6),reshape(a,3,4)。注意变维操作要保证元素个数一致。,例s=1:12;c=zeros(3,4);c(:)=s(:);%符号“:”表示变维操作,这两个矩阵必须预先定义维数,结果c取的是s的元素。,(2)对角元素抽取diag(a,k)(注:diagonal为对角线的意思):抽取矩阵a的第k条对角线的元素作为向量,k=0 时为主对角线,k为正值时为上方第k
14、条对角线,k为负值时为下方第k条对角线。diag(a)相当于diag(a,0).例 a=rand(3);v=diag(a),说明:如果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条对角线。,(5)triu(a,k)(注:triangle up):提取矩a的第k条对角线上面部分。逻辑运算符:(1)=:等于。(2)=:不等于。(3):小于。(4
15、):大于。,(5)=:小于等于。(6)=:大于等于。(7)&:逻辑与。(8)|:逻辑或。(9):逻辑非。,说明:在关系比较中,若双方为同维数组(矩阵),则比较的结果也是同维数组(矩阵)。它们的元素有0和1组成。对应位置上的元素满足比较关系时为1,否则为0。当常数与数组(矩阵)比较时,结果与数组(矩阵)同维,其值依次为常数与数组元素依次比较的结果。例:,a=1:3;4:6;7:9x=5y=x=a运行结果y=0 0 0 0 1 1 1 1 1,逻辑运算的意义是:与:当运算双方的对应元素值都为非0时,结果为1,否则为0;或:当运算双方的对应元素值有一非0时,结果为1,否则为0;非:当运算数组(矩阵)
16、的对应位置上的元素值为0时,结果为1,否则为0。例,a=1,2;3,2;b=0,1;3,0;d=a&b e=a|b f=b算术运算、比较运算、逻辑与或非运算的优先级:先比较运算、再算术运算、最后逻辑与或非运算。,常用的一些函数(直接调用):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);,atan(x):反正切函数(anti-tangent);cot(x):
17、余切函数(cotangent);acot(x):反余切函数(anti-cotangent);sec(x):正割函数(secant);asec(x):反正割函数(anti-secant);csc(x):余割函数(cosecant);acsc(x):反余割函数(anti-cosecant);,sinh(x):双曲正弦(hyperbolic sine);asinh(x):反双曲正弦(anti-hyperbolic sine);cosh(x):双曲余弦(hyperbolic cosine);acosh(x):反双曲余弦(anti-hyperbolic cosine);,tanh(x):双曲正切函数(h
18、yperbolic tangent);atanh(x):反双曲正切函数(anti-hyperbolic tangent);coth(x):双曲余切函数(hyperbolic cotangent);acoth(x):反双曲余切函数(anti-hyperbolic cotangent);exp(x):e指数函数(exponent);,log(x):自然对数函数(logarithm);log10(x):以10为底的对数;log2(x):以2为底的对数;sqrt(x):平方根函数(square root);abs(x):求模函数(absolute)Inline(f的表达式):自定义函数。函数的自变量为
19、函数中出现的变量。自变量顺序安字母表顺序。Inline(f的表达式,变量1,变量2,变量3,):与上面的区别是它安变量表的给出的顺序规定函数的变量顺序。如:g=inline(sin(2*x*y+z),表示:g(x,y,z)=sin(2*x*y+z)g=inline(sin(2*x*y+z),x,z,y)表示:g(x,z,y)=sin(2*x*y+z);g1(1,2,3)与g2(1,2,3)的意义不同。,多项式表示方法:在MATLAB中多项式p(x)=anxn+an-1xn-1+a0是以向量p=an,an-1,a0的形式储存的.(1)系数向量直接输入:例输入多项式x3-5x2+6x-33.p=1
20、,-5,6,-33;poly2sym(p)%polynomial多项式,将系数向量表示成符号多项式,(2)矩阵的特征多项式输入:例 a=1,2,3;2,3,4;3,4,5;p=poly(a);%求a的特征多项式系数向量 p1=poly2sym(p);%即为a的特征多项式,(3)由根创建多项式:例 root=-5,-3+4i,-3-4i;%是某个多项式的根 p=poly(root)%求相应的多项式的系数向量P1=poly2sym(p)%将多项式系数向量表示成符号多项式,多项式运算:(1)求多项式的值:例 p=1,11,55,125;a=1.2 b=1,2;2,3 polyval(p,a)%pol
21、ynomial value 求多项式在1.2的值polyvalm(p,b)%多项式在b的值,(2)求多项式的根:例求多项式 2x4-5x3+6x2-x+9=0的所有根.p=2,-5,6,-1,9 roots(p)%得到多项式的根(3)factor:因式分解。例 syms xfactor(x9-1)结果:ans=(x-1)*(x2+x+1)*(x6+x3+1),factor(sym(100)%把整数进行素数分解.结果:(2)2*(5)2(4)expand(s):多项式展开,s可为多项式、多项式向量和矩阵。例 expand(sym(x+1)3)结果:ans=x3+3*x2+3*x+1 expand
22、(sym(sin(x+y)结果:ans=sin(x)*cos(y)+cos(x)*sin(y),(5)collect(s):对默认的变量合并同类项。collect(s,v):对变量v合并同类项。s可为符号多项式、多项式向量和矩阵例 collect(sym(x2*y+y*x-x2-2*y*x)collect(sym(x2*y+y*x-x2-2*y*x),x)collect(sym(x2*y+y*x-x2-2*y*x),y),(6)simple(s):符号表达式简化,s可为符号多项式、多项式向量和矩阵。例f=simple(sym(sin(x)2+cos(x)2)结果:f=g=simple(sym(
23、x3+3*x2+3*x+1)结果:g=(x+1)3,(7)多项式乘除运算分别用conv和deconv:(convolution,deconvolution)例 p1=2,-5,6,-1,9;p2=3,-90,18;p=conv(p1,p2)%为p1和p2所相应的多项式的乘积多项式的系数向量,p3=deconv(p,p1)%为p2 p4=deconv(p,p2)%为p1 poly2sym(p1);poly2sym(p2);poly2sym(p)poly2sym(p3)poly2sym(p4)%观看这几个多项式,polyfit(x,y,n)其中x,y为拟合数据,n为拟合多项式的阶数。例 用最小二乘
24、法拟合数据 x:0.50 1.00 1.50 2.00 2.50 3.00 y:1.75 2.45 3.81 4.80 8.00 8.60 x=0.5,1,1.5,2,2.5,3 y=1.75,2.45,3.81,4.80,8.00,8.60 a=polyfit(x,y,2)%用2次多项式拟合上组数据,a为拟合多项式的系数向量,x1=0.5:0.05:3 y1=a(1)*x1.2+a(2)*x1+a(3)plot(x1,y1)%画出拟合曲线的图形 hold on%保留上面的图形和坐标,可在该坐标系中继续作图 plot(x,y,*)%用*号的形式画出被拟合的数据图形,求矩阵的特征值(eigenv
25、alue:)和特征向量(eigenvector)例 a=7,3,-2;3,4,-1;-2,-1,3;x,y=eig(a)%所得结果x为a的特征向量矩阵,y为特征值矩阵说明:a必须是方阵,此时a*x=y*x,,三、符号运算,MATLAB进行符号运算的主要功能:符号表达式和符号矩阵的基本操作、符号矩阵的基本运算、符号微积分运算、符号线性方程求解、符号微分方程求解、特殊数学符号函数、符号函数图形等。,符号表达式的生成创建符号函数:如f=log(x)创建符号方程:如 g=a*x2+b*y2+c=0创建微分方程:如q=Dy-y=x或者:f=sym(log(x)、g=sym(a*x2+b*y2+c=0)、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 与科学计算 科学 计算 PPT 课件
链接地址:https://www.31ppt.com/p-5626480.html