第五章数值计算.doc
《第五章数值计算.doc》由会员分享,可在线阅读,更多相关《第五章数值计算.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章 数值计算5.1多项式的计算在全部初等函数里,多项式是结构最为简单,应用最为广泛的一类函数,有必要单独列出进行讨论。1多项式的表示法在MATLAB中将多项式采用降幂排列,并可表示为向量的形式。例如,多项式p(x)=x3-12x+5可用向量表示为p(x)=1 0 12 52多项式在给定点的值利用MATLAB中的polyval函数,可以直接求出多项式在给定点的值。y=polyval(p,x0),其中p为多项式,x0为给定点。【例51】求多项式p=4 -3 2 1在点x=1 2 3 4 5处的值输入p=4 -3 2 1;x=1 2 3 4 5y=polyval(p,x); %求多项式在x处的值
2、。x,y运行后可得x = 1 2 3 4 5y = 4 25 88 217 4363多项式方程求根利用MATLAB中的roots函数,可以直接求得多项式方程的根。p(xi)=0的根xi用函数xi=roots(p).【例52】求多项式方程的根输入p1=1 0 -12 5;p2=1 0 -12 20;x1=roots(p1);x2=roots(p2);x1,x2运行后可得x1 = -3.6562 3.2332 0.4230x2 = -4.1072 2.0536 + 0.8075i 2.0536 - 0.8075i4多项式相乘两多项式相乘,可以利用MATLAB中的conv(convolution)函
3、数来求得.p3=conv(p1,p2),5、多项式相除:两多项式与相除,可以利用MATLAB中的deconv 函数来求得,其调用格式为q,r=deconv(p1,p2),其中p1为被除式,p2为除式,q为商式,r为余式。【例53】多项式相乘与相除输入p1=5 -4 3 -2 1 -6;p2=1 0 -2 3;p3=conv(p1,p2);q,r=deconv(p1,p2);p3,q,r运行后可得p3 = 5 -4 -7 21 -17 7 -8 15 -18q = 5 -4 13r = 0 0 0 -25 39 -456有理分式的分解与合并:有理分式同多项式有着紧密的联系,依照代数定理,任何有理
4、分式都可分解为部分分式(或称最简分式)之和式中pm(x)与qn(x)为m次与n次多项式,当mn时,r(x)为商式,当mn时,r(x)为空,bi为方程qn(x)=0的根。ai为对应的实数或复数。将有理分式进行分解,是一件十分复杂和繁琐的工作。如果我们调用MATLAB里的residule函数,将会使问题变得简单容易,其调用格式为a,b,r=residule(p,q); 有理分式分解.p,q=residule(a,b,r). 将简单分式之和合并为有理分式.【例54】将有理分式分解为最简分式之和。输入p=1 0 0 0;q=1 1 -2; a,b,r=residue(p,q);a,b,r运行后可得a
5、= 2.6667 0.3333b = -2 1r = 1 -1即:【例55】将有理分式分解为最简分式之和。输入p=1 1;q=1 -6 11 -6;a,b,r=residue(p,q);a,b,r运行后可得a = 2.0000 -3.0000 1.0000b = 3.0000 2.0000 1.0000r = 故求得【例56】将简单分式之和合并为有理分式。输入a=2.667 0.333;b=-2 1;r=1 -1;p,q=residue(a,b,r);p,q运行后可得p = 1.0000 0 0 -0.0010q = 1 1 -252导数的数值计算导数的数值计算或称数值求导,是指导数值的一类近
6、似计算方法,它不必去求出导函数(需要符号求导运算),而是利用函数值的差分来构造出近似导数值。下面为求导的几个常见命令:1、yx=diff(y)./diff(x)(即y=y/x)其中diff=differential,差别的,微分。2、fx,fy=gradient(f, x, y)Gradient,梯度,斜坡。f为已给的二元函数, x, y 为自变量x与y的步长,fx,fy为二元函数的两个偏导数的近似值。3、quiver(fx,fy)是二维向量场的表现函数。qurver,大群,箭袋。【例57】导数的数值计算。输入x=0:0.1:3y=x.2yx=gradient(y,0.01)yx0=diff(
7、y)./diff(x)x=0:0.5:3;y=x.2;yx=diff(y)./diff(x);x,y,yx运行后可得x = 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000y = 0 0.2500 1.0000 2.2500 4.0000 6.2500 9.0000yx = 0.5000 1.5000 2.5000 3.5000 4.5000 5.5000【例58】画函数f=x.2+x.*y的二维向量场输入x,y=meshgrid(0:0.2:1,0:0.3:1.5);f=x.2+x.*y; fx,fy=gradient(f,0.2,0.3);fx,fyc
8、ontour(f)hold on %保留当前图形。quiver(fx,fy)hold off运行后结果如图5-1图5-1【例59】画函数z=x.*exp(-x.2-y.2)的二维向量场输入 x,y=meshgrid(-2:.2:2); z=x.*exp(-x.2-y.2); zx,zy=gradient(z,0.2,0.2);figure(1)mesh(x,y,z)figure(2)contour(z);hold on quiver(zx,zy) zx,zy 图5-2如图5-25.3定积分的数值计算对于定积分,如果相应的不定积分不易求出,或者根本不能表示为初等函数时,那么就只能用近似数值计算的
9、办法去求定积分的值了。函数 quad、quadl、quad8功能 数值定积分,自适应Simpleson积分法。格式 q = quad(fun,a,b,tol) %用指定的绝对误差tol代替缺省误差。Tol越大,函数计算的次数越少,速度越快,但结果精度变小。q,n = quad(fun,a,b,) %同时返回函数计算的次数n = quadl(fun,a,b,) %用高精度进行计算,效率可能比quad更好。【例510】求y=sin(x)./x的积分。输入function y=f(x)y=sin(x)./x;s=quad(p99l1,1,10)%应在工作窗口求解。或在另一个editor/debugg
10、er中求解。运行后可得s = 0.7123【例511】求y= exp(-x.2/2)的积分。输入f=inline(exp(-x.2/2),x);s=quad(f,-8,8)运行后可得s = 2.5066【例512】求y=3*x.2./(x.3-2*x.2+3的积分。输入fun = inline(3*x.2./(x.3-2*x.2+3);Q1 = quad(fun,0,2)Q2 = quadl(fun,0,2)计算结果为:Q1 = 3.7224Q2 = 3.7224同定积分的概念一样,二重积分的值不只依赖于被积函数,同时也要依赖于积分区域的情况,如果为矩形区域,则计算过程将会变得十分简单,如果为
11、一般区域,则计算过程将会比较复杂,这里不进行讨论。函数 dblquad功能 矩形区域上的二重积分的数值计算格式 q = dblquad(fun,xmin,xmax,ymin,ymax) %调用函数quad在区域xmin,xmax, ymin,ymax上计算二元函数z=f(x,y)的二重积分。输入向量x,标量y,则f(x,y)必须返回一用于积分的向量。【例513】求 y./sin(x)+x.*exp(y)的二重积分。输入fun = inline(y./sin(x)+x.*exp(y);Q = dblquad(fun,1,3,5,7)计算结果为:Q = 3.8319e+0035.4非线性方程的数值
12、解如果非线性方程(组)是多项式形式,求这样方程(组)的数值解,可以直接调用本章5.2节中已介绍过的函数,如果非线性方程(组)中出现有超越函数,例如等,则无法使用函数,而必须采用系统中提供的另一函数来求解。函数当然也可用于多项式方程(组)的求解,但它的计算量要比函数明显地多。【例514】求方程x3-12*x+5=0的一个数值解。建立M文件如下:function f=fun(x) %fun为函数名,也是保存的文件名f=x3-12*x+5在命令窗口输入:x0=1x1=fsolve(fun,x0)f=fun(x1) %根满足方程的情况计算结果为:x1 = 0.4230f = 4.4409e-015【例
13、515】求方程组x3-y2=0;exp(-x)-y=0的一组数值解。建立M文件如下:function f=fun(t) %fun为函数名,也是保存的文件名x=t(1);y=t(2);f(1)=x3-y2;f(2)=exp(-x)-y;在命令窗口输入:t0=1,1t=fsolve(fun,t0)f=fun(t) %根满足方程的情况计算结果为:t = 0.6488 0.5226f = 1.0e-006 * 0.2196 0.0321【例516】求方程组x+y+z-6=0;x+y*z+z*x-8=0;exp(-x)+log(y)+z-2=0;的一组数值解。建立M文件如下:function f=fun
14、(t) %fun为函数名,也是保存的文件名x=t(1);y=t(2);z=t(3);f(1)=x+y+z-6;f(2)=x+y*z+z*x-8;f(3)=exp(-x)+log(y)+z-2;在命令窗口输入:t0=1,1 ,1t=fsolve(fun,t0)f=fun(t) %根满足方程的情况计算结果为:t = 2.6132 2.2877 1.0992f = 1.0e-012 * 0.0036 -0.1883 -0.08665.5级数的数值和对于有限项和与无穷项和,当通项中含有任意参数或时,此种含有符号变量的求法我们已在前面进行了讨论。当通项中不含有任意参数或时,此种和式的结果将是一个数值,可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 数值 计算
限制150内