tceic.com
学霸学习网 这下你爽了
赞助商链接
当前位置:首页 >> 数学 >>

微分是我们在高等数学中学过的最基本的运算一方面它是一些


高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

第八章 数值微分
微分是我们在高等数学中学过的最基本的运算.一方面它是一些非常重要的数学工具 (微分方程、概率论等)的基础,另一方面它在实际问题中也有着许多直接的应用.函数 的导数计算可分为数值求导和符号求导两类方法.数值求导是导函数在某点处的值的一类 近似计算的方法,例如遇到由离散数据或者图形表示的函数就只有求助于数值方法.符号 求导是指对给定的函数求它在某区域上的导函数或在某点处的导数.二者在概念上有着密 切的联系,但在求解思路上却有明显差别.本章重点介绍数值微分及其用 MATLAB 计算 的方法,为了估计数值微分计算的误差,在第一节简单介绍用 MATLAB 计算符号微分 的方法.

8.1

用 MATLAB 求各阶(偏)导数和(全)微分

在 MATLAB 的函数库中有符号求导的程序 diff.m,可以调用此程序求符号(偏)导 数和(全)微分,不但使用方便,而且计算准确,迅速.尤其是求结构复杂的高阶(偏) 导数和(全)微分更显示出其优越性.在本节主要介绍用 diff.m 求一(多)元函数的各阶 (偏)导函数和(全)微分及其在某点处的各阶(偏)导数和(全)微分.

一元函数的 MATLAB 符号导数和微分 在大学数学中,一元函数 y ? f ( x) 的各阶导函数记为 y' , y", y' ' ' ,? ,在这里分别记 作 yx , yxx , yxxx ,? .用 diff 求符号导函数、微分和在一点处的导数和微分的调用格式和
功能如表 8–1 和例题所示.
表 8–1 求一元函数

8.1.1

y ? f ( x) 的各阶导函数的 MATLAB 方法
功 能

符号求导的命令

yx=diff(f(x),x) dy=diff (f(x),x)*dx yxx=diff(f(x),x,2) 或 yxx=diff(yx,x) yxxx=diff(f(x),x,3) 或 yxxx=diff(yxx,x) yxn=diff (f(x),x,n) yn=simple(yxn) pretty(diff(f(x),x) 8.1.2

' 求函数 y ? f ( x) 对 x 的一阶导函数 y' ? f ( x) ' 求函数 y ? f ( x) 的一阶微分 dy ? f ( x)dx '' 求函数 y ? f ( x) 对 x 的二阶导函数 y' ' ? f ( x)

求函数 y ? f ( x) 对 x 的三阶导函数 y' ' ' ? f
( n) 求函数 y ? f ( x) 对 x 的 n 阶导函数 y ? f

'''

( x) ( x)

( n)

将 n 阶导函数 y

( n)

? f ( n) ( x) 化简,并记作 yn.

输出一个符合日常书写习惯的一阶导函数的表达式

多元函数的 MATLAB 符号求偏导数和全微分

我们不但可以调用 diff 程序作一元函数的符号求导, 而且还可以作多元函数的符号求 偏导数.在这里我们将二元函数 z ? f ( x, y) 的各阶偏导数分别记作 zx, zy, zxx, zyy, zxy, zyx,
163.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

zxxx, zxxy, zxyy, zyy ,? ?.如果二元函数 z ? f ( x, y) 的两个混合偏导数 zyx 和 zxy 在某区域

D 上连续,则 zyx=zxy.同理,如果三元函数 u ? f ( x, y, z ) 的混合偏导数 zxxy,zyxx 和 zxyx 在某区域 D 上连续,则 zxxy=zyxx=zxyx.用 diff 可以作多元函数的符号求偏导函数、全微
分和在一点处的偏导数和全微分, 下面以二元函数和三元函数为例说明 diff 的调用格式和 功能(如表 8–2 和例题所示).读者可以根据用 diff 求二元函数和三元函数的偏导函数和 全微分的方法推广到四元和四元以上的函数. 表 8–2 用 diff.作符号求偏导数和全微分的调用格式和功能 符号求导的命令 zx=diff(f(x,y),x) zy=diff(f(x,y),y) dz= zx*dx+zy*dy zxx=diff(zx,x) zxy=diff(zx,y) zxn=diff (f(x,y),x,n) 功 能

' 求 z ? f ( x, y) 对 x 的一阶偏导函数 z x ? f x' ( x, y)

求 z ? f ( x, y) 对 y 的一阶偏导函数 z 'y ? f y' ( x, y) 求 z ? f ( x, y) 的全微分 d z ? f x' ( x, y) dx ? f y ( x, y) dy
'
'' '' 求 z ? f ( x, y) 对 x 的二阶偏导函数 z xx ? f xx ( x, y)

'' '' 求 z ? f ( x, y) 的二阶混合偏导函数 z xy ? f xy ( x, y)

?n z 求函数 z ? f ( x, y) 对 x 的 n 阶偏导函数 n ?x

zyn=diff (f(x,y),y,n) ux=diff(f(x,y,z),x) uy=diff(f(x,y,z),y) uz=diff(f(x,y,z),z) du= ux*dx+uy*dy+uz*dz uyx=diff(uy,x) uyxy=diff(uyx,y) Zx=- diff(F,x)/ diff(F,z) Zy=- diff(F,y)/ diff(F,z) pretty(diff(f(x,y,z),x)

?n z 求函数 z ? f ( x, y) 对 y 的 n 阶偏导函数 n ?y
' 求 u ? f ( x, y, z ) 对 x 的一阶偏导函数 u x ? f x' ( x, y, z)

求 u ? f ( x, y, z ) 对 y 的一阶偏导函数 u 'y ? f y' ( x, y, z)
' 求 u ? f ( x, y, z ) 对 z 的一阶偏导函数 u z ? f z' ( x, y, z)

求 u ? f ( x, y, z ) 的全微分 du = f ( x, y, z) dx + f y ( x, y, z) dy ? f z ( x, y, z) dz
' x

'

'

" 求 u ? f ( x, y, z ) 的二阶混合偏导函数 u " yx ? f yx ( x, y, z) '' ''' 求 u ? f ( x, y, z ) 的三阶混合偏导函数 u 'yxy ? f yxy ( x, y, z)

隐函数 F ( x, y, z ) ? 0 求偏导函数

?z ?z , ?x ?y

输出一个符合日常书写习惯的表达式

8.2

一阶导数的数值计算及其 MATLAB 程序

导数的数值计算,或称数值微分,也称数值求导,是用离散方法近似地计算函数 y ? f ( x) 在某点的导数值.当然, 通常只有函数以离散数值形式给出时才有必要用这种方 法.本节介绍一元函数的数值导数及其 MATLAB 程序.

8.2.1

差商求导及其 MATLAB 程序
164.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

例 8.2.1

设 f ( x) ? sin(5x 2 ? 21 ).

(1) 分别利用前差公式和后差公式计算 f ' (0.79) 的近似值和误差, 取 4 位小数点计

, 0.001 , 0.0001 , f " ( x ) ? 80, x ? [0,1] . 算,其中步长分别取 h ? 0.1, 0.01
(2)将(1)中计算的 f ' (0.79) 的近似值分别与精确值比较. 解 (1)根据(8.2) ,(8.3)和(8.5) 式编写计算 y ? f ( x) 的一阶导数计算 f ' ( x) 的近 似值和误差估计的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)./h, wu=abs(h.*M/2), syms x,f=sin(5.*x.^2-21); yx=diff(f,x) 运行后屏幕显示利用前差公式和后差公式计算 f ' (0.79) 的近似值yq,yh和误差估计wu,

, 0.001 , 0.0001 ,M=80,导函数yx 取4位小数点计算,其中步长分别取 h ? 0.1, 0.01 yq = 1.46596380397978 4.22848550173043 4.44250759584697 4.46320955293622 yh = 5.96885352366536 4.68672022108227 4.48833808130555 4.46779260847907 wu = 4.00000000000000 0.40000000000000 0.04000000000000 0.00400000000000 yx = 10*cos(5*x^2-21)*x ' (2)计算 f (0.79) 的值.输入程序 >> x=0.79; yx =10*cos(5*x^2-21)*x, wuq=abs(yq-yx), wuh=abs(yh-yx) 运行后屏幕显示利用前差公式和后差公式计算 f ' (0.79) 的近似值与精确值的绝对误差
wuq,wuh和 f ' (0.79) 的精确值yx如下 yx = 4.46550187104484 wuq = 2.99953806706506 0.23701636931441 0.02299427519787 0.00229231810861 wuh = 1.50335165262053 0.22121835003744 0.02283621026072 0.00229073743424 由(2)的计算结果可见,步长 h 越小,误差wuh越小,当 h ? 0.0001 ,利用前差公 式和后差公式计算 f ' (0.79) 的近似值与精确值很接近,但是后差公式比前差公式计算的 结果的误差小.

