ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:77.96KB ,
资源ID:10258407      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10258407.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(8数值微分.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8数值微分.docx

1、8数值微分8.2 一阶导数的数值计算及其MATLAB程序8.2.1 差商求导及其MATLAB程序例 8.2.1 设.(1)分别利用前差公式和后差公式计算的近似值和误差,取4位小数点计算,其中步长分别取,80,.(2)将(1)中计算的的近似值分别与精确值比较.解 (1)编写计算的一阶导数计算的近似值和误差估计的MATLAB程序,并输入 x=0.79;h=0.1,0.01,0.001,0.0001;M=80;x1=x+h;x2=x-h; y=sin(5.*x.2-21);y1=sin(5.*x1.2-21); y2=sin(5.*x2.2-21); yq=(y1-y)./h, yh=(y-y2).

2、/h,wu=abs(h.*M/2), syms x,f=sin(5.*x.2-21); yx=diff(f,x)运行后屏幕显示利用前差公式和后差公式计算的近似值yq,yh和误差估计wu,取4位小数点计算,其中步长分别取,M=80,导函数yxyq =1.46596380397978 4.22848550173043 4.44250759584697 4.46320955293622yh =5.96885352366536 4.68672022108227 4.48833808130555 4.46779260847907wu =4.00000000000000 0.40000000000000

3、0.04000000000000 0.00400000000000yx =10*cos(5*x2-21)*x(2)计算的值.输入程序 x=0.79; yx =10*cos(5*x2-21)*x,wuq=abs(yq-yx), wuh=abs(yh-yx)运行后屏幕显示利用前差公式和后差公式计算的近似值与精确值的绝对误差wuq,wuh和的精确值yx如下yx = 4.46550187104484wuq =2.99953806706506 0.23701636931441 0.02299427519787 0.00229231810861wuh =1.50335165262053 0.2212183

4、5003744 0.02283621026072 0.002290737434248.2.2 中心差商公式求导及其MATLAB程序利用精度为的三点公式计算的近似值和误差估计的MATLAB主程序function n,xi,yx,wuc=sandian(h,xi,fi,M)n=length(fi); yx=zeros(1,n); wuc=zeros(1,n); x1= xi(1); x2= xi(2); x3= xi(3);y1=fi(1); y2=fi(2); y3=fi(3); xn= xi(n); xn1= xi(n-1); xn2= xi(n-2); yn=fi(n); yn1=fi(n-

5、1); yn2=fi(n-2);for k=2:n-1yx(1)=(-3*y1+4*y2-y3)/(2*h); yx(n)=(yn2-4*yn1+3*yn)/(2*h);yx(2)=( fi(3)- fi(1)/(2*h); yx(k)=( fi(k+1)- fi(k-1)./(2*h); wuc(1)=abs(h.2.*M./3); wuc(n)=abs(h.2.*M./3);wuc(2:n-1)=abs(-h.2.*M./6);end利用精度为的三点公式计算的近似值和误差估计的MATLAB主程序function x,yxj, wuc=sandian3(h,xi,fi,M)yxj=zeros

6、(1,3); wuc=zeros(1,3); x1= xi(1);x2= xi(2); x3= xi(3); y1=fi(1); y2=fi(2); y3=fi(3);for t=1:3s(t)=(2*t-5)*y1-4*(t-2)*y2+(2*t-3)*y3)/(2*h); x=xi; y=s(t); yxj(t)=y;if t=2wuc(2)=abs(-h.2*M/6);elsewuc(1:2:3)=abs(h.2*M/3);endend例 8.2.3 设已给出的数据表85:表85x1.000 0 1.100 0 1.200 0 1.300 0 1.400 0 1.500 0 1.600

7、0 f(x)0.250 0 0.226 8 0.206 6 0.189 0 0.173 6 0.160 0 0.147 9 M= 0.750 2,试用三点公式计算下列问题:(1)当h=0.1时,在x=1.000 0,1.100 0,1.200 0,1.300 0,1.400 0,1.500 0,1.600 0处的一阶导数的近似值,并估计误差;(2)当h=0.2时,在x=1.000 0,1.200 0, 1.400 0,1.600 0处的一阶导数的近似值,并估计误差;(3)当h=0.3时,在x=1.000 0,1.300 0 ,1.600 0处的一阶导数的近似值,并估计误差;(4) 表85中的数

8、据是函数在相应点的数值,将(1)至(3)计算的一阶导数的近似值与的一阶导数值比较,并求出它们的绝对误差.解 (1)保存M文件sandian.m,sandian3.m;(2)在MATLAB工作窗口输入如下程序 syms x,y=1/(1+x)2); yx=diff(y,x,1),yx3=diff(y,x,3),运行后将屏幕显示的结果为yx = yx3 =-2/(1+x)3 -24/(1+x)5(3)在MATLAB工作窗口输入如下程序h=0.1; xi=1.0000:h:1.6000;fi=0.2500 0.2268 0.2066 0.1890 0.1736 0.1600 0.1479;x=1:0

9、.001:1.6; yx3 =-24./(1+x).5; M= max(abs(yx3);n1,x1,yx1,wuc1=sandian(h,xi,fi,M)yxj1=-2./(1+xi).3,wuyxj1=abs(yxj1- yx1)h=0.2; xi=1.0000:h:1.6000; fi=0.2500 0.2066 0.1736 0.1479;x=1:0.001:1.6; yx3 =-24./(1+x).5; M= max(abs(yx3);n2,x2,yx2,wuc2=sandian(h,xi,fi,M)yxj2=-2./(1+xi).3,wuyxj2=abs(yxj2- yx2)h=0

10、.3; xi=1.0000:h:1.6000; fi=0.2500 0.1890 0.1479;x=1:0.001:1.6; yx3 =-24./(1+x).5; M=max(abs(yx3);x3,yx3, wuc3=sandian3(h,xi,fi,M)yxj3=-2./(1+xi).3,wuyxj3=abs(yxj3- yx3)或 h1=0.1,x=1.0000,1.1000,1.2000,1.3000,1.4000,1.5000,1.6000;f=0.2500,0.2268,0.2066,0.1890,0.1736,0.1600,0.1479;xi=x(1:3);f11=f(1:3);

11、 M= 0.7502;x11,yxj11,wuc11=sandian3(h1,xi,f11,M), xi= x(4:6);f12=f(4:6); x12,yxj12,wuc12=sandian3(h1,xi,f12,M), xi=x(5:7);f13=f(5:7); x13,yxj13,wuc13=sandian3(h1,xi,f13,M), h2=0.2, xi= x(1:2:5);f21= f(1:2:5);x21,yxj21,wuc21=sandian3(h2,xi,f21,M),xi= x(2:2:6);f22=f(2:2:6); x22,yxj22,wuc22=sandian3(h2

12、,xi,f22,M),xi= x(3:2:7);f23=f(3:2:7); x23,yxj23,wuc23=sandian3(h2,xi,f23,M), h3=0.3, xi= x(1:3:7);f31= f(1:3:7); x31,yxj31,wuc31=sandian3(h3,xi,f31,M),将运行的结果(略).8.2.3 理查森外推法求导及其MATLAB程序(一)一般形式的理查森外推法及其MATLAB程序利用理查森外推法计算的近似值和误差估计的MATLAB程序function Dy,dy,jdw,n=diffext1(fun,x0,jdwc,max1)h=1;j=1; n=1;jdW

13、=1;xdW=1; x1=x0+h;x2=x0-h;Dy(1,1)=(feval(fun,x1)- feval(fun,x2)/(2*h); while(jdWjdwc)&(j x0=0.79;jdwc=0.0000001,max1=100;Dy,dy,jdw,n=diffext1(fun,x0,jdwc,max1),wu=4.46550187104484-dy运行后屏幕显示的近似值dy,dy与精确值的绝对误差wu,导数近似值的迭代矩阵Dy,jdW=|Dy(n,n)-Dy(n,n-1)|的值,最佳近似值dy的坐标n如下Dy = Columns 1 through 4 0.95036708207

14、779 0 0 00.87447447334140 0.84917693709594 0 01.04543344913993 1.10241977440611 1.11930263022679 03.33291848491782 4.09541349684379 4.29494641167297 4.345353455822914.16327772677060 4.44006414072153 4.46304085031338 4.465709016006084.38872901334021 4.46387944219674 4.46546712896176 4.465505641321264

15、.44623223629059 4.46539997727405 4.46550134627921 4.46550188941123 Columns 5 through 7 0 0 0 0 0 0 0 0 0 0 0 0 4.46618099859504 0 0 4.46550484377347 4.46550418282057 0 4.46550187469786 4.46550187179553 4.46550187123118dy = jdw = n= wu = 4.46550187123118 5.643530087695581e-010 7 -1.863398324530863e-0

16、10(二)精度为的中心差商公式和误差估计及其MATLAB程序用精度为的中心差商公式计算的近似值和误差估计的MATLAB程序function x0,yx,wuc=zxcs4(h,x0,fi,M)xi=x0-2*h,x0-h,x0,x0+h,x0+2*h;x1= xi(1); x2= xi(2); x3= xi(3); x4= xi(4);x5= xi(5);y1=fi(1); y2=fi(2); y3=fi(3);y4=fi(4); y5=fi(5);yx=(8*y4-8*y2-y5+y1)/(12*h); wuc=abs(h.4*M/30);用精度为的中心差商公式计算的近似值和误差估计的MAT

17、LAB程序function x,y,yx,wuc=zxcs5(fun,h,x0, M)x=zeros(1,5);y= zeros(1,5);for k=1:5x(k)=x0+(k-3).*h;y(k)= feval(fun, x(k);endx;y;yx=(8*y(4)-8*y(2)-y(5)+y(1)/(12*h); wuc=abs(h.4*M/30);例 8.2.6 设.(1)分别根据(8.7) 式和(8.24)式计算的近似值,并估计误差,取小数点后14位计算,其中步长分别取,M=872,.(2)将(1)中计算的的近似值分别与精确值比较.解 (1)计算的一阶导数的近似值和误差估计.方法1

18、输入程序x0=0.79;h1=0.1,M=872;x,y,yx1,wuc1=zxcs5(fun,h1,x0,M)h2=0.01, x,y,yx2,wuc2=zxcs5(fun,h2,x0, M), h3=0.001, x,y,yx3,wuc3=zxcs5(fun,h3,x0, M), h4=0.0001, x,y,yx4,wuc4=zxcs5(fun,h4,x0, M),运行后屏幕显示x=(-2h, -h, ,+h, +2h), 在x处函数值向量y,步长分别取时,根据 (8.24)式计算函数在处的导数的近似值yx1, yx2, yx3, yx4和误差估计wuc1,wuc2,wuc3,wuc4如

19、下x = Columns 1 through 3 0.59000000000000 0.69000000000000 0.79000000000000 Columns 4 through 5 0.89000000000000 0.99000000000000y = Columns 1 through 3 -0.39855804055354 0.22803197210174 0.82491732446828 Columns 4 through Column 5 0.97151370486625 0.38160930304430yx1 = wuc1 = 4.30640543209856 0.002

20、90666666667yx2 = wuc2 = 4.46548476000396 2.906666666666667e-007yx3 = wuc3 = 4.46550186933213 2.906666666666667e-011yx4 = wuc4 = 4.46550187103480 2.906666666666667e-015方法2编写计算的一阶导数的近似值和误差估计的MATLAB程序,并输入此程序 x=0.79;h=0.1,0.01,0.001,0.0001; M=872;x1=x+h;x2=x-h;x3=x+2*h;x4=x-2*h; y1=sin(5.*x1.2-21);y2=si

21、n(5.*x2.2-21);y3=sin(5.*x3.2-21); y4=sin(5.*x4.2-21); yc2=(y1-y2)./(2*h),wuc2=abs(h.2*M/6),yc4=(8*y1-8*y2-y3+y4)./ (12*h), wuc4=abs(h.4*M/30),syms x,f=sin(5.*x.2-21); dy=diff(f,x)运行后屏幕显示步长分别取,M= 872,分别根据(8.7) 式和(8.24)式计算的近似值yc2,yc4及其误差估计值wuc2,wuc4,导函数dy如下yc2 =3.71740866382257 4.45760286140635 4.4654

22、2283857626 4.46550108070765wuc2 =1.45333333333333 0.01453333333333 0.00014533333333 0.00000145333333yc4 =4.30640543209856 4.46548476000396 4.46550186933213 4.46550187103480wuc4 =0.00290666666667 0.00000029066667 0.00000000002907 0.00000000000000dy =10*cos(5*x2-21)*x(2)计算的值.输入程序 x=0.79; dy =10*cos(5*

23、x2-21)*x, wu2=abs(yc2-dy), wu4=abs(yc4-dy)运行后屏幕显示的近似值与精确值的绝对误差wuc2,wuc4和的精确值dy如下dy =4.46550187104484wuc2=0.74809320722227 0.00789900963848 0.00007903246857 0.00000079033719wuc4=0.159*627 0.00001711104088 0.00000000171271 0.00000000001003(三)变步长的中心差商公式及其MATLAB程序用变步长的中心差商公式计算的近似值和误差估计的MATLAB程序function

24、n,H,Dy,W=difflim(fun,x0,h0,wu,max1)Dy=zeros(1,max1); W=zeros(1, max1); H=zeros(1, max1);h=h0;H(1)=h; E(1)=0; x1=x0+h;x2=x0-h; h1=h/10;x3=x0+h1;x4=x0-h1;Dy(1)=(feval(fun,x1)- feval(fun,x2)./(2*h);Dy(2)=(feval(fun,x3)- feval(fun,x4)./(2*h1);W(1)=abs(Dy(2)- Dy(1); k=1; while( (W(k)wu)&(k x0=0.79;wu=0.0

25、0001;max1=100;h0=0.2;n,H,Dy,W= difflim(fun,x0,h0,wu,max1)jdwc=4.46550187104484- Dy运行后屏幕显示迭代次数n, 变步长数组H,用变步长的中心差商公式计算的近似值Dy,误差估计值W,jdwc,精确值与近似值Dy的差如下n = 2H =.020*Dy = 4.43395716561354 4.46549870972618 4.46550187410688W = 2.48353880661895 0.03154154411264 0.00000316438070jdwc =.0315*8.2.4 牛顿(Newton)多项

26、式求导及其MATLAB程序利用牛顿插值多项式求导的MATLAB主程序function df,A,P=diffnew(X,Y)n=length(X);A=Y;for j=2:n for i=n:-1:j A(i)=(A(i)- A(i-1)/(X(i)-X(i-j+1); end endx0=X(1);df=A(2);chsh=1;m=length(A)-1; for k=2:m chsh=chsh*(x0-X(k); df=df+chsh*(A(k+1);end P=poly2sym(A);例8.2.9 根据下表给定的一组数据(X ,Y)写出 (8.30)式的具体形式及其精度和名称,并用它计算

27、的近似值,取4位小数计算.X3.135 2 3.335 2 3.535 2 3.735 2 3.935 2 4.135 2 4.335 2 4.535 2 Y0.126 6 -0.060 2 -0.603 2 -0.998 0 -0.119 4 0.995 3 -0.654 2 0.158 1 解 因为表中所给数据(X ,Y)是等差数列,公差为h=0.2, 即x0=3.135 2, x1= x0+h, x2= x0+2h, x3= x0+3h, x4= x0+4h, x5= x0+5h, x6= x0+6h, x7= x0+7h.输入程序X=3.1352,3.3352,3.5352,3.735

28、2,3.9352,4.1352,4.3352,4.5352 ;Y=0.1266,-0.0602,-0.6032,-0.9980,-0.1194,0.9953,-0.6542 0.1581;df,A,P=diffnew(X,Y)运行后屏幕显示的近似值df和阶牛顿多项式P及其系数向量A如下df = -0.2428A =0.1266 -0.9340 -4.4525 10.5083 16.1667 -72.4818 64.7309 108.6155P=633/5000*x7-467/500*x6-1781/400*x5+1478916440133901/140737488355328*x4+4550512123488957/281474976710656*x3-27833/384*x2+4

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1