《基本数值运算》PPT课件.ppt

上传人:小飞机 文档编号:5487088 上传时间:2023-07-12 格式:PPT 页数:41 大小:237KB
返回 下载 相关 举报
《基本数值运算》PPT课件.ppt_第1页
第1页 / 共41页
《基本数值运算》PPT课件.ppt_第2页
第2页 / 共41页
《基本数值运算》PPT课件.ppt_第3页
第3页 / 共41页
《基本数值运算》PPT课件.ppt_第4页
第4页 / 共41页
《基本数值运算》PPT课件.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《《基本数值运算》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《基本数值运算》PPT课件.ppt(41页珍藏版)》请在三一办公上搜索。

1、2.MATLAB 数值计算,MATLAB 具有出色的数值计算能力,占据世界上数值计算软件的主导地位,一、表达式与变量,MATLAB的语句由表达式和变量组成。变量 表达式【例】:x=(3*6.5)/8.6;,2,表达式,一般情况下运算结果在命令窗口显示出来。如果在语句地最后加分号,则不显示计算结果。【例】:计算x=sin(23*pi/180)/(sqrt(10)+3i)x=0.0650-0.0617i,3,数字的表达,【例】:3-6325 0.0002 9.6 1.2e-6 5.66e18数值的相对精度为 eps=数值的表示范围是,4,常用运算符,加法 减法 幂 乘法*右除/左除【例】:左除和右

2、除的区别 x=6/3 x=2 y=6 3 y=0.5,5,who 和 whos,who 和 whos 都用来列出工作区中已驻留的变量清单,从而防止变量名的重复使用,造成数据的丢失。【例】:用 whos 检查内存变量的详细情况 Name Size Bytes Class ans 1x1 8 double array x 1x1 8 double arrayGrand total is 2 elements using 16 bytes,6,数据的保存与提取,生成 mat 数据文件可以保存工作空间中的数据保存:save filename a b 或 save filename 这里系统会自动为 f

3、ilename 加上后缀.mat提取:load filename load 命令中不能指定变量名,系统仍将 a,b作为变量的名称,7,clear 命令,用 clear 命令可以清除掉 MATLAB 工作空间中的某个或全部变量。【例】:清除变量 whoYour variables are:a b s clear s whoYour variables are:a b clear who,8,x=pi*5*5 得到结果:x=78.5398这里的 pi 称为永久变量.,【例】:计算半径为 5 的圆的面积,9,永久变量,永久变量,又称为预定义变量。永久变量是在 MATLAB 启动时,由系统自动定义的。

4、永久变量驻留于内存中,并且不会被 clear 命令清除,所以称为永久变量。可以为永久变量赋值,但所赋的值可以用 clear 命令清除,从而恢复系统预定义的值,故而又称为预定义变量。,10,永久变量,11,pi=4 pi=4 clear pians=3.1416,【例】永久变量的修改和恢复,12,复数,利用虚数单位 i 和 j 可以定义复数,复数表达式和复数矩阵。【例】:复数表达和运算 z1=2.3+1.2i,z2=0.5-1.2i,z=z1*z2z1=2.3000+1.2000iz2=0.5000-1.2000iz=2.5900-2.1600i,13,数据的输出格式,虽然MATLAB 中数据的

5、存储和计算都是以双精度进行的,但用户可以改变屏幕上的显示格式。format/format short 5 位定点表示 format long 15 位定点表示 format rat 近似的有理数表示 format hex 16 进制表示 format compact 变量之间没有空行 format loose 变量之间有空行,14,format long pians=format pians=3.1416,【例】数据的输出格式,15,二、MATLAB 的基本计算功能,MATLAB 带有强大的函数库,一般的数学运算能很容易的实现。,16,MATLAB 常用数学函数 1,17,MATLAB 常用数

6、学函数 2,18,MATLAB 常用三角函数,19,练习 1,1.分别保存工作空间中的部分和全部变量到 文件 mydata1 和 mydata2。2.用 clear 命令清除掉工作空间中的全部变量,并观察工作空间中变 量的使用情况。3.用 load 命令提取刚才保存的文件mydata1.mat,并再次观察工作 空间中变量的使用情况。,20,练习 2,1.令 a 分别等于 0.5 和,计算(计算指数用 exp 函数,自然对数计算用 log 函数)2.生成一个复数变量 z,用函数 abs(z)计算它的模,并与 sqrt(imag(z)2+real(z)2)相比较.然后生成两个复数变量,计算它们的

