数值计算基础、Matlab介绍 喻文健

合集下载

第一讲MatLab简介及基本运算解读

第一讲MatLab简介及基本运算解读

第一讲 MatLab简介及基本运算教学目标:了解matlab主要功能,学习matlab的基本运算,熟练matlab主窗口,学会使用帮助系统,了解基本的符号概论.掌握用数学软件求解数学问题.教学重点:熟悉MATLAB的主窗口,运用matlab解决数学分析、高等代数中的计算,根据正在学习的相关知识,结合实例,编程计算,掌握相关符号计算命令及函数的使用方法和技巧.教学难点:使用MATLAB帮助系统.要掌握英语和数学专有名词.通过解说,演示以及举例子克服难点难关.一、MatLab简介MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成.那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB.经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场.从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能.MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建.在时间进入20世纪九十年代的时候,MATLAB 已经成为国际控制界公认的标准计算软件.在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容.这几乎成了九十年代教科书与旧版书籍的区别性标志.在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具.在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件.在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用.在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具.如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑.又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持.MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性.以下为其几个特色:∙功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上.∙先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章.∙高阶但简单的程式环境 - 作为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建功能.∙开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境.∙丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数.现有工具箱有:符号运算(利用Maple V的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析.二、MatLab界面表1 MATLAB系统命令命令含义help在线帮助helpwin在线帮助窗口helpdesk在线帮助工作台demo运行演示程序ver版本信息readme显示Readme文件who显示当前变量whos显示当前变量的详细信息clear清空工作间的变量和函数pack整理工作间的内存load把文件调入变量到工作间save把变量存入文件中退出MATLABquit/exitwhat显示指定的matlab文件lookfor在HELP里搜索关键字which定位函数或文件path获取或设置搜索路径echo命令回显cd改变当前的工作目录pwd显示当前的工作目录dir显示目录内容unix执行unix命令dos执行dos命令!执行操作系统命令computer显示计算机类型在MATLAB系统中使用帮助方式有三:1、是利用help指令,如果你已知要找的题材 (topic) 为何的话,直接键入help <topic>.所以即使身旁没有使用手册,也可以使用help指令查询不熟悉的指令或是题材之用法,例如help sqrt2、是利用lookfor指令,它可以从你键入的关键字(key-word)(即使这个关键字并不是MATLAB的指令)列出所有相关的题材,例如lookfor cosine, lookfor sine.3、是利用指令视窗的功能选单中的Help,从中选取Table of Contents(目录)或是Index(索引).三、基本数学运算在MATLAB下进行基本数学运算,只需将运算式直接打在提示号 >> 后面,并按入Enter键即可.MATLAB将计算的结果以ans显示.例求23[÷12⨯+的算术运算结果.-)]247((1)用键盘在MATLAB指令窗中输入以下内容>> (12+2*(7-4))/3^2(2)在上述表达式输入完成后,按【Enter】键,该就指令被执行.(3)在指令执行后,MATLAB指令窗中将显示以下结果.ans =2我们也可给运算式的结果设定一个变量x:x = (5*2+1.3-0.8)*10^2/25x =42变量x的值可以在下个语句中调用:y= 2*x+1y =851. 变量命名规则:(1)变量名的大小写是敏感.(2)变量的第一个字符必须为英文字母,而且不能超过31个字符.(3)变量名可以包含下连字符、数字,但不能为空格符、标点.2. 系统预定义的变量ans预设的计算结果的变量名eps MATLAB定义的正的极小值=2.2204e-16pi内建的π值(= 3.1415926...)inf∞值,无限大 (1/0)NaN无法定义一个数目 (0/0)i 或 j虚数单位i=j=1nargin函数输入参数个数nargout函数输出参数个数realmax最大的正实数realmin最小的正实数flops浮点运算次数而键入clear则是去除所有定义过的变量名称.3. 表达式MATLAB书写表达式的规则与“手写算式”差不多相同,但要求所有表达式都是以纯文本形式输入.如果一个指令过长可以在结尾加上...(代表此行指令与下一行连续). 例>> 1*2+3*4+5*6+7*8+9*10+11*12+...13*14+15*16ans =744若不想让MATLAB每次都显示运算结果,只需在运算式最后加上分号(;)即可, 如:y = 1034*22+3^5;若要显示变数y的值,直接键入y即可:>>yy =22991MATLAB会忽略所有在百分比符号(%)之后的文字,因此百分比之後的文字均可视为程式的注解(Comments).例:计算圆面积Area = ,半径r = 2,则可键入>> r=2;% 圆半径r = 2,>> area=pi*r^2; % 计算圆面积area>> area =12.5664MATLAB提供基本的算术运算有:加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (^),范例为:5+3, 5-3, 5*3, 5/3, 5^3.MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于).MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非).4、MATLAB常用数学函数●三角函数和双曲函数名称含义名称含义名称含义sin正弦csc余割atanh反双曲正切cos余弦asec反正割acoth反双曲余切tan正切acsc反余割sech双曲正割cot余切sinh双曲正弦csch双曲余割asin反正弦cosh双曲余弦asech反双曲正割acos反余弦tanh双曲正切acsch反双曲余割atan反正切coth双曲余切atan2四象限反正切acot反余切asinh反双曲正弦sec正割acosh反双曲余弦●指数函数名称含义名称含义名称含义exp E为底的指数log1010为底的对数pow22的幂log自然对数log22为底的对数sqrt平方根●复数函数名称 含义 名称 含义 名称 含义 abs 绝对值 conj 复数共轭 real 复数实部 angle 相角 imag 复数虚部● 圆整函数和求余函数 名称 含义 名称 含义ceil 向+∞圆整 rem 求余数 fix 向0圆整 round 向靠近整数圆整 floor 向-∞圆整 sign 符号函数mod模除求余● 矩阵变换函数 名称 含义 名称 含义fiplr 矩阵左右翻转 diag 产生或提取对角阵 fipud 矩阵上下翻转 tril 产生下三角 fipdim 矩阵特定维翻转 triu 产生上三角 Rot90矩阵反时针90翻转det行列式的计算● 其他函数 名称 含义 名称 含义min 最小值 max 最大值 mean 平均值 median 中位数 std 标准差 diff 相邻元素的差sort 排序length 个数 norm 欧氏(Euclidean )长度sum 总和 prod 总乘积 dot 内积cumsum 累计元素总和cumprod 累计元素总乘积cross 外积例:>>y = sin(10)*exp(-0.3*4^2) y =-0.0045例:复数ie z i z i z 63212,21,43π=+=+=表达,及计算321z z z z =. (1)经典教科书的直角坐标表示法 z1= 3 + 4i z1 =3.0000 +4.0000i(2)采用运算符构成的直角坐标表示法和极坐标表示法z2 = 1 + 2 * i %运算符构成的直角坐标表示法 z3=2*exp(i*pi/6) %运算符构成的极坐标表示法 z=z1*z2/z3 z2 =1.0000 +2.0000i z3 =1.7321 + 1.0000i z =0.3349 + 5.5801i例:复数矩阵的生成及运算 A=[1,3;2,4]-[5,8;6,9]*iB=[1+5i,2+6i;3+8*i,4+9*i] C=A*B A =1.0000 - 5.0000i 3.0000 - 8.0000i2.0000 - 6.0000i 4.0000 - 9.0000i B =1.0000 + 5.0000i2.0000 + 6.0000i3.0000 + 8.0000i4.0000 + 9.0000i C =1.0e+002 *0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700 例:求上例复数矩阵C 的实部、虚部、模和相角. C_real=real(C) C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi %以度为单位计算相角 C_real = 99 116 116 137 C_imag = 0 -9 9 0 C_magnitude =99.0000 116.3486 116.3486 137.0000 C_phase =0 -4.4365 4.4365 0 例:指令行操作过程示例. (1)若用户想计算51)3.0sin(21+=πy 的值,那末用户应依次键入以下字符y1=2*sin(0.3*pi)/(1+sqrt(5))(2)按【Enter 】键,该指令便被执行,并给出以下结果 y1 =0.5000 若又想计算51)3.0cos(22+=πy ,可以简便地用操作键获得指令,具体办法是: 先用键调回已输入过的指令 y1=2*sin(0.3*pi)/(1+sqrt(5)) ;然后移动光标,把y1改成y2;把 sin 改成 cos 便可.即得 y2=2*cos(0.3*pi)/(1+sqrt(5)) y2 =0.3633注:设置精度值. t = 2.8957e-007digits(8) %精确到小数点后8位 sym(t,'d') ans =.28957372e-6四、阵列与矩阵MATLAB 的运算事实上是以阵列 (array) 及矩阵 (matrix) 方式在做运算.阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式.宣告一变量为阵列或是矩阵时,须用中括号[ ] 将元素置于其中.阵列为一维元素所构成,而矩阵为多维元素所组成.例如: » x=[1 2 3 4 5 6 7 8] ;% 一维 1x8 阵列例:简单矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321A 的输入步骤.(1)在键盘上输入下列内容:( 以 ; 区隔各列的元素)A = [1,2,3; 4,5,6; 7,8,9](2)按【Enter 】键,指令被执行.(3)在指令执行后,MATLAB 指令窗中将显示以下结果: A =1 2 3 4 5 6 7 8 9 例:矩阵的分行输入 A=[1,2,3 4,5,6 7,8,9](以下是显示结果)A =1 2 34 5 67 8 9>>a=[1,4,6,8,10] %一维矩阵>>a(3) % a的第三个元素ans =6»x =[1 2 3 4 5 6 7 84 5 6 7 8 9 10 11]; %二维2x8 矩阵» x(3) % x的第三个元素ans =2» x([1 2 5]) % x的第一、二、五个元素ans =1 4 3>> x(2,3) % x的第二行第三列的元素ans =6x(1:5) % x的第前五个元素ans =1 42 5 3» x(10:end) % x的第十个元素后的元素ans =8 6 9 7 10 8 11» x(10:-1:2) % x的第十个元素和第二个元素的倒排ans =8 5 7 4 6 3 5 2 4» x(find(x>5)) % x中大于5的元素ans =6 7 8 6 9 7 10 8 11» x(4)=100 %给x的第四个元素重新给值x =1 2 3 4 5 6 7 84 100 6 7 8 9 10 11» x(3)=[] %删除第三个元素(不是二维数组)x =Columns 1 through 121 4 100 3 6 4 7 5 8 6 9 7Columns 13 through 1510 8 11» x(16)=1 %加入第十六个元素x =Columns 1 through 121 4 100 3 6 4 7 5 8 6 9 7Columns 13 through 1610 8 11 1当元素很多的时候,则须采用以下的方式:» x=(1:2.5:120); % 以:起始值=1,增量值=2,终止值=120的矩阵» x=linspa ce(0,1,100);% 利用linspace,以区隔起始值=0,终止值=1之间,元素数目=100»a=[]%空矩阵a =[]» zeros(2,2)%全为0的矩阵ans =0 000» ones(3,3) %全为1的矩阵ans =1 1 11 1 11 1 1» rand(2,4);%随机矩阵»a=1:7, b=1:0.2:5; %更直接的方式»c=[b a];%可利用先前建立的阵列 a 及阵列 b ,组成新阵列注:以下将阵列的运算符号及其意义列出,除了加减符号外其余的阵列运算符号均须多加. 符号.1. 阵列运算功能(注意:一定要多加. 符号)+加-减.*乘./左除.\右除.^次方.'转置>> a=1:5; a-2 % 从阵列a减2ans =-1 0 1 2 3>> 2*a-1 % 以2乘阵列a再减1ans =1 3 5 7 9>> b=1:2:9; a+b % 阵列a加阵列bans =2 5 8 11 14>> a.*b % 阵列a及b中的元素与元素相乘ans =1 6 15 28 45>> a./b % 阵列a及b中的元素与元素相除ans =1.0000 0.66667 0.6000 0.5714 0.5556>> a.^2 % 阵列中的各个元素作二次方ans =1 4 9 16 25>> 2.^a % 以2为底,以阵列中的各个元素为次方ans =2 4 8 16 32>> b.^a % 以阵列b中的各个元素为底,以阵列a中的各个元素为次方ans =1 9 125 2401 59049>> b=a' % 阵列b是阵列a的转置结果b =123452. 矩阵的几种基本变换操作(1) 通过在矩阵变量后加’的方法来表示转置运算>>a=[10,2,12;34,2,4;98,34,6];>>a'ans =10 34 982 2 3412 4 6(2) 矩阵求逆>>inv(a)ans =-0.0116 0.0372 -0.00150.0176 -0.1047 0.03450.0901 -0.0135 -0.0045(3) 矩阵求伪逆>>pinv(a)ans =-0.0116 0.0372 -0.00150.0176 -0.1047 0.03450.0901 -0.0135 -0.0045(4) 左右反转>>fliplr(a)ans =12 2 104 2 346 34 98(5) 矩阵的特征值>>[u,v]=eig(a)u =-0.2960 0.3635 -0.3600-0.2925 -0.4128 0.7886-0.9093 -0.8352 0.4985v =48.8395 0 00 -19.8451 00 0 -10.9943 (6) 上下反转>>flipud(a)ans =98 34 634 2 410 2 12(7) 旋转90度>>rot90(a)ans =12 4 62 2 3410 34 98(8) 取出上三角和下三角>>triu(a)ans =10 2 120 2 40 0 6>>tril(a)ans =10 0 034 2 098 34 6>>[l,u]=lu(a)l = 0.1020 0.1500 1.00000.3469 1.0000 01.0000 0 0u = 98.0000 34.0000 6.00000 -9.7959 1.91840 0 11.1000 (9) 正交分解>>[q,r]=qr(a)q =-0.0960 -0.1232 -0.9877-0.3263 -0.9336 0.1482-0.9404 0.3365 0.0494r =-104.2113 -32.8179 -8.09890 9.3265 -3.19410 0 -10.9638 (10) 奇异值分解>>[u,s,v]=svd(a)u =0.1003 -0.8857 0.45320.3031 -0.4066 -0.86180.9477 0.2239 0.2277s =109.5895 0 00 12.0373 00 0 8.0778v =0.9506 -0.0619 -0.30410.3014 0.4176 0.85720.0739 -0.9065 0.4156 (11) 求矩阵的范数>>norm(a)ans =109.5895>>norm(a,1)ans =142>>norm(a,inf)ans =138(12) 子矩阵提取已知A=magic(4),提取A矩阵全部奇数行,所有列;提取A矩阵 3,2,1 行、2,3,4 列构成子矩阵;将A矩阵左右翻转; 上下翻转;旋转 90°; 旋转180°. >> A=magic(4)A=16 2 3 135 11 10 89 7 6 124 14 15 1>> B=A(1:2:end,:)B =16 2 3 139 7 6 12>> B2=A([3 2 1],[2 3 4])B2 =7 6 1211 10 82 3 13>> fliplr(A)ans =13 3 2 168 10 11 512 6 7 91 15 14 4>> flipud(A)ans =4 14 15 19 7 6 125 11 10 816 2 3 13>> rot90(A)ans =13 8 12 13 10 6 152 11 7 1416 5 9 4>> rot90(ans)ans =1 15 14 412 6 7 98 10 11 513 3 2 16习题1、求解线性方程组XA=b正确的命令格式是(),其中A,b分别是已知的3×3的可逆矩阵和1×3向量.(A)A/b (B)b/A (C)b\A (D)A\b2、用户可以用命令()设置数据以有理分式的格式输出.3、已知V=-3:3,则逻辑表达式V>2&V<-1|V==3的返回结果是4、已知A=reshape(1:10,2,5),使用单下标提取数值为3的元素的方法是A( ) .5、下面定义元胞数组的语句是().(A)S=zeros(4) (B)S=’struct’(C)S=cell(4) (D)S= struct('Struct',[])6、MATLAB语句A=[1,2,3;4,5,6;7,8,0];A(2,:)*A(:,1)的结果显示为7、运行下面语句,其中一行有错误,在右边下划线上说明错误的原因.A=magic(4);B=A(1:3,:);C=A(:,end:-2:1)D=[B,C]8、运行下面语句,其中一行有错误,在右边下划线上说明错误的原因.A=magic(4);B=A(1:3,:);C=A(:,end:-2:1)D=[B,C]。

MATLAB数值计算

MATLAB数值计算
11
自然对数〔以e为底〕
常用对数〔以10为底〕
12
2.2 矩阵和数组
2.2.1 矩阵的赋值 2.2.2 向量的生成 2.2.3 矩阵元素 2.2.4 复数表示
13
2.2.1 矩阵的赋值
(1). 直接输入法创立矩阵
矩阵的全部元素必需放在方括号“[]”内;
矩阵元素之间必需用逗号“,”或空格隔开;
30
〔2〕.矩阵的赋值
全下标方式:A(i,j)=B给A矩阵的局部元素赋值 则B矩阵的行列数必需等于A矩阵的行列数。
A(1:2,1:3)=[1 1 1;1 1 1] A=1 1 1 6 2
1 1147 7 5715 0 3454 23 13 6 0 3
31
单下标方式:A(s)=b,b为向量,元素个数必需等 于A矩阵的元素个数。
44
〔6〕. 矩阵的翻转
矩阵的翻转及对角化操作函数
命令
说明
flipud(A) 矩阵作上下翻转
fliplr(A) rot90(A)
矩阵作左右翻转 矩阵逆时针翻转90°
diag(A) 提取矩阵A的对角元素,返回列向量
diag(V) 以列向量V作对角元素创建对角矩阵
tril(A)
提取矩阵A的下三角矩阵
triu(A)
61
关系运算的规章
当参与运算的矩阵是两同维矩阵A和B时, 关系运算的结果是将矩阵A 和B 下标一样的对 应元素逐一进展关系比较,假设关系成立则比 较结果值为“1”,假设关系不成立则比较结 果值为“0”。也即关系运算的结果是生成一 个与A 和B 维数一样的矩阵,其元素值为“0” 或“1”。 算术运算比关系运算具有更高的优先权。
取值 用于结果的缺省变量名 圆周率 计算机的最小数,当和1相加就产生一个比1大的数 浮点运算数 无穷大,如1/0 不定量,如0/0

第二章 MATLAB数值计算

第二章 MATLAB数值计算
{向量(Vector):是指1×n或n×1的矩阵,即只 有一行或者一列的矩阵。
{矩阵(Matrix):是一个矩形的数组,即二维 数组,其中向量和标量都是矩阵的特例,0×0矩 阵为空矩阵([])。
{数组(Array):是指n维的数组,为矩阵的延 伸,其中矩阵和向量都是数组的特例。
复数(Complex)
以m×n的矩阵a为例,若元素a(i,j)则 对应的“单下标”为s= (j-1)×m+i。
a(1,2) a(4)
a(2,3) a(8)
2. 子矩阵块的产生
子矩阵是从对应矩阵中取出一部 分元素构成的。 (1)全下标方式
例 设矩阵A是已知的66矩阵
A(1:3,2:5) A的前3行,及第2到5列元素构成的子矩阵
数值采用十进制表示,可以用带小 数点的形式直接表示,也可以用科学计 数法,数值的表示范围是10-309~10309 。 例如:
-2、5.67、2.56e-56(表示2.56×10-56)、 4.68e204(表示4.68×10204)
矩阵和数组的概念
{标量(Scalar):是指1×1的矩阵,即只含一个 数的矩阵。
表示数组A和B中的对应元素相乘。A和B数组必 须大小相同,除非其中有一个是标量。
(3) 矩阵和数组的除法(division) 矩阵的除法运算表达式有两种:“A\B”和“A/B”, 运算符为“\”和“/”分别表示左除和右除。 X=B/A是X*A=B的解,B/A=B*A-1。 X=A\B是方程A*X=B的解, A\B=A-1*B。 数组的除法运算表达式有两种:“A.\B”和“A./B”, 表示数组相应元素左除和右除。 A和B数组必须大小相同,除非其中有一个是标量。
产生均匀分布的随机矩阵,元素取值 范围0.0~1.0。 产生正态分布的随机矩阵

MATLAB数值计算

MATLAB数值计算
湖 北 科 技 职 业 学 院
•求多项式 求多项式p=[1 0 -3 5]在x=5时的值 时的值p(5),可以用函数 可以用函数 求多项式 在 时的值 可以 polyval(p,5).其中第一个参数是多项式的系数向量 第 其中第一个参数是多项式的系数向量,第 其中第一个参数是多项式的系数向量 二个是自变量的取值(可以是矩阵 可以是矩阵). 二个是自变量的取值 可以是矩阵 •函数 函数polyvalm(p,X)的第二个参数是方阵 求以矩阵为 的第二个参数是方阵,求以矩阵为 函数 的第二个参数是方阵 自变量的多项式的值. 自变量的多项式的值 •函数 函数roots(p)可以找一个多项式的根 可以找一个多项式的根. 函数 可以找一个多项式的根
湖 北 科 技 职 业 学 院
•矩阵的调用 矩阵的调用 假如A是一个已知 是一个已知10*10的方阵 那么 的方阵,那么 假如 是一个已知 的方阵 那么: A(:,3)是A的第 列元素构成的列向量 的第3列元素构成的列向量 是 的第 列元素构成的列向量; A(5,:)是A的第 行元素构成的行向量 的第5行元素构成的行向量 是 的第 行元素构成的行向量; A(1:5,3)是A的前 行的第 列元素构成的列向量 的前5行的第 列元素构成的列向量; 是 的前 行的第3列元素构成的列向量 A(1:5,7:10)是A的前 行,第7到第 列元素构成的子矩阵 的前5行 第 到第 列元素构成的子矩阵; 到第10列元素构成的子矩阵 的前 A([1 3 5 ],[2 4 6])是A的第 、3、5行,第2、4、6列元素构成的子矩阵 的第1、 、 行 第 、 、 列元素构成的子矩阵 列元素构成的子矩阵; 的第 A(:,7:-1:3)是A的第 、6、5、4、3列元素构成的子矩阵. 的第7、 、 、 、 列元素构成的子矩阵. 的第 列元素构成的子矩阵 A(:,[2 4])=[]用于把 的第 、4列删除 形成 的一个子矩阵 用于把A的第 的第2、 列删除 形成A的一个子矩阵 列删除,形成 的一个子矩阵. 矩阵运算 •矩阵的四则运算 矩阵的四则运算 ①矩阵相加减 矩阵相加减. 矩阵相加减 同型矩阵相加减等于对应矩阵的元素相加减,用符号 同型矩阵相加减等于对应矩阵的元素相加减 用符号 表示. “+”和“-”表示 和 表示

MATLAB的数值运算

MATLAB的数值运算

05
线性代数运算
向量和矩阵的运算
向量减法
向量减法是指将一个向量的对 应元素减去另一个向量的对应 元素,得到一个新的向量。
向量点乘
向量点乘是指将两个向量的对 应元素相乘,并求和,得到一 个标量。
向量加法
向量加法是指将两个向量的对 应元素相加,得到一个新的向 量。
标量乘法
标量乘法是指将一个标量与一 个向量的每个元素相乘,得到 一个新的向量。
数据可视化
MATLAB内置绘图函数,支持多种图形类型, 包括散点图、线图、曲面图等。
算法开发
MATLAB支持脚本编程和函数封装,方便用户实 现自定义算法。
数据分析
MATLAB提供了数据导入、清洗、处理和统计分析 等功能。
机器学习
MATLAB集成了机器学习工具箱,支持多种机器 学习算法和模型训练。
信号处理
1980年代中
MATLAB正式发布,成为工程计算领 域的标准工具。
1990年代
MATLAB不断扩展,增加了更多功能 和工具箱,成为多学科领域的计算平 台。
21世纪
MATLAB持续发展,支持更多算法和 编程语言,广泛应用于科研、工程和 商业领域。
MATLAB的主要功能和特点
数值计算
MATLAB提供了丰富的数值计算函数,支持 矩阵运算、线性代数、数值积分、微分等。
向量叉乘
向量叉乘是指将两个向量的对 应元素相乘,并按照一定规则 排列,得到一个新的向量。
特征值和特征向量
特征值
特征值是指一个矩阵所对应的一元二次方程的根,也是该矩阵对一个非零向量的缩放因 子。
特征向量
特征向量是指一个矩阵所对应的特征值对应的非零向量。
线性方程组的求解

第六章matlab数值计算

第六章matlab数值计算

➢一维插值方法比较
例6-10 用不同插值法对数据进行一维插值
x=0:1:10; y =[0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.657 0.9894 0.4121 -0.5440]; plot(x,y,'co'),hold on fplot(@sin,[0 10]) xi=0:0.15:10; yi=interp1(x,y,xi); figure,plot(xi,yi,'r+'),text(0.7028,0.4649,'线性插值\rightarrow') yi2=interp1(x,y,xi,'nearst'); figure,plot(xi,yi2,'c*'),text(3.537,0.1374,'\leftarrow最近插值') yi3=interp1(x,y,xi,'cubic'); plot(xi,yi3,'md'),text(2.408,0.8333,'\leftarrow三次插值') yi4=interp1(x,y,xi,'spline'); figure,plot(xi,yi4,'kh'),text(4.62,0.8158,'三次样条插值 \rightarrow')
[x,y]=meshgrid(-3:0.8:3); z=peaks(x,y); [xi,yi]=meshgrid(-1:0.25:3); zi_nearest=interp2(x,y,z,xi,yi,'nearset'); zi_linear=interp2(x,y,z,xi,yi); zi_spline=interp2(x,y,z,xi,yi,'spline'); figure; hold on; subplot(2,2,1); meshc(x,y,z); title(‘原始数据'); subplot(2,2,2); meshc(xi,yi,zi_nearest); title(‘最邻近插值'); subplot(2,2,3); meshc(xi,yi,zi_linear); title(‘线性插值'); subplot(2,2,4); meshc(xi,yi,zi_spline); title(‘三次样条插值');

数值计算第六讲

数值计算第六讲

曲线拟合的最小二乘法
多项式插值
(拉格朗日, 牛顿) 分段多项式插值 样条函数插值
Wenjian Yu 2
函数逼近问题的例子
1.4
sqrt(1+t2)

1.3 1.2 1.1 1 0 0.2 0.6 t cos(t) /2-4/ 0.4 0.8 1
傅里叶变换, 信号的频谱分析
3 2.5 2 1.5 1 0.5 -3 -2 -1 0 t 1 2 3
Wenjian Yu 68
样条插值及其他

B-样条函数
有k-1阶连续导数的分段k次多项式为k次样条函数 可写成基函数的线性组合,
基函数为B-样条函数 1次样条函数为分段线性函数 1 B-样条基函数应用广泛(计算机图形 学, 几何建模, 数值求解微分方程)

Matlab
yi
= interp1(x,y,xi,method) „nearest’, „linear‟, „spline‟, „pchip‟ interp2, interp3, pchip, spline, “Spline toolbox”

定义6.6
DFT
Wenjian Yu
40
插值与多项式插值

解存在、唯一吗?
Th6.6
(Vandermonde阵)
Wenjian Yu
41
Lagrange插值法

不便于计算、以及理论分析
“两点式”直线公式:
Wenjian Yu
42
Lagrange插值法

Lagrange 插值函数
(一个常用的技巧)
数值分析与算法 (6)
Numerical Analysis & Algorithms

(完整版)第一讲Matlab基本数值计算

(完整版)第一讲Matlab基本数值计算

第一讲Matlab 基本数值计算一、矩阵在Matlab中,一个矩阵可以使数学意义上的矩阵,也可以是标量或者向量。

对于一个标量(一个数)可以将之作为11⨯的矩阵,而向量(一行或一列)则可以认为是1n⨯⨯或者1n⨯的矩阵。

另外,一个00矩阵在Matlab中被认为是空矩阵,用“[]”表示。

1、矩阵的创建矩阵的创建可以有以下几种形式⑴直接输入>> A=[1 2 3;4 3 7;2 4 1]注意:每行间的元素用逗号或空格分开,行与行之间用分号或回车分开,矩阵标示是一对中括号[ ]。

也可以采用数组编辑器(Array Editor)像在Excel电子表格中据那样输入数据。

⑵通过语句和函数产生常用的特殊矩阵:zeros:全零矩阵,ones:全1矩阵,eye:单位矩阵,rand:随机矩阵,diag:对角阵等。

例:>> A=ones(3,4)>> E=eye(3)>> D=diag([3 5 2])⑶对矩阵进行裁剪或拼接⑷从外部文件装入数据外部数据文件可以是以保存的Matlab工作空间,也可以是文本(.txt)文件,或者是电子表格创建的文件(.xls).例:已知一个文本格式的数据文件E:\Mathmodel\data1.txt>> load e:\Mathmodel\data1.txt得到一个变量名与文件名相同的矩阵(data1)。

注意:文件的扩展名不能省略。

例:已知一个Excel文件的路径为E:\Mathmodel\data2.xlsa. 缺省操作:>> NUMBER=xlsread('E:\Mathmodel\data2.xls')>>[NUMBER,TXT]=xlsread('E:\Mathmodel\data2.xls')默认操作是从第一个工作表(sheet1)中提取数据。

b. 从指定的工作表(而不是第一个)中提取数据:>> NUMBER=xlsread('E:\Mathmodel\data2.xls','S2')或者>> NUMBER=xlsread('E:\Mathmodel\data2.xls',2)c.从指定的工作表中读取指定区域的数据:>> NUMBER=xlsread('E:\Mathmodel\data2.xls',2,'g3:i8')2、Matlab的矩阵运算⑴基本运算矩阵的加(+)、减(-)、乘(*)、乘方(^)运算法则与代数中的定义完全一致。

matlab基础matlab数值运算

matlab基础matlab数值运算

04
数值运算进阶
线性方程组求解
直接法
使用高斯消元法、LU分解等直接求解线性方程组的方法。
迭代法
使用如雅可比迭代、高斯-赛德尔迭代等迭代方法求解线性方程 组。
预处理技术
通过预处理手段改进直接法或迭代法的收敛速度和稳定性。
数值积分与微分
数值积分
使用如梯形法、辛普森法等数值积分方法计算 函数的积分值。
频谱分析
通过快速傅里叶变换等数值方法对信号进行频谱分析,提 取信号的频率成分和特征,用于音频、雷达、通信等领域。
信号压缩
利用数值方法对信号进行压缩编码,减小存储和传输成本, 用于音频、视频、遥感等领域。
在图像处理中的应用
图像增强
通过数值运算对图像进 行增强处理,提高图像 的对比度、清晰度等, 用于医学影像、安防监 控等领域。
数值微分
通过差分法计算函数的导数值,如前向差分、 后向差分和中心差分。
自动微分
利用Matlab的符号计算功能,自动求取函数的导数。
插值与拟合
一维插值
使用如拉格朗日插值、牛顿插值等一维插值方法。
多维插值
使用如样条插值、克里金插值等多维插值方法。
曲线拟合
通过最小二乘法等手段对数据进行曲线拟合。
数值优化
流体动力学模拟
通过数值方法求解流体动力学方程,模拟流体流动、传热等现象, 用于航空航天、流体机械等领域。
电磁场模拟
利用数值方法求解电磁场方程,模拟电磁波的传播、散射等现象, 用于雷达、通信、电磁兼容等领域。
在信号处理中的应用
信号滤波
利用数值运算对信号进行滤波处理,去除噪声、增强信号 特征,用于语音、图像、通信等领域。
图像去噪
利用数值方法对图像进 行去噪处理,去除图像 中的噪声和干扰,用于 遥感影像、医学影像等 领域。

学习使用MATLAB进行数值计算和数据分析

学习使用MATLAB进行数值计算和数据分析

学习使用MATLAB进行数值计算和数据分析---第一章:MATLAB的基本介绍MATLAB是一种强大的数值计算和数据分析软件,广泛应用于科学研究、工程设计等领域。

它的主要特点是简洁直观的用户界面和丰富的数学函数库。

在本章中,我们将介绍MATLAB的基本特性和使用方法。

1.1 MATLAB的历史与发展MATLAB是由MathWorks公司于1984年首次推出的。

起初,它作为一个用于矩阵计算的工具被广泛使用。

随着时间的推移,MATLAB逐渐拓展了功能,加入了许多其他数学和工程计算的功能,如符号计算、数据统计和可视化。

如今,MATLAB已经成为一种非常受欢迎的工具。

1.2 MATLAB的安装和环境设置要开始使用MATLAB,首先需要从MathWorks官网下载并安装MATLAB软件。

安装完成后,打开MATLAB并设置工作目录和默认工作文件夹。

工作目录是指存储MATLAB代码和数据文件的文件夹,而默认工作文件夹是指MATLAB打开时默认选择的文件夹。

1.3 MATLAB的基本语法和命令MATLAB的基本语法和命令非常简单易懂。

它采用类似于其他编程语言的命令行交互方式,用户可以直接在命令行输入MATLAB语句并执行。

例如,可以输入"2+2"并按回车键得到结果4。

此外,MATLAB还具有许多内置的数学函数和运算符,可以进行各种数值计算和数据分析。

1.4 MATLAB脚本和函数在MATLAB中,可以使用脚本和函数来组织和执行一系列MATLAB命令。

脚本是一系列命令的集合,可以一次性运行。

函数是一段可以重复使用的代码,可以接受输入参数并返回输出结果。

通过编写脚本和函数,可以提高MATLAB代码的可重复性和可维护性。

第二章:数值计算MATLAB作为一种数值计算工具,提供了丰富的数学函数和算法,可以用于解决各种数值计算问题。

在本章中,我们将介绍MATLAB在数值计算方面的一些常用功能和技巧。

2.1 数值计算方法MATLAB中包含了许多数值计算方法,如数值积分、数值微分、线性代数求解等。

MATLAB指南(基础知识及其应用大全)

MATLAB指南(基础知识及其应用大全)

MATLAB指南(基础知识及其应用大全)一、 MATLAB的数值计算功能1.1 创建矩阵(分号表示换行)如A=[2,3,5;1,2,8]法1:直接输入:A=[ 2 3 4.2 -1.31 2.3 5 0.3-2 4 -1.3 4.5]法2(随机产生):产生3×4阶随机阵A=rand ( 3, 4 )1.2.矩阵运算和数组运算两矩阵相乘、相加减A*B A+B A-B两矩阵点乘 A. *B (即对应元素相乘)矩阵求逆inv ( A )矩阵转置A'矩阵相除左除 A \ B (即A的逆阵A-1乘B )习惯上用右除 A / B ( 即A乘B的逆阵B-1 )点除 A. / B (即A与B的对应元素相除)A. / m (A的各元素均除以m)m./A (m除以A的各元素)矩阵乘方A^p (A的正整数次方), A. ^p (表示A的每一个元素a ij^p )基本矩阵函数:det(A) 方阵的行列式inv(A) 逆矩阵eig(A) 矩阵的特征值[v, d ]=eig(A) 矩阵的特征向量和特征值rank(A) 矩阵的秩trace(A) 矩阵的迹norm(A) 矩阵的范数a ij=A(I,j) 表示矩阵A的元素a ij a11a13a14A1=A(1:3,[1 3 4] )表示矩阵A中第1到3行的a21a23a24第1、3、4个元素取出组成新的矩阵a31a33a34特殊矩阵zeros (m,n) 形成m×n阶零矩阵ones (m,n) 形成m×n阶全为1的矩阵eye (m,n) 形成m×n阶单位矩阵rand (m,n) 形成m×n阶随机矩阵diag(v) 对角线元素为向量v 的方阵randn (n) 形成n阶正态随机矩阵tril (A) 形成下三角矩阵triu (A) 形成上三角矩阵1A (:,2)=[ ] 删除第2列,A(:,3)=[1;2;3] 把第三列变为(1, 2, 3)A (2,:)=[ ] 删除第2行,A(3,:)=[1,2,3] 把第三行变为(1, 2, 3)orth(A) 求A的正交基magic (n) 产生n阶魔方阵poly(A) 求A的特征多项式的系数,poly2str(A) 求A的特征多项式balance(A)相似变换1.3.函数sin (x) 正弦asin (x) 反正弦cos (x) 余弦acos(x) 反余弦tan (x) 正切atan (x) 反正切cot (x) 余切acot (x) 反余切sec (x) 正割asec (x) 反正割csc (x) 余割acsc (x) 反余割exp (x) 指数e x log (x) e为底的对数log10 (x) 10为底对数sqrt (x) 开平方abs (x) 绝对值或模a+b*i 复数angle (x) 复数幅角conj (x) 共轭复数imag (x) 复数虚部real (x) 复数实部eps 相对误差round (x) 四舍五入rem (x, y) x除以y的余数fix (x) 近似到距0最近的整数floor (x) 近似到小于本身的最大整数ceil (x) 近似到大于本身的最小整数pi 圆周率inf 无穷大二、数值分析2.1.数理统计函数max (A) 矩阵A每列的最大值max (v) 向量v (数组)的最大值min (A) 矩阵A每列的最小值min (v) 向量v(数组)的最小值mean (A) 矩阵A每列的平均值mean (v) 向量v(数组)的平均数median (A) 矩阵A每列的中位数sum (A) 矩阵A每列和sum (v) 向量v(数组)求和sort (A) 矩阵A每列升序排列sort (v) 向量v(数组)升序排列[y, i]= sort (v) 向量v升序排列,并记原来位置std (A) 每列求标准差(修正值)std (v) 求数组标准差(修正值)cumprod (A) 矩阵A每列累计积prod (v) 求向量各元素的积cumsum (A) 矩阵A每列累积和cumsum (v) 累积和cov (A) 协方差矩阵cov (x, y) X和Y的协方差corrcoef (A) 求相关系数矩阵corrcoef (x, y) X和Y的相关系数cross (A, B) 求A和B的外积dot (A, B) 求A和B的内积22.2.积分、求根、求极值积分:求f(x)=e x sinx在区间[0 ,л]上的积分(分号作用:1.换行2.不输出)(x的定义域)x=[0:0.01:pi ];或d=pi/100;x=0:d:pi;( 梯形法)y=sin(x).*exp(x);y=sin(x).*exp(x);cum=trapz(x,y) cum=trapz(y)*d得:12.0701 得12.0701欧拉法:d=pi/100;x=0:d:pi;nt=length(x);y=sin(x).*exp(x);sc=cumsum(y)*d;scf=sc(nt)求根:求解x^3-6*x^2-72x-27=0解法1:(适合于x的n次方程)r=roots([1,-6,-72,-27])则x=12.1229, -5.734, -0.3084解法2:x=fzero( 'x^3-6*x^2-72*x-27',10) 则x=12.1229(*号不能省) x=fzero( 'x^3-6*x^2-72*x-27',0) 则x=-0.3084x=fzero( 'x^3-6*x^2-72*x-27',-4) 则x=-5.734(10,0,-4是初始值,预先得知道该初始值附近有根计算机才能进行计算)求解 cos(x)=0 在-л,л之间的根x=fzero('cos(x)',1) 则x=1.5708x=fzero('cos(x)',-1) 则x=-1.5708cos(x)+sin(x)+x=0x=fzero('cos(x)+sin(x)+x',1) 则x=-0.4566 解法3: y='sin(x)+cos(x)+x';r=solve(y) 则r=-0.4566y='x^2-3*x+12';r=solve(y) 则r=3/2+1/2i*39^1/2,r=3/2-1/2i*39^1/2y='x^2–a*x+4';r=solve(y,‘x’) 则x=a/2+1/2(a^2-16)^1/2x=a/2-1/2(a^2-16)^1/2r=solve(y,'a') 则 a=(x^2+4)/x求极值点:求 y=x^3-2*x-5 在0<x<5中的最小值点x=fmins('x^3-2*x-5',0,5) 则x=0.816532.3. 多项式运算(1)计算y=x^5+0.1*x^4-100 在x=0.1处和x=10处的值y=[1 .1 0 0 0 -100];y=polyval (y, 0.1 ) 则y= -100重新运行:y=[1 .1 0 0 0 -100];y=polyval (y, 10 ) 则y= 100900(2)多项式求根:x^4+10*x^3-20=0y=[1 10 0 0 -20 ];xs=roots(y) 则x= -10.0199, -.5964+1.1358i, -.5964 -,1.1358i, 1.2128(3)求以-5,5 , -3为根的多项式x=[ -5,5, -3];p=poly(x) 则显示:1 3 -25 -75 ,即x^3 -3x^2-25x-75(4)多项式微分:y=x^5+0.1x^4-200p=[1, 0.1, 0, 0, 0, -200 ];y=polyder(p) 则显示:5 0.4 0 0 0即y=5x^4+0.4x^3(5)多项式相乘、除展开(x^2+2*x+2)(x+4)(x+1)c=conv([1 , 2 , 2 ] , conv ([ 1 , 4 ] , [1 , 1 ]));c=poly2str(c, 'x' ) 则c=x^4+7x^3+16x^2+18x+8相除(x^4+7x^3+16x^2+18x+8) / (x+4)c=[1 7 16 18 8 ];[ q, r1 ]=deconv( c, [ 1,4 ])则q=1 3 4 2 , r1= 0 0 0 0 0即q=x^3+3x^2+4x+2 余数为0[q, r2]=deconv(c, [1 ,3 ])则g=1 4 4 6, r2= 0 0 0 0 -10 (余数为-10)2.4. 数理统计函数x=[ 1.25 1.2 2.1 2.5 2.4 1.86 1.46 1.59 2.3]最大值:ma=max(x) ma=2.5 最小值:mi=min(x) mi=1.2平均数:me=mean(x) me=1.8511 中数:m0=median(x) m0=1.8688 标准差(修正值):s=std(x) s=0.499 和:m=sum(x) m=16.64累积和:y=cumsum(x) y=1.25, 2.45, 4.55, 7.05, 9.45, 11.31, 12.77, 14.36, 16.66积:sm=prod(x) sm=187.6949升序排列:s=sort(x) s=1.2 1.25 1.46 1.59 1.86 2.1 2.3 2.4 2.5对于矩阵A,只要把上面式子中的x 改为A,可求得矩阵每一列的最大者,最小者,平均数,等等。

《数值分析与算法》第一讲数值计算的背景与概况

《数值分析与算法》第一讲数值计算的背景与概况

解决具体问题的能力 借助教学演示网站、Matlab软件, 提升学习兴趣!
Wenjian Yu 7
数值计算的背景与概况
Wenjian Yu
8
数值分析、科学计算、数值计算
数值计算,也称为科学计算,已成为当今科学研究的三种 基本手段之一。它是计算数学、计算机科学和其他工程学 科相结合的产物,并随着计算机的普及和各门类科学技术 的迅速发展日益受到人们的重视。

是数学规划/最优化算法的基础,部分内容也是大 数据分析、机器学习中一些复杂算法的基础
Wenjian Yu 18
误差分析基础
Wenjian Yu
19
误差分析基础
§1.2.1误差的来源 §1.2.2误差及其分类

误差与有效数字 数据传递误差与计算误差 截断误差与舍入误差
§1.2.3问题的敏感性与数据传递误差 §1.2.4算法的稳定性
• 设计数值方法(算法)的关键:将问题简化(估计带来的 误差),然后求解简化后的问题
Wenjian Yu 14
数值软件/程序包

数值计算的软件与程序包
解决常见问题,促进各个科学和工程领域的科研 了解基本原理,学习算法设计和实现技巧
成为聪明的软件/程序包使用者

存在形式和资源
商业软件/免费软件,互联网上共享的程序包 Fortran,
数 值 分 析 (1)
Numerical Analysis
课程简介
计算方法 数值分析与算法 科学计算导论(scientific computing) 数值计算基础(numerical computing) 课程目标

介绍广泛应用于科学与工程领域的各种数值计

介绍如何运用MATLAB进行科学计算与数据分析

介绍如何运用MATLAB进行科学计算与数据分析

介绍如何运用MATLAB进行科学计算与数据分析一、引言MATLAB是由MathWorks公司开发的一款专业科学计算与数据分析软件。

它的强大功能和易于使用使得该软件成为科学家、工程师和研究者们的首选。

本文将介绍如何运用MATLAB进行科学计算与数据分析,并探讨具体的应用领域和方法。

二、MATLAB的基础知识在开始运用MATLAB进行科学计算和数据分析之前,我们需要先了解一些基本知识。

MATLAB中最基础的数据类型是矩阵。

矩阵是MATLAB中用于存储和处理数据的基本形式。

我们可以使用MATLAB进行矩阵与向量的运算,包括加法、减法、乘法等。

此外,MATLAB还支持各种数据类型,如数值型、逻辑型、字符型等,以及各类运算操作和函数。

三、科学计算1. 数值模拟MATLAB提供了丰富的数值计算工具箱,可以用于解决数学模型和方程的数值模拟问题。

例如,我们可以使用ODE工具箱来求解常微分方程,并可视化结果。

另外,MATLAB还提供了PDE工具箱,用于求解偏微分方程。

这些工具箱提供了各种数值方法和算法,方便用户进行科学计算。

2. 优化问题MATLAB也是一个强大的优化工具。

它提供了用于求解约束和无约束优化问题的函数。

用户可以指定目标函数和约束条件,并使用MATLAB提供的优化算法找到最优解。

这在工程设计和生产计划等方面具有广泛的应用。

3. 统计分析统计分析是数据分析和科学计算的重要组成部分。

MATLAB 提供了一系列用于统计分析的函数和工具箱。

用户可以使用这些函数计算数据的各种统计参数,如均值、标准差、相关系数等。

此外,MATLAB还支持各类统计图表的绘制,如直方图、散点图和盒图等,以便用户更直观地了解数据的分布情况。

四、数据分析1. 数据处理与清洗在进行数据分析之前,我们通常需要对原始数据进行处理与清洗以提高数据质量。

MATLAB提供了丰富的数据处理函数和工具箱。

用户可以使用这些函数对数据进行滤波、插值、平滑和重采样等操作,以去除噪声和异常值,并对数据进行修正和优化。

第二讲道客巴巴MATLAB的数值计算-PPT精选.ppt

第二讲道客巴巴MATLAB的数值计算-PPT精选.ppt

即可恢复保 存过的所有 变量
mat文件是标准的二进制文件, 还可以ASCII码形式保存。
三、矩阵运算
1. 矩阵加、减(+,-)运算
规则: 相加、减的两矩阵必须有相同的行和
列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。
标量与矩阵的所有元素分别进行加 减操作。
2. 矩阵乘()运算
规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘
第二讲 MATLAB的数值计算
—— matlab 具有出色的数值计 算能力,占据世界上数值计算软 件的主导地位
数值运算的功能
创建矩阵 矩阵运算 多项式运算 线性方程组 数值统计 线性插值 函数优化 微分方程的数值解
一、命令行的基本操作
1. 创建矩阵的方法
直接输入法 规则:
矩阵元素必须用[ ]括住 矩阵元素必须用逗号或空格分隔 在[ ]内矩阵的行与行之间必须
a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b c =14
32 23
d=[-1;0;2]; f=pi*d f = -3.1416
0 6.2832 矩阵除的运算在线性代数中没有, 有矩阵逆的运算,在matlab中有两种 矩阵除运算。
两种除法:\和/,分别表示左除和右除。 如果A矩阵是非奇异方阵,则A\B和B/A 运算可以实现。
当一个指令或矩阵太长时,可用••• 续行
冒号的作用 用于生成等间隔的向量,默认 间隔为1。 用于选出矩阵指定行、列及元 素。 循环语句
2.用matlab函数创建矩阵
空阵 [ ] — matlab允许输入空阵,当一 项操作无结果时,返回空阵。 rand —— 随机矩阵 eye —— 单位矩阵 zeros ——全部元素都为0的矩阵 ones ——全部元素都为1的矩阵 diag ——产生对角矩阵

MATLAB课件第二章 MATLAB语言的数值计算

MATLAB课件第二章 MATLAB语言的数值计算

2.1.3 变量精度
在matlab中,变量的精度问题不需要设 定,一律使用双精度,但是我们可以通过 format命令或者更改preferences中的 Numericformat项来更改数据的显示格式. 命令格式为:format short
2.1.4 永久变量
Matlab语言设置了一些永久变量 eps,pi,Inf,NaN,i,j,nargin,nargout, realmax,realmin (1)这些变量不能被clear清除; (2)这些变量不响应who和whos; (3)nargin,nargout为函数变量; (4)pi,i,j,realmax,realmin为机器常数变 量; (5)Inf 为无穷变量,NaN为非数变量.
2、矩阵乘()运算规则:
A矩阵的列数必须等于B矩阵的行数;
标量可与任何矩阵相乘。
除算) .^ 点乘方(用于矩阵点运算) ./ 点除(用于矩阵点运算) kron 张量积 ‘ 矩阵转置 inv 矩阵求逆 fliplr 矩阵左右翻转 flipud 矩阵上下翻转 rot90 矩阵逆时针方向旋转90度
线性代数方程组的表达式为AX = B或者 XA = B,由于矩阵维数的不同,方程组解 的形式也不同,设解向量X为n×1维的,系 数矩阵A的维数为m×n维的,系数矩阵B 的维数为n×1维的;那么方程组的解可以 分为以下三类: m=n,为恰定方程,可求得唯一解; m>n,为超定方程,求最小二乘解,多 于一组解; m<n,为欠定方程,解无实际意义,解 中至多有m个非零元素。
例2.27 已知矩阵a,求特征多项式与特征根。
3、多项式计算 我们可以利用polyval函数来计算出多项 式在指定点处的值,例如:
4、卷积和反卷积(多项式乘法与除法) 例如:求a(x)=x^3+2x^2+3x+4和 b(x)=x^3+4x^2+9x+16的乘积c(x);

数学第二章matlab数值运算功能

数学第二章matlab数值运算功能

05 Matlab数值运算的优化 技巧
减少计算误差的方法
避免除法运算
在Matlab中,除法运算可能导致浮点数精度问题。为了避免这种 情况,可以使用乘法代替除法。
使用高精度数据类型
Matlab提供了多种数据类型,如双精度(double)和单精度 (single)。选择合适的数据类型可以提高计算精度。
Matlab在求解常微分方程时可以 自动调整步长,以提高计算精度 和效率。
04 数值运算在科学计算中的 应用
在物理模拟Leabharlann 的应用数值模拟通过数值方法求解物理方程,如 偏微分方程、常微分方程等,可 以模拟物理现象,如流体动力学、 电磁场等。
粒子模拟
对于粒子系统,如气体分子、液 体分子等,可以通过数值方法模 拟粒子的运动轨迹和相互作用, 从而研究系统的宏观性质。
02
Matlab可以计算矩阵的特征值和特征向量,用于分析矩阵的性
质和特征。
方程求解
03
Matlab提供了求解线性方程组和非线性方程组的函数,如
`x=Ab`和`fzero`等。
数值微积分运算
数值积分
Matlab提供了多种数值积分函数,如`quad`和 `quadl`等,可用于计算定积分和不定积分。
数值微分
特征值和特征向量
Matlab可以计算矩阵的特征值和特征向量,用于分析矩阵的性 质和特征。
数值常微分方程求解
欧拉法
01
02
03
龙格-库塔法
自适应步长控制
Matlab提供了欧拉法求解常微分 方程的函数,如`ode45`等。
Matlab也提供了多种龙格-库塔 法求解常微分方程的函数,如 `ode23`和`ode15s`等。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12

数值计算(科学计算、计算模拟、数值模拟)
◦ 没有解析解的问题: ◦ 虽有解析表达式(解),但无法(难以)计算: sin(x) ◦ 模拟通常难以达到的实验条件 (时间、金钱成本)
天体物理研究 汽车碰撞实验,芯片投片前的性能仿真

Байду номын сангаас
数值模拟的步骤
建立数学模型(需要相关学科背景) 研究数值求解方程的算法 通过计算机程序(软件)实现算法
◦ 使用数值求解非线形方程的命令fzero求������
19
其他窗口
变量空间
命令历史 命令窗口,将Matlab作 为计算器使用
20

程序编辑窗口
帮助窗口
注释语句%
多个文件
21

如何“上手”?
◦ 安装Matlab软件,版本R2009a/b或更新的 ◦ 获取NCM程序包,并设置路径
(网络学堂-”教学资源”第1项)
>> ncmgui
◦ 阅读课本第1章 ◦ 多动手实验 ◦ 熟悉“命令历史”键: “”, “” ,以及help, doc命令

通过求解几个例子问题熟悉Matlab
◦ 第1.1 ~ 1.4节
22

0.6180… ,可能是世界上最有趣的数 ? ������=1/0.6180… 1.6180 Matlab功能
◦ ◦ ◦ ◦ ◦ ◦ 表示、显示数的格式 数值、符号求解多项式方程 符号变量转为数值 函数句柄与函数的绘制 脚本程序与绘图功能 一个较复杂的函数程序(连续分数)
将地球近似成球体 计算地球的表面积:
A 4 r
2
模型误差 取半径������ ≈ ������������������������������������ 数据误差 数据误差 ������的值只能截取到有限位 计算4������������ 2 涉及到浮点数的乘法 舍入误差
15
课程重点
在计算机上运行程序(软件),
进行数值实验
13

数值模拟的步骤(续)
将计算结果用较直观的方式输出,如图形可视化方法 解释和验证计算结果。若需要,重复上面的某些步骤
上述各步骤相互间紧密地关联,影响着最终的计算结果 和效率(问题的实际应用背景也左右着方法的选择)

问题的适定性(well-defined, well-posed)

(绝对)误差, 相对误差 ������(������) = ������ − ������ 数据误差, 计算误差 数据误差引起的 以计算������(������)为例: ������ ������ − ������ ������ = ������ ������ − ������ ������ + ������ ������ − ������ ������ 计算误差由截断误差与舍入误差组成



序算法(Quicksort) 8.1965 IBM Watson研究中心的J. Cooley与Princeton大学及 AT&T Bell实验室的J. Tukey共同提出了的FFT算法 9.1977 Brigham Young大学的H. Ferguson和R. Forcade提 出的整数关系侦察算法 (实验数学, 简化量子场理论的计算) 10.1987 Yale大学的L. Greengard和V. Rokhlin发明了快速多 极算法(fast multipole algorithm,多体问题, 线性复杂度) 大多数都属于或涉及数值计算的范畴!
网络学堂”教学资源”-”课本勘误”


Where What Why


更多信息参考课程网站: :8080/2003990088/anaa.htm
3

How
◦ 课堂讲授、作业(上机解题)、期末考核

如何评分?
◦ 课程参与: 5% ◦ 作业(共5次): 60% ◦ 期末大作业/Project:40% (两者选一)
◦ 解方程: ������ − 1 1 = 1 ������
������ 2 − ������ − 1 = 0
24

求解多项式方程
������ 2 − ������ − 1 = 0

◦ 用降次排列的系数表示多项式,再用roots命令数值求解 >> p = [1 -1 -1]; ◦ 用Symbolic Math Toolbox >> r = roots(p) ◦ 用solve命令求解方程: ������ − 1 1 = 1 ������ ◦ 符号运算时间较长 ◦ 无法求解复杂方程 >> r = solve('x-1=1/x') >> phi = r(1) 符号变量转化为数值 ◦ vpa, double 命令 ◦ 注意:抑制输出符 “;” 字符串的表示, 不需申明变量类型
>> vpa(phi, 50) >> phi = double (phi)
25

函数句柄与函数的绘制
◦ 有时要将函数作为参数传递,例如积分、绘曲线、解方程 ◦ 匿名函数@ (注: inline命令在新版Matlab中已废除) ◦ ������ ������ = ������ − 1 − 1 , ������ ������ = 0 >> f = @(x) x-1-1/x ������ ◦ 在[0, 4]区间绘制������ ������ 的曲线 >> ezplot(f, [0, 4])
对象
核心
数值计算:研究求解连续数学问题的算法的学科(其中包 含、但不局限于计算误差的研究)
7

“Algorithm”
◦ 源于九世纪阿拉伯学者的名字al-Khwarizmi ◦ 其著作“al-jabr wa’l muqabalah”是现代高中代 数(algebra)课本的雏形 ◦ 他强调解决问题时,系统的过程的重要性
- 数值计算基础、Matlab介绍 喻文健

课程简介 数值计算的基础知识 Matlab与数值计算软件

浮点算术体系与误差分析
2

Who When
◦ 喻文健(东主楼8区403室),对数值计算感兴趣的你们 ◦ 周五上午9:50-12:15 (第1~16周) ◦ 六教6B407 ◦ 《Matlab数值计算》,补充内容 ◦ 增强动手实践能力
◦ 例: 用差商近似一阶导数 ������ ������ + ℎ − ������(������) ′ ������ (������) ≈ ℎ ◦ 截断误差估计为������ℎ 2,������是 ������ ′′ ������ 的上界; 舍入误差估计为 2������/ℎ,������ 是算一次函数值的误差 ◦ 随着h减小,总误差先减小后增大
11


5.1957 IBM的J. Backus领导的小组开发的Fortran优化编译器 6.1959-61 伦敦Ferranti Ltd.的J.G.F. Francis发明的QR算法,

稳定地计算中、小规模矩阵的所有特征值 7.1962 伦敦Elliott Brothers, Ltd.的Tony Hoare提出快速排
病态问题
(相对条件数) ◦ 条件数是针对问题而言的,不涉及求解的具体方法

算法的稳定性
◦ 反映了“计算过程中”的扰动对计算结果的影响程度,也 称为数值稳定性,是算法的一个重要属性 ◦ 若计算结果对舍入误差不敏感,则算法稳定
◦ 对于含一系列步骤的计算过程,若计算中的小扰动不被放 大(传播)、或放大不严重,则算法稳定
23

������ =
Matlab默认采用双精度浮点数,但有多种显示格式 format命令, 或通过File-Preferences菜单设置
1+ 5 2
>> phi = (1+sqrt(5)) / 2 黄金矩形 >> format long ◦ 裁去正方形后,小矩形形状不变
◦ 根据这一点求������
f(x)=sinx, x=1
������ − ������ ������������ (������ ) = ������
16

问题的敏感性 (衡量数据传递误差)
问题的解的相对变化量 ◦ 条件数cond = 输入数据的相对变化量 ◦ 例如函数求值问题,
������ ������ − ������(������) ������(������) cond = ������ − ������ ������
问题的解连续地依赖于问题数据 问题数据的小改变不会导致解的突然(大)变化 另外的一类计算问题:Stochastic
反例:地震 的物理模型
在数值计算中该条件非常重要,因为数据扰动必然存在
Computation
14

近似造成误差
◦ 模型误差:建模时的近似 ◦ 数据误差:测量等原因造成误差、输入数据是前一步计算 的结果 ◦ 截断误差(方法误差):数学上的近似 ◦ 舍入误差:实数用有限位来表示 (数值计算中总存在)
Editors




1.1946 Los Alamos科学实验室的J. von Neumann, S. Ulam 和N. Metropolis提出的Metropolis算法 (Monte Carlo方法 中最成功、最有影响的一个) 2.1947 RAND公司的G. Dantzig创造的线性规划的单纯型算 法 (simplex method) 3.1950 美国UCLA大学与美国国家标准局数值分析所的M. Hestenes, E. Stiefel和C. Lanczos开创的Krylov子空间迭代 法 (Lanczos过程, CG算法) 4.1950’s 橡树岭(Oak Ridge)国家实验室的A. Householder 形式化的矩阵分解方法 (表示成矩阵分解起了革命性作用)
相关文档
最新文档