数学实验第二版书稿(上)

举报
资源描述
MATLAB软件基础1.引言MATLAB的名称由MATrix(矩 阵)和 LABoratory(实验室)两词的前三个字母组合而成.早期主要用于现代控制中复杂的矩阵、向量的各种运算.现已发展成为一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。使用MATLAB,可以解决最基本的数学问题,诸如数值计算,矩阵计算,符号运算,统计分析,求解优化问题等等.不仅如此,MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。MATLAB软件的命令系统本身构成了 种功能强大的程序设计语言,用这种语言可以比较方便地定义用户需要的各种函数和程序包,系统本身也提供了许多应用程序包.2.MATLAB软件的基本命令双击MATLAB软件的图标即可启动MATLAB软件在其命令窗口中出现“”后即可输入命令,如 s in(p i/2)燃后按下回车键即可执行相应的命令.2.1 算术运算MATLAB软件的算术运算是指加减乘除及乘方、开方运算.例 1 3*(5-2)+4A(6-3)/2ans=41在 MATLAB软件中,乘法用“*”表示,除法用“/”表示,乘方用“表示.例 2 2A(1/2)ans=1.4142MATLAB对数据采取近似计算,在默认设置下,结果保留5 位数字.例 3 l/3+pians=3.4749p i表示圆周率乃.例 4 2100%计 算 2 的 100次方ans=1.2677e+030结果用科学计数法表示,1.2677e+030表示1.2677x 1O30.在输入命令中,可用之后写入命令的注解,注解并不影响命令的执行,例如例4 中的命令.2.2 函数MATLAB软件提供了许多数学上的函数,表 1给出了一些常用的函数.在 M ATLAB软件中,英文字母大小写严格区分.函数与命令后面的表达式要放在小括号里.例 5 sin(pi/6)ans=0.5000表1 常用的函数函数数学含义函数数学含义abs(x)Ximag(z)z的虚部acos(x)arccos xlog(x)nxacot(x)arc cot xloglO(x)logio Xasin(x)arcsin xmax(xl,x2,.)atan(x)arctan xmin(xl,x2,.)angle(z)argz(幅角的主值)mod(a,b)a除以b的余数nchoosek(n,k)cprimes(n)不大于n的所有素数ceil向上取整rand0,1之间均匀随机数conj(z)Z的共扼复数randn标准正态分布随机数cos(x)COSXreal(z)Z的实部cot(x)cotxround四舍五入取整exp(x)exsec(x)secxfactorial(n)n!sin(x)sinxfix(x)向零方向取整sqrt(x)4xfloor向下取整tan(x)tanx例 6 sqrt(3.3+1.5i)ans=1.8608+0.4031i例 7 randans=0.8147例 8 rand(1 seed,45);rand%以45为种子数产生随机数ans=0.08092.3 赋值与函数定义MATLAB软件中可以直接给变量赋值,并进行运算.变量名必须以字母开头,不能有空格和标点符号(可以有下划线).例 9 x=lx=1例 10 a=l,b=2;c=3a=1c=3MATLAB软件中的语句可以写在同一行里,中间用分号或逗号隔开,分号之前的命令不显示结果,逗 号(或不加标点符号)之前的命令显示结果.例 11 d=a+b*cd=7MATLAB软件中还可以定义函数.最简单的函数命令形式为:f=inline(函数表达式)例 12 f=inline(xA2+yA2);f(1,2)ans=5更为一般的函数定义形式见本实验“M 文件”部分.2.4逻辑运算如同许多高级程序语言一样,MATLAB软件也提供了逻辑运算的功能.逻辑运算可用于程序中的条件控制.1.关系运算表 2 给出了常用的关系运算.表2关系运算X二二y;相等x二y不相等xy大于x可大于或等于xy小于x 二y|小于或等手一例 13 3=2ans=1若逻辑判断的结果为真,则值为1,否则值为0.注:在MATLAB中一般不使用连续的关系运算符.例 14 -3-2-1ans=0在 例13中,系统先判断,值 为1,于是-3-24.1)&-(3.2=2.0)ans=13.逻辑判断命令在MATLAB软件中的一些名词后之前加上“is”构成了许多逻辑判断命令,例如:isempty(是否为空集)isequal(是否相等)isfloat(是否浮点数)isglobal(是否全局变量)isinteger(是否整数)isprime(是否素数)isreal(是否实数)isvector(是否向量)例16 x=isprim e(2),y=isprim e(4)x=1y=o2.5矩阵与向量MATLAB软件提供了相当丰富的关于矩阵与向量的函数命令.关于向量与矩阵的运算是非常快捷与方便的.1.向量与矩阵的定义(1)直接定义:直接输入向量或矩阵的元素,同行的元素以逗号或空格来分隔,不同的行用分号或回车分隔.例 17 a=l,2,3;4,5,6;7,8,1 0 a=1 2 34 5 67 8 10 x=2,3x=2 3 y=4;5 y=45(2)向量的冒号定义:a:d:b形式的语句生成一个行向量,范围在a与b 之间,a 为第一个元素,d 为间隔,d 的取值不能为0。例 18 z=12:-3:l12 9 6 3(3)语句定义zeros(m,n)产生m 行 n 列的元素全为0 的矩阵;ones(m,n)产生m 行 n 列的元素全为1 的矩阵;eye(n)产生n 阶单位矩阵;diag(u)产生一个对角矩阵,其对角线元素与向量u 的元素一致.例 19 diag(2,6)ans=2 00 62.矩阵的元素操作MATLAB利用下标访问矩阵的元素.例 20 a=l,2,3;4,5,6;7,8,10;bl=a(3,l)%bl为 a 的第3 行 第 1 列的元素b2=a(1,3,1,2)%b2为 a 的第1,3 行 第 1,2 列的元素构成的矩阵b3=a(end,:)%b3为 a 的最后一行所有列元素构成的矩阵b4=a(7)a(:,4)=3,2,l当将矩阵a 添上第4 列b5=reshape(a,2,6)%将 a 重写为2 行 6 列的矩阵c=find(b3=8)%求 b 3 中等于8 的元素的位置%将 a 的所有列按照从左到右的次序排列,b4求第7 个元素运行以上语句得到的结果为:bl=7b2=1 27 8b3=7 8 10b4=3147b5=14c=2 3 35 6 28 10 17 5 3 10 22 8 6 3 123.矩阵的基本运算矩阵的加减法是对相同维数的矩阵的对应元素进行加减,与一般的理解一致.如果是矩阵和标量进行加减,则该矩阵的所有元素与该标量进行运算.例 21 x=1,2Z 3;4,5,6 ;y=7,8,9;4,3,2 ;z=x+y,w=x-5z=8 10 128 8 8w=-4-3-2-1 0 1矩阵A 与 B 相乘C=A*B,其结果与代数中矩阵相乘也是一致的,要求 A 的列数等于B 的行数.在 MATLAB中,对矩阵还有另一种乘法:A.*B,此时要求A 与 B有相同的维数,其结果为A 与 B 的对应元素相乘.矩阵方程组AX=B以 及 XA=B的解可以分别用A B 与 A/B 来表示.A./B 表示A 与 B 的对应元素相除得到的矩阵.若 n 为正整数,A 为一个方阵,则 A-n 表示矩阵A 的 n 次方.若A为一个一般的矩阵或向量,A J n 表示A 的每个元素求n 次方.x+y+z=6例 22 求解线性方程组 2 x-y +3 z=9,并验证.5x+y-z -4解:相应的命令为A=l,l,l;2,-l,3;5,l,-l;b=6;9;4 ;x=A b,r=A*x-b得到的结果为x=1.00002.00003.0000r=1.0e-14*0.08880.1776-0.0444由于是近似求解,结果有微小的误差.2.6符号运算符号表达式是代表数据、变量、函数等的字符串或字符串数组.在线性代数、微积分等学科中一些运算必须使用符号运算.MATLAB中,sym命令定义单个的符号表达式,sym s定义多个符号变量.例 23 s y m s a b x y将 a,b,x,y定义为符号变量.例 24 x=s y m (A xz z 7 r e a l );%定义x为符号变量,它代表实数 y=s y m(,x,,,r e a l,);z=x+i*y;c o n j (z)%求共钝复数a n s =x-s q r t(-1)*y例 2 5 下面的语句将符号表达式中的a用 值 1 进行替换.f=s y m(1(a+b)A21);a=l;g=s u b s(f)g=(1+b)人 2也可以用s u b s。(a+b L 2 l a,1)得到一样的效果.例 26 s i m p l e 函数可以化简符号表达式.y=s y m(12*s i n(x)*c o s(x)1)r z=s i m p l e(y)y =2*s i n (x)*c o s(x)z =s i n (2*x)2.7 M 文件M A T L A B 中有两种工作方式,种 直接交互的命令行模式,例如在前面所举的例子中,所有的命令都是在命令窗口输入,然后按回车键执行命令.如果程序比较长,或数据量比较大,在命令窗口输入是不方便的.M A T LA B提供了另一种工作模式:文件驱动模式.文件驱动模式,即将所要执行的命令语句存放在一-个后缀为m 的文件中(一般称为M 文件)在命令窗口可以调用该文件,执行其中的命令.在 M A T L A B 菜单栏中依次单击“F i l e”-“N e w”-“Mf l e”即可创建并编辑一个M文件.在 M A T L A B 的“c u r r e n t d i r e c t o r y”窗口(在默认设置下,该窗口位于菜单栏下方的右边),我们可以设置当前的文件夹.如果我们将M 文件存放于当前文件夹或M A T L A B 设置好的的搜索文件夹中,即可调用该文件.1.程序文件程序文件包含了一连串的M A T L A B 命令,调用该文件时,这些命令会依次得到执行.例 27 设置当前文件夹为“d:u s e r”,并在该文件夹下建立“p r o l.m 文件,其文件内容为x=l :2y=x .A2s u m(y),求各个元素之和在命令窗口输入“p r o l”,即可执行“p r o l.m”文件中的命令,得到的结果为5.2.函数文件函数文件可以看做定义复杂函数的一种方式,可以接受参数,也可以返回参数.MATLAB软件附带了许多函数文件,以实现特定的功能.函数文件的第一行必须包含关键词function”以及输入变量、输出变量,函数名.例 28下面的程序求两个数的和、差、积、商.function h,c,j,s=g(x,y)h=x+y;c=x-y;j=x*y;s=x/y;将其存到当前文件夹的“g.m”中.若在命令窗口执行h,c,j,s=g(4,5)就可以分别求出4 与 5 的和、差、积、商.例 2 9 下面的程序用来检验一个正整数是否可以写成两个素数的和.如果正整数x 不能写成两个素数的和,则输出一个空集;若正整数x 能写成两个素数的和,则输出给出两个素数构成的集合,这两个素数的和为 X.function s=f(x)m=2;n=floor(x/2);s=;while isempty(s)&m0例30定义符号函数入()=0 x =0 .其函数文件如下-1 x 0y=ie ls e if x=0y=0e ls ey=-iend2.循环结构高级程序设计语言都提供了描述重复执行的循环语句.在MATLAB软件中也提供了一些类似的循环控制结构.for循环for循环的循环次数一般是已知的,其格式如下:for x=a rra y%x为循环变量c om
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 大杂烩/其它


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号