7、和、差 以及 乘积。3.修改某个永久变量的值,然后清除之。,21,练习 3,1.令 x 分别等于 3.3 和-2.6,分别计算 fix(x),floor(x),ceil(x)和 round(x)。2.分别计算 mod(5,3)和 rem(5,3);mod(-5,3)和 rem(-5,3)。3.利用 help 命令,研究函数 mod 和 rem 的区别。,22,rem 和 mod 的区别,当 y 不等于 0 时rem(x,y)=x y.*fix(x./y),符号与 x 相同mod(x,y)=x y.*floor(x./y),符号与 y 相同当 y 等于 0 时rem(x,0)=NaNmod(x,

8、0)=x例如,fix(-5/3)=-1,floor(-5/3)=-2,所以rem(-5,3)=-2,mod(-5,3)=1。,23,MATLAB高级计算(补充资料),31 多项式的创建与运算311 多项式的描述与创建 1多项式的描述 在MATLAB环境下多项式的表达式 可以转换成向量的形式加以描述,即 向量最右边的元素表示多项式的0阶系数,向左数依次表示多项式的1阶系数,2阶系数,3阶系数。也就是说,MATLAB按降幂形式排列多项式的系数,例如多项式表达式,在MATLAB环境下用向量描述为:6 3 4 2 7。2多项式的创建 创建多项式的方法有许多。直接输入法;特征多项式输入法;由根向量创建多

9、项式,24,【例3-1】在MATLAB环境下采用直接输入法,创建多项式程序设计为:p=1 3-2 5;%多项式的系数向量 poly2sym(p)%生成多项式的表达式 运行结果:ans=x3+3*x2-2*x+5 312 多项式的运算 1求多项式的值 求多项式的值的方法有二种,一种按数组运算规则计算,由函数polyval实现;另一种按矩阵的运算规则计算,由函数polyvalm来实现。【例3-4】求多项式 在5、6和8处的值。,25,程序设计为:p=4-2 10;x=5 6 8;polyval(p,x)运行结果:ans=100 142 2502求多项式的根 求多项式的根即多项式为零时的值,在MAT

10、LAB环境下求根时有两种方法:一种是直接调用根函数roots来求解多项式的根的方法;另外还有一种方法就是先求多项式的伴随矩阵,然后再求特征值的方法来求多项式的根。这里仅介绍前面一种方法。【例3-6】求多项式 的根。,26,程序设计为:a=1 5-6 10 3 20;r=roots(a)运行结果:r=-6.2232 1.1158+1.1853i 1.1158-1.1853i-0.5042+0.9791i-0.5042-0.9791i 3多项式的加减运算 多项式的加减运算是多项式对应元素的加、减运算,多项式的阶数可以不同,但在进行多项式定义时,应当在低阶多项式的前面补充0,使其阶数相等,否则,不能

11、进行加减运算。,27,【例3-7】对两个多项式 和 进行加、减运算 程序设计为:a=1 3 0-2 3;b=0 0 1 3 4;c=a+b 运行结果:c=1 3 1 1 7 poly2sym(c)ans=x4+3*x3+x2+x+7 4多项式的乘、除运算 多项式的乘法运算由函数conv实现;多项式的除法运算由函数deconv实现。,28,【例3-8】计算两个多项式 和 的乘积。程序设计为:a=1 5-2 1;b=1 5;c=conv(a,b)运行结果:c=1 10 23-9 5 poly2sym(c)ans=x4+10*x3+23*x2-9*x+5 5多项式的微积分 多项式的微分由函数poly

12、der实现,多项式的积分由函数polyint实现。,29,【例3-10】求多项式 的一阶导数。程序设计为:p=3-2 5-10 6;polyder(p)运行结果:ans=12-6 10-10 poly2sym(ans)ans=12*x3-6*x2+10*x-10 6多项式的部分分式展开 MATLAB提供了一些进行多项式部分分式展开运算的函数,其中常用的函数为residue。它的调用格式为 r,p,k=residue(num,den),30,【例3-12】求多项式 的部分分式展开。程序设计为:num=10 30;den=1 2 4 3;r,p,k=residue(num,den)运行结果:r=-

13、3.3333-4.0202i-3.3333+4.0202i 6.6667 p=-0.5000+1.6583i-0.5000-1.6583i-1.0000 k=其中,k=表示没有常数项。,31,32 线性方程求解321 代数方程及代数方程组的求解 在MATLAB中,使用solve函数求代数方程,其调用格式为 x1,x2,xn=solve(eqn1,eqn2,eqnn)表示对n个未知变量x1,x2,xn求解n个方程。【例3-15】求一元二次方程 的根。在命令窗口中键入如下命令 solve(a*x2+b*x+c,x)ans=1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2

14、-4*a*c)(1/2)或者在命令窗口中这样输入命令,x=solve(a*x2+b*x+c)显示结果同上。,32,322 微分方程及微分方程组的求解 在MATLAB中,使用dsolve函数求解常微分方程,其调用格式为 y1,y2,=dsolve(eqn1,eqn2)式中,输入量eqn可以是微分方程,也可以是求解微分方程的初始条件,还可以声明独立变量。一般前面的是微分方程,中间的是初始条件,最后的是独立变量声明。在表达微分方程时,n阶导数表示为Dny,例如,分别表示为Dy,Dx,D2y,D3y。【例3-17】求解 程序设计及运行结果。y=dsolve(Dy=x2+2*x,x)%求解微分方程,x为