8.2.2

中心差商公式求导及其MATLAB程序
2 '

现提供精度为 O(h ) 的三点公式和误差估计公式编写计算 f ( x) 的近似值和误差估 计的 MATLAB 主程序如下: 利用精度为 O(h ) 的三点公式计算 f ( x) 的近似值和误差估计的 MATLAB 主程序 输入的量:导数点组成的向量xi ? ( x0 , x1 ,?, xn ) , 其中 x0 , x1 ,?, xn 成等差数列, 公差为 h , 函数 y ? f ( x) 在x= x0 , x1 ,?, xn 处的函数值组成的向量fi,M ? max f ' ' ' (? ) ;
x0 ?? ? xn

2

'

?

?

输出的量:向量 x ? ( x0 , x1 ,?, xn ) ,yx 是函数 y ? f ( x) 在 x= x0 , x1 ,?, xn 处的导数 的近似值, wuc 是误差估计. 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);
165.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

xn2= xi(n-2); yn=fi(n); yn1=fi(n-1); yn2=fi(n-2); for k=2:n-1 yx(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 现提供下面名为 sandian3.m 的计算函数 f ( x) 在 x= x0 , x1 , x2 处的导数的近似值的 MATLAB 主程序. 利用精度为 O(h 2 ) 的三点公式计算 f ' ( x) 的近似值和误差估计的 MATLAB 主程序 输入的量:导数点组成的向量xi ? ( x0 , x1 , x2 ) , 其中 x0 , x1 , x2 成等差数列,公差为
x0 ?? ? xn

h ,函数 y ? f ( x) 在x= x0 , x1 , x2 处的函数值组成的向量fi, M ? max ? f ' ' ' (? ) ? ;
值, wuc 是误差估计. function [x,yxj, wuc]=sandian3(h,xi,fi,M) yxj=zeros(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:3 s(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==2 wuc(2)=abs(-h.^2*M/6); else wuc(1:2:3)=abs(h.^2*M/3); end end 例 8.2.3 设已给出 y ? f ( x) 的数据表 8–3:
表 8–3

输出的量:向量 x ? ( x0 , x1 , x2 ) ,yx 是函数 y ? f ( x) 在 x= x0 , x1 , x2 处的导数的近似

x 1.000 0 1.100 0 1.200 0 1.300 0 1.400 0 1.500 0 1.600 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 时, y ? f ( x) 在 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 时, y ? f ( x) 在 x=1.000 0,1.200 0,1.300 0,1.400 0,1.600 0 处的一 阶导数的近似值,并估计误差; (3)当 h=0.3 时, y ? f ( x) 在 x=1.000 0,1.300 0 ,1.600 0 处的一阶导数的近似值, 并估计误差; (4) 表 8–3 中的数据是函数 f ( x) ? 导数的近似值与 f ( x) ?

1 在相应点的数值,将(1)至(3)计算的一阶 (1 ? x) 2

1 的一阶导数值比较,并求出它们的绝对误差. (1 ? x) 2

解 (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 工作窗口输入如下程序
166.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

>>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.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.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); 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,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–4 中.结果表明:三点公式比前差公式和后差公式计算准确,步长 越小,计算越准确,这是在三阶导数存在和舍入误差不超过截断误差的前提下. 表 8–4 例 8.2.2 计算结果 1.100 0 1.200 0 1.300 0 1.400 0 -0.216 0 -0.187 8 -0.164 4 -0.144 7 -0.217 0 -0.189 0 -0.165 0 -0.145 0 -0.191 0 -0.146 7 -0.170 2 0.001 0 0.001 2 0.000 6 0.000 3 0.001 3 0.001 3 0.001 3 0.001 3 0.003 2 0.002 1 0.005 0 0.005 0 0.005 8 0.011 3

x f ’(x)精确值 h=0.1, f ’(x)近似值 h=0.2, f ’(x)近似值 h=0.3, f ’(x)近似值 h=0.1,绝对误差 h=0.1, 误差估计 h=0.2,绝对误差 h=0.2, 误差估计 h=0.3,绝对误差 h=0.3, 误差估计

1.000 0 -0.250 0 -0.247 0 -0.243 0 -0.236 5 0.003 0 0.002 5 0.007 0 0.010 0 0.013 5 0.022 5

1.600 0 -0.113 8 -0.113 5 -0.110 3 -0.103 8 0.000 5 0.000 3 0.001 3 0.002 5 0.003 5 0.010 0 0.010 0 0.022 5

1.500 0 -0.128 0 -0.128 5

8.2.3
'

理查森(Richardson)外推法求导及其MATLAB程序

从求解 f ( x) 的低阶公式中推导出高阶公式的方法称为 Richardson 外推法.外推法可 以提高计算精度. 在这部分我们主要介绍三个问题, 一是一般形式的理查森 (Richardson) 外推法及其 MATLAB 程序;二是精度为 O(h ) 的中心差商公式和误差估计及其 MATLAB 程序; 三是变步长的中心差商公式及其 MATLAB 程序. (一)一般形式的理查森(Richardson)外推法及其MATLAB程序
' ' 我们可以根据(8.16) 式编写的MATLAB程序计算 y ? f ( x) 的导数 y ? f ( x) 的近 4

似值的M函数文件,保存起来,计算时直接调用.在这个程序中,构造的近似值 D( j, k ) ,

k ? j 的表,并将 f ' ( x) ? D(n, n) 作为最终答案.近似值 D( j, k ) 存放在下三角矩阵中.第
j 行的元素用与(8.16) 式等价的表达式

D ( j , k ) ? D( j , k ? 1) ?

D( j , k ? 1) ? D( j ? 1, k ? 1) , 1? k ? j 4k ?1
167.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

第一列为

2 ? j ?1 h 利用理查森外推法计算 f ' ( x) 的近似值和误差估计的 MATLAB 程序 输入的量:fun是函数 y ? f ( x) ,x0是导数点x, jdwc是 f ' ( x) 的近似值的绝对误差,
输出的量: dy 是导数 f ' ( x0 ) 近似值, Dy 是导数 f ' ( x0 ) 近似值的迭代矩阵,

D( j,0) ?

f ( x ? 2 ? j h) ? f ( x ? 2 ? j h)

.

max1是计算次数的最大值. jdW=|Dy(n,n)-Dy(n,n-1)|的值, n 是最佳近似值 dy 的坐标. function [Dy,dy,jdw,n]=rendiffext1(fun,x0,jdwc,max1) h=1;j=1; n=1;jdW=1;xdW=1; x1=x0+h;x2=x0-h; Dy(1,1)=(feval(fun,x1)- feval(fun,x2))/(2*h); while((jdW>jdwc)&(j<max1)) j;x1=x0+2^(-j)*h;x2=x0-2^(-j)*h; Dy(j+1,1)=(feval(fun,x1)-feval(fun,x2))/(2^(1-j)*h); for k=1:j k;Dy(j+1,k+1)= Dy(j+1,k)+( Dy(j+1,k)- Dy(j,k))/(4^k-1); end jdW=abs(Dy(j+1,j+1)-Dy(j+1,j)); j=j+1; end [n,n]=size(Dy);jdw=abs(Dy(n,n)-Dy(n,n-1)); dy= Dy(n,n); 例 8.2.5 设 f ( x) ? sin(5x 2 ? 21 ) ,取精度 jdwc=0.000 000 1,用理查森外推法计

算 f ' (0.79) 的近似值和误差估计,将近似值与精确值 4.46550187104484 比较. 解 取最大计算次数max1=100,输入程序 >> x0=0.79;jdwc=0.0000001,max1=100; [Dy,dy,jdw,n]=rendiffext1(@fun,x0,jdwc,max1),wu=4.46550187104484-dy 运行后屏幕显示 f ' (0.79) 的近似值 dy,dy 与精确值的绝对误差 wu,导数 f ' ( x0 ) 近似 值的迭代矩阵 Dy,jdW=|Dy(n,n)-Dy(n,n-1)|的值,最佳近似值 dy 的坐标 n 如下 Dy = Columns 1 through 4 0.95036708207779 0 0 0 0.87447447334140 0.84917693709594 0 0 1.04543344913993 1.10241977440611 1.11930263022679 0 3.33291848491782 4.09541349684379 4.29494641167297 4.34535345582291 4.16327772677060 4.44006414072153 4.46304085031338 4.46570901600608 4.38872901334021 4.46387944219674 4.46546712896176 4.46550564132126 4.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.46550187123118 dy = jdw = n= wu = 4.46550187123118 5.643530087695581e-010 7 -1.863398324530863e-010 (二)精度为 O(h ) 的中心差商公式和误差估计及其 MATLAB 程序 根据精度为 O(h ) 的中心差商公式 (8.17)、(8.18) 和(8.19)式,现提供下面名为 zxcs4.m 和 zxcs5.m 的计算函数 f ( x) 在 x= x ? h, x, x ? 2h ? [a, b] 处的导数的近似值的
168.
4 4

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

MATLAB 主程序. 用精度为 O(h 4 ) 的中心差商公式计算 f ' ( x) 的近似值和误差估计的 MATLAB 程序 输入的量: x0 是导数点, h 是步长,fi 是函数 y ? f ( x) 在 xi= x0 ? h, x0 , x0 ? 2h 处 的函数值组成的向量, M ?
x ? 2 h?? ? x ? 2 h

max

?f

( 5)

(? ) ;

?

输出的量:yx 是函数 y ? f ( x) 在 x0 处的导数的近似值, wuc 是误差估计. 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); 如果给出函数,则用下面的程序: 用精度为 O(h 4 ) 的中心差商公式计算 f ' ( x) 的近似值和误差估计的 MATLAB 程序 输入的量: fun 是函数 y ? f ( x) , M? x0 是导数点, h 是步长, yx 是函数 y ? f ( x) 在 x0 处的导数的近似值, wuc 是误差估计. function [x,y,yx,wuc]=zxcs5(fun,h,x0, M) x=zeros(1,5);y= zeros(1,5); for k=1:5 x(k)=x0+(k-3).*h; y(k)= feval(fun, x(k)); end x;y; yx=(8*y(4)-8*y(2)-y(5)+y(1))/(12*h); wuc=abs(h.^4*M/30); 例 8.2.6 设 f ( x) ? sin(5x 2 ? 21 ).
x ? 2 h?? ? x ? 2 h

max

?f

( 5)

(? ) .

?

输出的量:x=( x0 -2h, x0 -h, x0 , x0 +h, x0 +2h), y 是 y ? f ( x) 在 x 处函数值向量,

(1)分别根据(8.7) 式和(8.17)式计算 f ' (0.79) 的近似值,并估计误差,取小数点后

, 0.001 , 14 位计算, 其中步长分别取 h ? 0.1, 0.01
' '

0.0001, f ''' ( x ) ? M=872, x ? [0,1] .

(2)将(1)中计算的 f (0.79) 的近似值分别与精确值比较. 解 (1)计算 y ? f ( x) 的一阶导数 f ( x) 的近似值和误差估计. 方法1 输入程序 >> 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=( x0 -2h, x0 -h, x0 , x0 +h, x0 +2h), y ? f ( x) 在x处函数值向量y,步

, 0.001 , 0.0001时,根据 (8.17)式计算函数 y ? f ( x) 在 x0 处的导 长分别取 h ? 0.1, 0.01
数的近似值yx1, yx2, yx3, yx4和误差估计wuc1,wuc2,wuc3,wuc4如下 x= Columns 1 through 3 0.59000000000000 0.69000000000000 0.79000000000000 Columns 4 through 5 0.89000000000000 0.99000000000000 y=
169.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

Columns 1 through 3 -0.39855804055354 0.22803197210174 0.82491732446828 Columns 4 through Column 5 0.97151370486625 0.38160930304430 yx1 = wuc1 = 4.30640543209856 0.00290666666667 yx2 = wuc2 = 4.46548476000396 2.906666666666667e-007 yx3 = wuc3 = 4.46550186933213 2.906666666666667e-011 yx4 = wuc4 = 4.46550187103480 2.906666666666667e-015 同理,可以求出根据(8.7) 式计算 f ' (0.79) 的近似值及其误差估计值. 方法2 根据定理8.2 和定理8.4 编写计算 y ? f ( x) 的一阶导数 f ' ( x) 的近似值和误 差估计的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=sin(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) , 0.001 , 0.0001,M= 872,分别根据(8.7) 式和 运行后屏幕显示步长分别取 h ? 0.1, 0.01 (8.17)式计算 f ' (0.79) 的近似值yc2,yc4及其误差估计值wuc2,wuc4,导函数dy如下 yc2 = 3.71740866382257 4.45760286140635 4.46542283857626 4.46550108070765 wuc2 = 1.45333333333333 0.01453333333333 0.00014533333333 0.00000145333333 yc4 = 4.30640543209856 4.46548476000396 4.46550186933213 4.46550187103480 wuc4 = 0.00290666666667 0.00000029066667 0.00000000002907 0.00000000000000 dy = 10*cos(5*x^2-21)*x (2)计算 f ' (0.79) 的值.输入程序 >> x=0.79; dy =10*cos(5*x^2-21)*x, wu2=abs(yc2-dy), wu4=abs(yc4-dy) ' ' 运行后屏幕显示 f (0.79) 的近似值与精确值的绝对误差wuc2,wuc4和 f (0.79) 的精确值 dy如下 dy = 4.46550187104484 wuc2= 0.74809320722227 0.00789900963848 0.00007903246857 0.00000079033719 wuc4= 0.15909643894627 0.00001711104088 0.00000000171271 0.00000000001003 4 由(2)计算的结果可见,步长越小,误差越小,且精度为 O(h ) 的中心差商公式比
2 精度为 O(h ) 的中心差商公式计算近似值的精度高, 当 h ? 0.000 1 , 利用精度为 O(h 4 )

的中心差商公式计算 f (0.79) 的近似值与精确值最为接近,误差仅为wuc4=1.003 ? 10 .
'

?11

(三)变步长的中心差商公式及其MATLAB程序 现根据 (8.20)式编写了用变步长的中心差商公式计算 f ( x) 的近似值和误差估计的 MATLAB 程序如下: 用变步长的中心差商公式计算 f ( x) 的近似值和误差估计的 MATLAB 程序
170.
' '

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

输入的量: fun是函数 y ? f ( x) ,x0是导数点, wu是 f ' ( x) 的近似值的精度, max1是 计算次数的最大值,h0是初始步长. 输出的量:H 表示步长 h / 10 组成的数组,Dy 是导数值组成的数组,W 是误差限数 组,n 是迭代次数. function [n,H,Dy,W]=rendifflim(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<max1) ) h=h/(10^(k)) ; H(k+1)=h; x1=x0+H(k+1); x2=x0-H(k+1); Dy(k+1)=(feval(fun,x1)- feval(fun,x2))./(2* H(k+1)); W(k+1)=abs(Dy(k+1)- Dy(k)); k=k+1; end n=length(Dy(1:k))-2; Dy= Dy(2:k); W=W(2:k); H=H(2:k); 例 8.2.7 设 f ( x) ? sin(5x 2 ? 21 ) .取初始步长 h0=0.2,精度 wu=0.00001, 用变步
k

长的中心差商公式计算 f ' (0.79) 的近似值和误差估计,与精确值 4.46550187104484 比 较. 解 输入程序 >> x0=0.79;wu=0.00001;max1=100;h0=0.2; [n,H,Dy,W]=rendifflim(@fun,x0,h0,wu,max1) jdwc=4.46550187104484- Dy 运行后屏幕显示迭代次数n, 变步长数组H,用变步长的中心差商公式计算 f ' (0.79) 的近 似值Dy,误差估计值W,jdwc,精确值与近似值Dy的差如下 n= 2 H= 0.02000000000000 0.00020000000000 0.00000020000000 Dy = 4.43395716561354 4.46549870972618 4.46550187410688 W= 2.48353880661895 0.03154154411264 0.00000316438070 jdwc = 0.03154470543130 0.00000316131866 -0.00000000306204

8.2.4

牛顿(Newton)多项式求导及其 MATLAB 程序

现提供的 MATLAB 程序 diffnew.m 可以用来实现(8.23) 式的计算.数据之间不需要等 距, 而且此程序只计算一点的导数 f ' ( x0 ) .程序 diffnew.m 是根据满足定理 8.5 条件的 n+1 个节点 ( x j , y j ),

j ? 0, 1? , n 的差分求解,通过构造 n 阶牛顿插值多项式

Pn ( x) ? f ( x0 ) ? f [ x0 , x1 ](x ? x0 ) ? f [ x0 , x1 , x2 ](x ? x0 )(x ? x1 ) ? ? ? f [ x0 , x1 , x2 ,?, xn ](x ? x0 )(x ? x1 )?( x ? xn?1 ),
求解 f ( x0 ) 的近似值.将 f ' ( x0 ) ? P ' ( x0 ) 作为最终结果.如果在 xk 处使用这个方法,则
'

可以通过重新排列点的顺序为 ? t k , t 0 , t1 ,?, tt ?1 , tt ?1 ,?, t n ?来计算 f ' ( xk ) ? P ' ( xk ) . 利用牛顿插值多项式求导的 MATLAB 主程序

171.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

输入的量: X 和 Y 分别是由 n ? 1 个节点 ( xi , y i ) 的 (i ? 1,2,?, n ? 1) 横坐标和纵坐标 构成的向量; 输出的量:df 是 f ' ( x0 ) 的近似值, n 阶牛顿多项式 P 及其系数向量 A. 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 end x0=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
3.135 2 0.126 6

根据下表给定的一组数据(X ,Y)写出 (8.23)式的具体形式及其精度和名
3.335 2 -0.060 2 3.535 2 -0.603 2 3.735 2 -0.998 0 3.935 2 -0.119 4 4.135 2 0.995 3 4.335 2 -0.654 2 4.535 2 0.158 1

称,并用它计算 f ' (3.135 2) 的近似值,取 4 位小数计算.

解 因为表中所给数据(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. 根据推论 8.1 知,当 n ? 8 时,(8.23)式是精度为 O(h 7 ) 的 f ' ( x) 的 7 阶前差公式.输 入程序 >> X=[3.1352,3.3352,3.5352,3.7352,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) 运行后屏幕显示 f ' (3.135 2) 的近似值 df 和 7 阶牛顿多项式 P 及其系数向量 A 如下 df = -0.2428 A= 0.1266 -0.9340 -4.4525 10.5083 16.1667 -72.4818 64.7309 108.6155 P= 633/5000*x^7-467/500*x^6-1781/400*x^5+1478916440133901/1407374883 55328*x^4+4550512123488957/281474976710656*x^3-27833/384*x^2+4555032337 958703/70368744177664*x+7643132912526197/70368744177664 例 8.2.10 设函数 f ( x) ? sin(5x ? 21 ) .利用(8.23)式的精度为 O(h ) 的 f ( x) 的 4
2 4 ' '

阶前差公式、4 阶后差公式和 4 阶中心差商公式计算 f (3.135 2) 的近似值,并与精确值 比较,取 14 位小数计算,h=0.001. 解 (1) 根据推论 8.1 知, 当 n ? 5 时, ①如果 x0=3.135 2, x1= x0+h, x2= x0+2h, x3= x0+3h, x4=x0+4h, 则(8.23)式是精度为 O(h ) 的 f ( x) 的 4 阶前差公式.②如果 x0=3.135 2, x1= x0-h, x2= x0-2h, x3= x0-3h, x4= x0-4h,则(8.23)式是精度为 O(h ) 的 f ( x) 的 4 阶后差公式. ③如 果 x0=3.135 2, x1= x0+h, x2= x0-h, x3= x0+2h, x4= x0-2h, 则(8.23) 式是精度为 O(h ) 的 f ( x) 的 4 阶中心差商公式. 输入计算程序 >> x0=3.1352;h=0.001; Xq=[3.1352, x0+h, x0+2*h, x0+3*h, x0+4*h]; Xh=[3.1352, x0-h, x0-2*h, x0-3*h, x0-4*h]; Xz=[3.1352, x0+h, x0-h, x0+2*h,x0-2*h]; Yq=sin(5*Xq.^2-21); Yh=sin(5*Xh.^2-21); Yz=sin(5*Xz.^2-21);
172.
4 ' 4 ' 4 '

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

[dfq,Aq,Pq]=diffnew(Xq,Yq), [dfh,Ah,Ph]=diffnew(Xh,Yh), [dfz,Az,Pz]=diffnew(Xz,Yz) syms x, f=sin(5.*x.^2-21) ; dy=diff(f,x) 运行后屏幕显示① 4 阶前差公式 Pq 和它的系数向量 Aq 及其 f ' (3.135 2) 的近似值 dfq; ②

4 阶后差公式 Ph 和它的系数向量 Ah 及其 f ' (3.135 2) 的近似值 dfh; ③ 4 阶中心差商公式
Pz 和它的系数向量 Az 及其 f ' (3.135 2) 的近似值 dfz,导数 f ' ( x) 的符号形式分别如下 dfq = -31.09973888240658 Aq = 1.0e+003 * Columns 1 through 4 0.00012659805395 -0.03116184195521 -0.05190522279697 5.11405450158927 Column 5 5.04316638931140 Pq= 4561175588748639/36028797018963968*x^4-8771278738603423/28147 4976710656*x^3-7305010688969305/140737488355328*x^2+2811481194788801/54 9755813888*x+5545020085856995/1099511627776 dfh = -31.09973905786443 Ah = 1.0e+003 * Columns 1 through 4 0.00012659805395 -0.03102749818686 -0.08234817664867 5.02372948127046 Column 5 8.97444729902917 Ph= 4561175588748639/36028797018963968*x^4-8733464329536931/28147 4976710656*x^3-5794737776087263/70368744177664*x^2+345228061216123/6871 9476736*x+5483510392960745/549755813888 dfz = -31.09974389667719 Az = 1.0e+003 * Columns 1 through 4 0.00012659805395 -0.03116184195521 -0.06717188417315 5.08888712539359 Column 5 7.53074172148027 Pz= 4561175588748639/36028797018963968*x^4-8771278738603423/281 474976710656*x^3-4726801133312021/70368744177664*x^2+5595290566809831/1 099511627776*x+2070034522136353/274877906944 dy = 10*cos(5*x^2-21)*x ' (2)为了将 f (3.135 2) 的三种近似值与精确值比较,输入程序 >> x=3.1352; dy =10*cos(5*x^2-21)*x, wuq=dfq- dy , wuh=dfh- dy, wuz=dfz- dy, ' 运行后屏幕显示 f (3.135 2) 值及其三种近似值分别与精确值的差如下 dy = wuq = -31.09974488361178 6.001205203887139e-006 wuh = wuz = 5.825747354748501e-006 8.869345909407912e-007 ' 4 由误差可见,用 阶中心差商公式计算 f (3.135 2) 的近似值 dfz 与精确值的差 wuz 最小,用 4 阶前差公式计算 f (3.135 2) 的近似值 dfh 与精确值的差 wuh 最大.
173.
'

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

8.2.5

diff 和 gradient 函数在数值求导中的应用

在 MATLAB 系统中没有为用户提供数值求导的直接调用程序, 但是我们可以利用系 统中的梯度函数 gradient,或利用系统中的差分函数 diff,或根据前面介绍过数值求导公 式和截断误差公式,自己编写 MATLAB 程序来求给定函数 y ? f ( x) 的数值导数,下面 分别介绍 diff 和 gradient 函数在数值求导中的应用. (一) diff 函数在数值求导和差分中的应用 我们不但可以调用 diff 函数求一(多)元函数的符号(偏)导数,而且还可以计算差 分,从而可以间接用 diff 求一元函数 y ? f ( x) 的各阶数值导数或多元函数的数值偏导 数.diff 调用格式和功能如表 8–7 和例题所示.
表 8–7 用 diff 计算数值求导和差分的调用格式和功能

数值求导的 MATLAB 命令 dX =diff(X)





(1) 如果 X 是向量,则 DIFF(X)输出 [X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]; (2) 如果 X 是矩阵,则 DIFF(X)输出矩阵 X 的行差分矩 阵 [X(2:n,:) - X(1:n-1,:)]. diff(y)./diff(x) 实现用前差公式 (8.2) 求函数

y ? f ( x) 对 x 的

yx=diff(y)./diff(x)

一阶数值导数 y ' ?

?y , 其中函数 y ? f ( x) 的增量 ?x ?y ? diff(y),自变量 x 的增量 ?x ? diff(x). f ' ( x) ?

dX =diff (X,N) dX =diff (X,N,DIM)

如 果 X 是 维 数 是 DIM 的 向 量 或 数 组 , 且 N >= size(X,DIM),则 DIFF(X,N) 是 N 阶差分. 如果 X 是向量或矩阵,则 DIFF(X,N,DIM) 是沿着 DIM 的 N 阶差分.如果 N >= size(X,DIM), 则 DIFF 返回空的数组.

8.3
数值 f
( n)

高阶导数的数值计算及其 MATLAB 程序

高阶导数的数值计算 是用离散方法近似地计算函数 y ? f ( x) 在某点 x0 处的高阶导

( x0 ) .当然,通常只有函数以离散数值形式给出时才有必要用这种方法.目前,常
( n)

用的高阶导数的数值计算方法分为三类,第一类是插值或拟合高阶数值导数方法;第二 类是利用泰勒级数构造 n 阶导数的数值计算公式 P 构造 n 阶导数的数值计算公式 P 程序.
( n)

第三类是利用高阶导数的定义 ( x) ;

( x) .本节以范例的形式介绍前两类方法及其 MATLAB

8.3.1

插值或拟合高阶数值导数及其 MATLAB 程序

插值或拟合高阶数值导数方法就是利用第六章和第七章介绍的插值或拟合的方法, 首先用给定的数值点构造一个插值函数或拟合函数 P ( x) ,然后或者将 P ( x) 的 n 阶导数

P (n) ( x) 作为 n 阶导数的数值计算公式,或者对将 P( x) 进行差分可得到 n 阶导数的数值 计算公式, 求函数 f ( x) 的 n 阶数值导数 f ( n) ( x0 ) 的方法.现提供利用拉格朗日 (Lagrange) 插值多项式构造 n 阶导数的数值计算公式的主程序,保存名为 ndaolag.m 的 M 文件. 利用拉格朗日插值多项式构造 n 阶导数的数值计算公式的 MATLAB 主程序
174.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

输入的量: n ? 1 个节点 ( xi , yi ) (i ? 1,2,?, n ? 1) 的横坐标向量 X,纵坐标的向量
Y, f ( x ) 的最高阶导数

f ( n) ( x) 的阶数 n.

输出的量: n 次拉格朗日插值多项式 L 及其系数向量 C, f ( x) 的 1 至 n 阶导数

f

(k )

( x) 的计算公式 dyk ?k ? 1,2,3,?, n? 和导数的阶数 k.
function [C,L,dyk,k]=ndaolag(X,Y,n) m=length(X); n1=m; L=ones(m,m); for k=1:m V=1; for i=1:m if k~=i V=conv(V,poly(X(i)))/(X(k)-X(i)); end end L1(k,:)=V; l(k,:)=poly2sym (V); end C=Y*L1;L=Y* l; syms x dyk for k=1:n k; dyk=diff(L,x,k) end

给出节点数据 f (?2.15) ? 17.03, f (?1.00) ? 7.24 , f (0.01) ? 1.05 , f (1.02) ? 2.03 , f (2.03) ? 17.06 , f (3.25) ? 23.05 . (1)作五次拉格朗日插值多项式L和 f ( x) 的1至5阶数值导数公式; 例 8.3.2 (2)利用此公式求 y ? f ( x) 在 x ? ?1.234 5 处的1至5阶导数的近似值. 解 (1)保存名为 ndaolag.m 的 M 文件. (2)在 MATLAB 工作窗口输入程序 >> X=[-2.15 -1.00 0.01 1.02 2.03 3.25]; Y=[17.03 7.24 1.05 2.03 17.06 23.05]; [C,L,dyk,k]= ndaolag(X,Y,5) 运行后屏幕显示五次拉格朗日插值多项式 L 及其系数向量 C, f ( x) 的 1 至 5 阶数值导数 公式 dyk(略). (3)为了求 y ? f ( x) 在 x ? ?1.234 5 处的 1 至 5 阶导数的近似值,输入程序 >> x=-1.2345;
dy1=-26370266994304203933/5764607523034234880+18224487282009991221/2882303 761517117440*x^2+59786195406624056511/230584300921369395200*x^3-125011508555946156 69/11529215046068469760*x^4+2505830415074824099257/368934881474191032320*x dy2=18224487282009991221/1441151880758558720*x+179358586219872169533/23058 4300921369395200*x^2-12501150855594615669/2882303761517117440*x^3+2505830415074824 099257/368934881474191032320 dy3=18224487282009991221/1441151880758558720+179358586219872169533/1152921 50460684697600*x-37503452566783847007/2882303761517117440*x^2 dy4=179358586219872169533/115292150460684697600-37503452566783847007/14411 51880758558720*x dy5 =-37503452566783847007/1441151880758558720

运行后屏幕显示 y ? f ( x) 在 x ? ?1.234 5 处的 1 至 5 阶导数的近似值如下 dy1 = dy2 = dy3 = dy4 = dy5 = -6.3294 0.5262 -8.1043 33.6814 -26.0232 例 8.3.3 已知 sin 30? ? 0.5 , sin 45? ? 0.7071 , sin 75? ? 0.9659 , sin 60? ? 0.866 0 , sin 90? ? 1 . (1)作四次拉格朗日插值多项式L和 f ( x) ? sin x 的1至4阶数值导数公式; (2)利用上面的公式求 y ? f ( x) 在 x ? 40 处的1至4阶导数的精确值,近似值及其 绝对误差,取小数点后4位和后14位计算.
?

175.

高等教育出版社 教育电子音像出版社
第八章
?

作者:任玉杰
数值微分
? ? ?

解 (1)取 f ( x) ? sin x ,则 30 ? ? / 6 ,45 ? ? / 4 ,60 ? ? / 3 ,75 ? 5? / 12,

90? ? ? / 2 ,求 40? ? 2? / 9 .
(2)保存名为ndaolag.m的M文件. (3)在MATLAB工作窗口输入程序 >> X= [pi/6,pi/4,pi/3,5*pi/12,pi/2]; Y=[0.5,0.7071,0.8660,0.9659,1];
[C,L,dyk,k]=ndaolag(X,Y,4), x=pi/6: pi/12: pi/2; y=sin(x); [C1,L1,dyk1,k1]= ndaolag(x,y,4), for i=1:4 i,syms x,dyi=diff(sin(x),x,i) end

运行后屏幕显示四次拉格朗日插值多项式 L 及其系数向量 C, f ( x) 的 1 至 4 阶数值导数 dyk 和符号数 dyi 公式及其导数阶数 k 和 i. (4)为了利用上面的公式求 y ? f ( x) 在 x ? 40 处的 1 至 4 阶导数的近似值,并估 计其误差,输入程序 >> x=2*pi/9;
?

dY1=685769833743917463/703687441776640000+1261982467915759/10995116277760 000*x-24314514941446017/35184372088832000*x^2+6241572970666541/43980465111040000*x^ 3 dY2=1261982467915759/10995116277760000-24314514941446017/17592186044416000 *x+18724718911999623/43980465111040000*x^2 dY3=-24314514941446017/17592186044416000+18724718911999623/21990232555520 000*x dY4=18724718911999623/21990232555520000 dy1=-6644262608911145859863501570909/79228162514264337593543950336*x^3+771 72015474009052195694711806203/316912650057057350374175801344*x^2-34408318598267032 320107245880583/158456325028528675187087900672*x+37371347371255248186645713466863 /633825300114114700748351602688+1/2*2^(1/2)*(-2496629188266579/17592186044416*x^3+166 67207822766783/35184372088832*x^2-8898045875479213/17592186044416*x+60029499426237 21/35184372088832)+1/2*3^(1/2)*(7489887564799735/35184372088832*x^3-11765087874894195/ 17592186044416*x^2+91239728215363/137438953472*x-7257297691828675/35184372088832) dy2=-19932787826733437579590504712727/79228162514264337593543950336*x^2+77 172015474009052195694711806203/158456325028528675187087900672*x-34408318598267032 320107245880583/158456325028528675187087900672+1/2*2^(1/2)*(-7489887564799737/175921 86044416*x^2+16667207822766783/17592186044416*x-8898045875479213/17592186044416)+1/ 2*3^(1/2)*(22469662694399205/35184372088832*x^2-11765087874894195/8796093022208*x+912 39728215363/137438953472) dy3=-19932787826733437579590504712727/39614081257132168796771975168*x+7717 2015474009052195694711806203/158456325028528675187087900672+1/2*2^(1/2)*(-7489887564 799737/8796093022208*x+16667207822766783/17592186044416)+1/2*3^(1/2)*(224696626943992 05/17592186044416*x-11765087874894195/8796093022208) dy4=-19932787826733437579590504712727/39614081257132168796771975168-748988 7564799737/17592186044416*2^(1/2)+22469662694399205/35184372088832*3^(1/2) dyi1=cos(x),dyi2 =-sin(x),dyi3 =-cos(x),dyi4 =sin(x) WuY1= dyi1-dY1, WuY2= dyi2-dY2, WuY3= dyi3-dY3, WuY4= dyi4-dY4, wuy1= dyi1-dy1, wuy2= dyi2-dy2, wuy3= dyi3-dy3, wuy4= dyi4-dy4,

运行后将输出的 y ? f ( x) 在 x ? 40 处的 1 至 4 阶导数 (取小数点后 4 位和后 14 位) 的 近似值及其精确值,绝对误差的计算结果列入表 8–9 中.
?

表 8–9 例 8.3.3 的计算结果

导数阶数
1 2 3 4

取 4 位小数 f ' (40? ) ? dYi
0.766 -0.642 -0.787 0.851 141 619 659 501 243 475 874 632 981 133 541 132 26 15 25 55

取 14 位小数 f ' (40? ) ? dyi
0.766 -0.642 -0.790 0.856 193 256 355 183 916 034 501 359 662 878 585 293 49 43 45 71

精确值 f ' (40? ) =dyik
0.766 -0.642 -0.766 0.642 044 787 044 787 443 609 443 609 118 686 118 686 98 54 98 54

导数阶数
1 2 3 4

取 4 位小数的绝对误差
-8.680 086 228 291 973e-005 -1.681 345 533 890 433e-004 0.021 615 431 422 27 -0.208 714 022 446 01

取 14 位小数的绝对误差
-1.494 735 435 086 936e-004 -5.315 748 081 105 021e-004 0.024 311 058 466 47 -0.213 395 749 607 17
?

由表 8–7 可见, y ? f ( x) 在 x ? 40 处的 1 至 4 阶导数的 (取小数点后 4 位比后 14
176.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

位) 近似值的绝对误差小.

8.3.2

高阶泰勒(Taylor)数值导数及其 MATLAB 程序
( n)

所谓高阶泰勒数值导数方法 就是利用泰勒级数构造 n 阶导数 f 式计算 f
( n)

( x) 的数值计算公

( x0 ) 的近似值的方法.
设 f ( x) ? sin(5x 2 ? 21 ).

例 8.3.5

(1)分别利用(8.31)和(8.30)式计算 f " (0.79) 的近似值和误差限,绝对误差和 相对误差,精度为小数点后 4 位,其中步长分别取 h ? 0.1 ,0.01, 0.001 , 0.0001 ,

f

( 4)

( x ) ? 9 464, x ? [0,1] .
" "

(2)将(1)中计算的 f (0.79) 的近似值分别与精确值比较. 解 (1)根据(8.31)和(8.30)式编写计算 y ? f ( x) 的二阶导数计算 f (0.79) 的 近似值和误差估计的MATLAB程序,并输入程序如下 >> x=0.79;h=[0.1 0.01 0.001 0.0001]; M=9464;x1=x+h;x2=x-h; y=sin(5.*x.^2-21); y1=sin(5.*x1.^2-21); y2=sin(5.*x2.^2-21); yz=(y1+y2-2*y)./(h.^2), wu=abs(-h.^2.*M/24), syms x,f=sin(5.*x.^2-21); dy2=diff(f,x,2) 运行后屏幕显示利用中心差商公式计算 f " (0.79) 的近似值yz和误差限wu,精度为小数点

, 0.001 , 0.0001 ,M=9 464,二阶导函数dy2 如下 后4位,其中步长分别取 h ? 0.1, 0.01
yz = -45.02889719685589 -45.82347193518466 -45.83048545869772 -45.83055543960768 wu = 3.94333333333333 0.03943333333333 0.00039433333333 0.00000394333333 dy2 = -100*sin(5*x^2-21)*x^2+10*cos(5*x^2-21)

(2)输入程序 >> x=0.79; dy2 =-100*sin(5*x^2-21)*x^2+10*cos(5*x^2-21) wuj=abs(yz-dy2), wux= wuj./abs(yz) 运行后屏幕显示利用中心差商公式计算 f " (0.79) 的近似值与精确值的绝对误差wuj, 相对 误差wux 和 f " (0.79) 的精确值dy2如下
dy2 = -45.83055620608437 wuj= 0.80165900922847 0.00708427089971 wux= 0.01780321214006 0.00015459917375 0.00000154367526 0.00000001672414
"

0.00007074738664

0.00000076647669

由(2)计算的结果可见, h ? 0.0001 ,利用中心差商公式计算 f (0.79) 的近似值 与精确值最为接近.

8.4 数值梯度和数值偏导数的计算及其 MATLAB 程序
梯度和偏导数的数值计算可以用 MATLAB 系统中的 gradient 函数或 jacobian 函数 完成.另外,MATLAB 系统中还提供了用离散方法近似地计算拉普拉斯算子(Discrete Laplacian )的程序 DEL2 和雅可比行列式的程序 NUMJAC.本节介绍这些程序的功 能和调用格式.

8.4.1

梯度和偏导数的数值计算及其 MATLAB 程序
177.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

在大学数学中,梯度是这样定义的:如果二元函数 z ? f ( x, y) 在平面区域 D 内具有 一阶连续偏导数,则对于每一点 P( x, y) ? D,都可以确定出一个向量,也就是梯度 grad f ( x, y ) ? 其中

?f ? ?f ? i ? j, ?x ?y

?f ?f 和 分别是 z 对 x 的偏导数和 z 对 y 的偏导数.MATLAB 系统中的 gradient 程 ? x ?y

序的主要功能是梯度、偏导数和导数的数值计算,详细的调用格式和功能如表 8–11 和例 题所示.
表 8–11 gradient 程序的主要功能和调用格式

gradient 命令 [FX,FY]=gradient(F)





如果在每个方向上点与点之间的间距 H(即步长)是 1,F是矩阵,则[FX,FY] = GRADIENT(F)返回矩阵F的数 值梯度.其中 FX 相当于在x(列)方向的数值偏导数 FY 相当于在y (行)

?F . ?x ?F 方向的数值偏导数 . ?y

当 F 是向量时, DF = GRADIENT(F) 返回1-D梯度.

[FX,FY]=gradient(F,H) [FX,FY]=gradient(F,HX,HY)

如果在每个方向上点与点之间的间距 H(即步长)相 等,F 是矩阵或向量,则用此命令计算数值梯度. 如果F是2维数组,且在x和y的向量或坐标点之间的间 距分别是HX和HY(即步长),F是矩阵或向量,则用此命 令计算数值梯度. 如果 HX 和 HY 是向量,则它们的长度必须与 F 对应 的维数匹配. 如果F是3维数组,H是在每个方向上点与点之间的间 距,则返回F的数值梯度.其中

[FX,FY,FZ] = gradient(F,H)

?F . ?x ?F FY 相当于在y方向的数值偏导数 . ?y ?F FZ 相当于在 z 方向的数值偏导数 . ?z
FX 相当于在x方向的数值偏导数 当 H=1 时, [FX,FY,FZ] = gradient(F).

[FX,FY,FZ] = gradient (F,HX,HY,HZ) [FX,FY,FZ,...] = GRADIENT(F,...)

如果间距由 HX, HY, HZ 给出,则用此命令计算数值梯度. 同样地可以拓展到,即当 F 是 N 维数组,必须调用 N 个输出量和 2 或者 N+1 个输入量时, 则用此命令计算数值 梯度.

2 ?x ?y 例 8.4.3 设二元函数 z ? 3x e , 取区域为 ? 2.1 ? x ? 2.1 ,? 2.1 ? y ? 2.1 , x 和 y 的步长为 Hx= Hy=0.2,试求数值梯度向量,并画图.

2

2

178.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

图8–2 例 8.4.3中 z ? 3x e
2

? x2 ? y2

的数值梯度向量的图形



输入计算数值梯度向量和画图的程序 >> [x,y] = meshgrid(-2.1:.2:2.1, -2.1:.2:2.1); z = 3*x.^2 .* exp(-x.^2 - y.^2); [px,py] = gradient(z,.2) contour(z),%曲面 z ? 3x e 的等高线在 xoy 面上的投影线 hold on,quiver(px,py) %quiver是二维向量场的表现函数 hold off
2

? x2 ? y2

运行后屏幕显示数值梯度grad f ( x, y ) ? px, ?f ? py的数据(略).
?y

?f ? ?f ? ?f i ? j 向量(略)和图8–2,其中 ? ?x ?x ?y

另外, 在 MATLAB 系统中求曲面在每个节点的法向量的函数为 surfnorm, 详细的调 用格式和功能如表 8–12 和例题所示.
表 8–12 求曲面在每个节点的法向量的函数 surfnorm 的调用格式和功能

符号求导的命令 [Nx,Ny,Nz] = surfnorm (X,Y,Z) [Nx,Ny,Nz] = surfnorm (Z) surfnorm (X,Y,Z) 或 surfnorm (Z) surfnorm (...,'PropertyName',PropertyValue,...)





输入由(X,Y,Z)构成的 3 维数组,输出长度为 1 的 被正规化的曲面的法向量的数值表达式 [Nx,Ny,Nz] . 系统按(X,Y)计算步长. 对于输入的曲面 Z 的函数值,输出曲面 Z 上的法向 量的数值表达式 [Nx,Ny,Nz] .系统按 1 计算步长. 系 统 不 输出 值 ,而 是自 动 先用 surf(Z) 或 surf (X,Y,Z)画出曲面,然后在每个节点处以箭头的形式标 出该点的法向量. 可以被用于设置指定曲面性质的向量, 根据双三 次拟合的数据输出曲面 Z 的法向量.

179.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

surfnorm (X',Y',Z')

用于输出相反方向的曲面 Z 的法向量.

设 二 元 函 数 z ? 3( x ? 1) 2 e , 取 区 域 为 ? 2.1 ? x ? 2.1 , ? 2.1 ? y ? 2.1 , x 和 y 的步长为 Hx= Hy=0.2,试求该曲面在每个节点的法向量,并画图. 例 8.4.4

? ( x ?1) 2 ? y 2

图8–3 曲面 z ? 3( x ? 1) 2 e 解

? ( x ?1) 2 ? y 2

及其在每个节点的法向量的图形

输入求该曲面在每个节点的法向量和画图的程序 >> [x,y] = meshgrid(-2.1:.2:2.1, -2.1:.2:2.1); z = 3*(x-1).^2 .* exp(-(x+1).^2 - y.^2); [Nx,Ny,Nz] = surfnorm (x,y,z), surfnorm (x,y,z) 运行后屏幕显示该曲面在每个节点的法向量的数值表达式 [Nx,Ny,Nz](略)和图8–3.

8.4.2

计算雅可比(Jacobi)矩阵及其行列式的 MATLAB 方法

雅可比行列式在重积分的换元法, 隐含数存在定理等问题中都有应用.MATLAB 系统 中提供了用离散方法近似地计算雅可比行列式的函数 numjac.另外,还提供了符号计算 雅可比矩阵的函数 jacobian.下面分别介绍它们的功能和调用格式. (一) 符号计算雅可比(Jacobi)矩阵及其行列式 MATLAB 系统中提供了符号计算雅可比矩阵的函数 jacobian.它的功能和调用格式如 表 8–13 和例题所示.
表 8–13 符号计算雅可比矩阵的函数 jacobian

符号求雅可比矩阵的命令





Jfv=jacobian (f,v)

jacobian (f,v) 是计算关于向量 v 的向量或标量 f 的雅可比矩 阵 Jfv.输出结果第(i,j)的表值是 df(i)/dv(j).注意: 当 f 是标量时, f 的 雅可比矩阵是 f 的梯度.例如,对于一个函数 u ? f ( x, y, z ) ,则 jacobian(f)求出

f ( x, y, z )

的梯度,它的第 1、2、3 个分量依次是

u 分别对 x,y,z 偏导数.另外,值得注意的是:如果 v 是标量,则 jacobian (f,v)=DIFF(f,v).
180.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

?u ? 3( x ? 1) 2 e ?( x ?1) 2 ? y 2 ? ? 2 2 例 8.4.5 设 ?v ? x ? 2 x ? y ? 2 z ? 1 ,求在 x ? 2, y ? 1, z ? 5 处的雅可比矩阵 ?w ? 3xyz ? ? ?(u, v, w) ?2 ? 和雅可比行列式 J x . y ?1 ?2 ??x, y, z ? x z ?5 y ?1
z ?5

解(1)首先求雅可比矩阵. 在 MATLAB 工作窗口输入程序 >> syms x y z T=[x y z]; u=3*(x-1)^2*exp(-(x+1)^2-y^2); v=x^2-2*x+y^2+2*z+1; w=3*x*y*z; f=[u;v;w]; Jfv=jacobian (f,T) 运行后输出 f 雅可比矩阵 Jfv 如下 Jfv = [6*(x-1)*exp(-(x+1)^2-y^2)+3*(x-1)^2*(-2*x-2)*exp(-(x+1)^2-y^2), -6*(x-1)^2*y*exp(-(x+1)^2-y^2), 0] [2*x-2, 2*y, 2] [3*y*z, 3*x*z, 3*x*y] (2)再求雅可比行列式 Jfd215,输入程序 >> x=2;y=1;z=5; Jfv=[6*(x-1)*exp(-(x+1)^2-y^2)+3*(x-1)^2*(-2*x-2)*exp(-(x+1)^2-y^2),-6*(x-1)^ 2*y*exp(-(x+1)^2-y^2),0;2*x-2,2*y,2;3*y*z,3*x*z,3*x*y], Jfd215=det(Jfv) 运行后输出 f 在 x ? 2, y ? 1, z ? 5 处的雅可比矩阵 Jfv 及其行列式 Jfd215 如下 Jfv = -0.00054479915715 -0.00027239957857 0 2.00000000000000 2.00000000000000 2.00000000000000 15.00000000000000 30.00000000000000 6.00000000000000 Jfd215 = 0.02124716712884 例 8.4.6 设 u ? 3( x ? 1) e ?( x?1) ? y ? 3xyz ? x 2 ? 2x ? y 2 ? 2z ? 1 . 求(1) u 的一阶偏导数,梯度和全微分; (2) u 沿向量 V=(2,1,5)的方向导数; (3) u 在 x ? 2, y ? 1, z ? 5 处的一阶偏导数,梯度和全微分. 解 (1)输入程序 >> syms x y z i j k dx dy dz T=[x y z]; f=3*(x-1)^2*exp(-(x+1)^2-y^2)+3*x*y*z+x^2-2*x+y^2+2*z+1; Jfv=jacobian (f,T); Df= Jfv*[dx dy dz]', ux= Jfv(1), uy= Jfv(2), uz= Jfv(3), d=[i j k]; gradf=Jfv*d',V=[2,1,5]; Fxdf=Jfv*V' 运行后屏幕显示 u 沿向量 V=(2,1,5)的方向导数 Fxdf, 梯度 gradf u 的一阶偏导数 ux, uy, uz, 和全微分 Df(略). (2)输入程序 >> syms i j k dx dy dz,x=2;y=1;z=5;
2
2 2

Df=(6*(x-1)*exp(-(x+1)^2-y^2)+3*(x-1)^2*(-2*x-2)*exp(-(x+1)^2-y^2)+3*y*z+2*x-2)*conj(dx )+(-6*(x-1)^2*y*exp(-(x+1)^2-y^2)+3*x*z+2*y)*conj(dy)+(3*x*y+2)*conj(dz) ux=6*(x-1)*exp(-(x+1)^2-y^2)+3*(x-1)^2*(-2*x-2)*exp(-(x+1)^2-y^2)+3*y*z+2*x-2 uy=-6*(x-1)^2*y*exp(-(x+1)^2-y^2)+3*x*z+2*y 181.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

uz=3*x*y+2 gradf=-i*(6*(x-1)*exp(-(x+1)^2-y^2)+3*(x-1)^2*(-2*x-2)*exp(-(x+1)^2-y^2)+3*y*z+2*x-2)-i*(6*(x-1)^2*y*exp(-(x+1)^2-y^2)+3*x*z+2*y)+(3*x*y+2)*conj(k) Fxdf=12*(x-1)*exp(-(x+1)^2-y^2)+6*(x-1)^2*(-2*x-2)*exp(-(x+1)^2-y^2)+6*y*z+4*x+6-6*(x1)^2*y*exp(-(x+1)^2-y^2)+3*x*z+2*y+15*x*y

运行后屏幕显示 u 在 x ? 2, y ? 1, z ? 5 处的沿向量 V=(2,1,5)的方向导数 Fxdf, u 的一阶 偏导数 ux, uy, uz,梯度 gradf 和全微分 Df 如下
Df=2392460628375541/140737488355328*conj(dx)+9007122581075957/281474976710 656*conj(dy)+8*conj(dz) ux = uy = uz = 16.99945520084285 31.99972760042143 8 gradf =-13792043837827039/281474976710656*i+8*conj(k) Fxdf = 1.059986380021071e+002

(二) 数值计算雅可比行列式 函数 numjac 的主要功能是数值计算函数 F(T,Y)的雅可比行列式 dF/dY, 详细的调 用格式和功能如表 8–14 和例题所示.
表 8–14 数值计算函数 F(T,Y)的雅可比行列式的函数 numjac 的调用格式和功能

数值计算雅可比行 列式的命令





[DFDY,FAC] = ... numjac (F,T,Y, ... FTY, THRESH, ... FAC, VECTORIZED)

[DFDY,FAC] =numjac (F,T,Y,FTY,THRESH,FAC,VECTORIZED)的功能是 数值计算函数 F(T,Y)的雅可比行列式 DFDY, 返回 DFDY 的满矩阵. 其中 T 是自 变量,Y 是包含因变量的列向量.函数 F 必须返回一个列向量. 向量 FTY 是 F 在 (T,Y) 的估计 . 列向量 THRESH 规定对于 Y 有意义的阀值,即满足 abs(Y(i)) < THRESH(i)的 Y(i)的精确值.THRESH 的所有的元素必须是正的.列向量 FAC 是工 作 存 储 器 . 在 第 一 次 调 用 时 , 设 置 FAC 到 []. 在 调 用 之 间 不 改 变 返 回 值 . VECTORIZED 识别 numjac 是否可以获得具有单个的函数计算的 F 的复合值.尤 其 , VECTORIZED=1 表 示 F(t,[y1 y2 ...]) 返 回 [F(t,y1) F(t,y2) ...], 并 且 VECTORIZED=2 表示 F([x1 x2 ...],[y1 y2 ...]) 返回[F(x1,y1) F(x2,y2) ...]. 当解 ODEs 时, 如果 ODE 函数已经被编码, 以便 F(t,[y1 y2 ...]) 返回[F(t,y1) F(t,y2) ...], 则用 ODESET 设置 ODE 解 'Vectorized'的性质到'on'.当解 BVPs 时, 如果 ODE 函 数已经被编码,以便 F([x1 x2 ...],[y1 y2 ...]) 返回[F(x1,y1) F(x2,y2) ...],则用 BVPSET 设置 BVP 解 'Vectorized' 的性质到 'on'. 向量化的函数 F 可以加速 DFDY 的计算. [DFDY,FAC,G] = numjac (F,T,Y,FTY,THRESH,FAC,VECTORIZED,S,G) 的 功能是数值地计算函数 F(T,Y)的雅可比行列式 DFDY,返回 DFDY 的稀松矩阵.S 是 一个非空的 0 和 1 矩阵.对于 S(i,j)来说, 一个 0 意味着函数 F(T,Y)成分 i 不依 赖于向量 Y 的成分 j (因此 DFDY(i,j) = 0). 列向量 G 是工作储存器,在第一次 调用时,设 G 到 [],在调用之间不改变返回值. [DFDY,FAC,G,NFEVALS,NFCALLS] = NUMJAC(...) 返 回 当 生 成 dFdy (NFEVALS)时,被计算的值的次数和对于函数 F (NFCALLS)的调用的次数.如果 F 没有被向量化, NFCALLS 等于 NFEVALS.虽然,numjac 是特定地为 ODE's 积分时 计算偏导数的近似值开发的程序, 但是此程序也可以用于其它的应用.尤其是由函 数 F(T,Y)返回的长度不等于 Y 的长度时,DFDY 是长方形的.

[DFDY,FAC,G] =... numjac... (F,T,Y,FTY,THRE ...SH,FAC,VECT ORIZED,S,G) [DFDY,FAC,G,NF E...VALS,NFCAL LS] ... = numjac (...)

?u ? ? x 2 ? y, 例 8.4.7 设 ? 求J 2 v ? x ? y , ?


x ?1 y ?2

?

?(u, v) . ??x, y ? x ?1
y ?2

建立并保存名为 Y.m 和 F.m 的 M 文件
function Y=Y(T) x=T(1);y=T(2); Y=zeros(1,2); u=Y(1); Y(1)=-x^2+y; v=Y(2); Y(2)= x+y^2;

function F=F(T,Y) T=zeros(2,1); x=T(1);y=T(2); F=zeros(2,2); F(1,1)=T(1);F(1,2)=T(2); F(2,1)=Y(1); F(2,2)=Y(2); 在 MATLAB 工作窗口输入程序
182.

高等教育出版社 教育电子音像出版社
第八章 数值微分

作者:任玉杰

>> T=[1,2];y=Y(T); FTY=y; THRESH=[10000,10000]; FAC=[]; VECTORIZED=2; numjac (@F,T,@Y, FTY, THRESH, FAC, VECTORIZED) 运行后输出结果 ans = -9.

183.


推荐相关:

数学实验第六次(数值积分与微分)_图文.ppt

数学实验第六次(数值积分与微分) - 数学实验 之六:数值积分与微分 2008-11 桂林电子科技大学信息科技学院 数值积分与微分 积分和微分是我们在高等数学中学过的两...

高等数学对中学数学的指导.doc

它主要 研究常量的运算和固定不变图形的性质。 中学...主要是由极限论,微分学,积分学,级数理论,解析几何,...对高等数学的理解,而且能使我们准确把握中学数学的...

高等数学和中学数学教学的衔接_刘明秀.pdf

基础部 刘明秀[摘要] 怎样进行高等数学中学数学的...例如, 运用弧微分 “以直代曲” , 通过 定条件...高等数学运用分析运算 (无限运算 ) 极 限...

大学高等数学_05隐函数_微分与习题课.ppt

大学高等数学_05隐函数_微分与习题课_工学_高等...也有将中学较深入的代数、几何以及简单的集合论初步...微分运算法则微分形式不变性 : d f (u ) ? f ...

高等数学微积分习题.pdf

高等数学 B(1) 》教学大纲一、课程基本信息 ...学 分 5 先修课程 中学数学 开课学期 2013,9,23...了解微分的四则运算法 则和一阶微分形式的不变性,...

高等数学在中学数学中的若干应用.pdf

一方面也能提 高自己的专业素养,将高等数学中学...向量是近代数学中最重要的、基本的概念,它既是代数...向 量可以像数一样进行多种运算,如向量加、减、...

大学高等数学_22微分方程基本概念及其一般解法_图文.ppt

大学高等数学_22微分方程基本概念及其一般解法_理学_高等教育_教育专区。初等数学之外的数学都是高等数学,也有将中学较深入的代数、几何以及简单的集合论初步、逻辑...

高等数学微分方程.doc

高等数学微分方程_理学_高等教育_教育专区。高等数学微分方程 第八章 常微分方程一、本章学习要求与内容提要(一)基本要求 1.了解微分方程和微分方程的阶...

高等数学与中学数学_图文.ppt

拓扑学、常微分方程、偏微分方程、计算方 法等等 。...在中学任教多年, 将在大学学过的高等数学知识几乎...中的两个运算分别 具有以下运算规律,即 加法: P1 ...

高等数学基本内容_图文.ppt

而微积分学是数学分析中主 干部分,而微分方程在...培养学生具有熟练的基本 运算能力,一定程度的抽象思维...值得指出的是, 由于在中学养成的习惯,有相当多的...

微积分、高等数学和数学分析的差别.doc

第二件介绍基础的微分学和积 分学,并且给出它们...在中学,我们已经学习过六类简单初等函数(常指对幂,...学数学分析的目的不是学习导数或者积分这样的运算,...

高等数学在中学数学解题中的应用.doc

高等数学在中学数学解题中的应用_教学案例/设计_教学...数学教学中, “解题”是一种最基本的活动形 式...三角函数等基本性质和运算,平面解析几 何中常见曲线...

浅谈高等数学在中学数学中的应用.doc

的思想基础上,这使得高等数 学中学数学互相促进,...中学生对运算的认识是从“数”的运算开始,随着学习...(存在性、解法、结构),用微积分研究微分方程与方程...

高等数学的重要性和学习方法.doc

数学知识, 逐渐形成了数的概念, 产生了数的运算...这个时期的基本成果构成了现在中学数学课程的主要内容...高等院校习惯上将微积分学、微分方程初步和空间...

赛氪考研:微积分、高等数学与数学分析的区别与联系.doc

一方面它是数学工具,尤其是高等数学的基础工具。...求导与求不定积分两种运算,均属于微分学,尤其要强调...在中学,我们已经学习过六类简 单初等函数(常指对...

高数注意点.txt

微分方程则是微积分的一个应用,它与微积分有着...函数求极限的运算法则求极限,可以使一些复杂的极限...比如,分段函数是高等数学里一类基础却重要的函数为例...

浅谈微积分在中学数学中的应用.doc

浅谈微积分在中学数学中的应用_理学_高等教育_教育...(1)学习微积分的知识可以进一步提高学生的运算能力,...但对于比较难的不等式证明我们一 般采用微分中的求导...

关于《高等数学》教学基本要求的说明.doc

高等数学课程教 学基本要求》 ,在校原数学教研...4.函数的有关内容中学基本已学过,这里作复习,突出...2.熟练掌握导数与微分的运算法则及导数的基本公式,...

高等数学历史.doc

, 以大学本科所学为限, 它主要包含: 高等数学 ?...研究几何,其中平面解析几何部分内容已经在中学学过 ?...我们在的运算一些公 理都是阿基米德所创立的,...

高等数学各章知识结构.doc

曲线积分 方程 常微分方程 数学中研究导数、微分及其应用的部分称为微分学,研究...我们将以极限为基础,介绍连续函数的概念、连续函数的运算及连续函数的一些性质. ...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com