15、声明的 独立变量 y=1/3*x3+x2+C1%C1为任意实常量,33,33曲线拟合与插值331曲线拟合 曲线拟合涉及两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?最小二乘法曲线拟合是最常用的曲线拟合方法。MATLAB提供了polyfit()函数来求解最小二乘法曲线拟合问题。它的调用格式为:polyfit(x,y,n)其含义为:用最小二乘法对所给定数据x,y进行n阶多项式拟合,其返回值是一个多项式系数的行向量。【例3-20】已知某实验数据如下表所示,利用polyfit函数求其最小二乘法拟合曲线。为了用polyfit函数,必须给出函数所需要的上述数据x,y和期望的最佳拟合数据的多项式的阶

16、数n。如果选择n=1,就会得到最简单的线性近似,通常称为线性回归。,34,程序设计为:x=1 2 3 4 5 6 7 8 9 10;y=-0.47 1.98 3.3 6.2 7.1 7.3 7.7 10 9.5 9.3;a=polyfit(x,y,1)运行结果:a=1.0835 0.2320 x1=1:0.05:10;y1=a(1)*x1+a(2);plot(x,y,*,x1,y1,-)从图3-1中可以看出,拟合曲线与原数据点相比,拟合误差比较大,精度不高,为此,增加多项式的阶数n值,如选择n=2。,35,332插值 插值是在已知数据点之间计算估计值的一种有价值的方法。通过插值,可以将无规律的

17、、不连续的数据点,经插值运算,得到一个近似的连续曲线,再经过数学工具分析处理,找出其内在的规律。插值分为一维插值和二维插值等。1一维插值 一维插值是最常用的插值运算,它由函数interp1实现,其调用格式为:yi=interp1(x,y,xi,“method”)式中,x,y为给定的数据组,xi是计算的x的位置,method为所用的插值方法,对于一维插值,method有如下4种选择方法:(1)“nearest”邻近点插值。它是将插值结果的值设置为最近数 据点的值。(2)“linear”线性插值(缺省方法)。它是在两个数据点之间 连接直线,根据给定的插值点计算出它们在直线 上的值,作为插值结果。(

18、3)“spline”三次样条插值。它是通过数据点拟合出三次样条 曲线,根据给定的插值点计算出它们在曲线上的 值,作为插值结果。(4)“cubic”立方插值。它是通过分段立方Hermite插值方法 计算插值结果。,36,【例3-21】一维插值函数的4种插值方法的比较。程序设计为:x=0:10;y=sin(x);xi=0:0.25:10;yi1=interp1(x,y,xi,nearest);%邻近点插值方法 subplot(2,2,1)plot(x,y,o,xi,yi1)yi2=interp1(x,y,xi,linear);%线性插值方法 subplot(2,2,2)plot(x,y,o,xi,

19、yi2)yi3=interp1(x,y,xi,spline);%三次样条插值方法 subplot(2,2,3)plot(x,y,o,xi,yi3)yi4=interp1(x,y,xi,cubic);%立方插值方法 subplot(2,2,4)plot(x,y,o,xi,yi4),37,38,2。二维插值 二维插值基于一维插值的基本思想,主要应用于图象处理和三维曲线拟合等领域。二维插值有函数interp2实现。它的调用格式为:zi=interp2(x,y,z,xi,yi,“method”)式中,x,y,z为给定的数据组,xi,yi,是计算的x,y的位置,method为所用的二维插值方法,对于二维

20、插值,method有如下4种选择方法:(1)“nearest”邻近点插值。(2)“linear”线性插值(缺省方法)。(3)“spline”三次样条插值。(4)“cubic”二重立方插值。【例3-23】二维插值函数的4种插值方法的比较。程序设计为:x,y,z=peaks(7);%生成双峰函数值 xi,yi=meshgrid(-3:0.2:3,-3:0.2:3);%生成供插值的数据网格 z1=interp2(x,y,z,xi,yi,nearest);%二维邻近点插值方法,39,subplot(2,2,1)mesh(xi,yi,z1)z2=interp2(x,y,z,xi,yi,linear);%双线性插值方法 subplot(2,2,2)mesh(xi,yi,z2)z3=interp2(x,y,z,xi,yi,spline);%三次样条插值方法 subplot(2,2,3)mesh(xi,yi,z3)z4=interp2(x,y,z,xi,yi,cubic);%二重立方插值方法 subplot(2,2,4)mesh(xi,yi,z4),40,41,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号