EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" A% U1 X1 @* B目录
3 U: n1 l& F" y4 s) W1 U总述
( @) L, t6 J) j函数调用格式
( K, e$ g5 [" W H应用举例
2 Y; b: O2 J) z: h例1:梯形法求积分
e% n R X0 m% T9 l* n, ~2 }! z例2:不同步长对积分结果的影响! K; i2 N2 Z+ d* o! n5 W ~
8 F) }* V: W! N
9 K! o; \" V" P; S5 |
总述 数值积分问题是传统数值分析课程中的重要内容。如果被积函数的数学表达式未知,则需要由实测数据通过梯形算法求出积分的近似值。本文将介绍被积函数的数学表达式未知时数值积分问题的求解方法,即已知数据点求积分。 6 m, N% Y+ A! S* }! S' y: q) A
函数调用格式
2 q. h$ L, b: u g0 G. v- S = trapz(x, y);; p1 M1 A* \; j
7 V1 p3 z+ M; ~
1 v0 F' {0 R. r应用举例例1:梯形法求积分5 R& U+ n- ~0 ^+ i( U
/ F1 q: B6 E1 d5 k/ \4 v" ]" ~8 d5 ]
" Q+ N$ o* ]1 f
& M7 g6 L! x" s. f( |5 v
- x = [0:pi/30:pi]';
- y = [sin(x) cos(x) sin(x/2)];
- S = trapz(x,y)
8 U0 L9 K( A4 a/ J
& M u/ H. q( V j
1 t) @# Z. ~8 ~, J: B6 H结果为:S = [1.9982 0.0000 1.9995] 6 w1 ^% Q$ ?" s
由于选择的步距较大,为h=π/30=0.1, 故得出的结果有较大的误差。其实可以将积分问题与样条插值技术相结合,给出 一 个能精确计算积分的MATLAB函数。(待补充) 例2:不同步长对积分结果的影响题目: 用定步长法求解积分
7 P4 }& x& S6 f! y) p" `; f: Q; l
,并讨论不同步长对积分值的影响。 - 首先,绘制被积函数的图像:
9 n7 k1 Q: X6 v1 `5 [ * d' e7 U1 G4 f7 u6 \5 k1 |) H) _8 j
- x=[0:0.01:3*pi/2, 3*pi/2]; % //这样赋值能确保 3*pi/2 点被包含在内
- y=cos(15*x); plot(x,y)( _ H& X) N& T S, y1 U M6 o W
) {, L. f! C" {
! g$ E$ T* C' T$ I+ {. G7 B) }$ t! |6 n3 Y/ U+ C
由图像观察出在求解区域内被积函数有很强的振荡。
% h3 ~* U6 ~. @, {6 h4 r4 O; Z/ m+ C
6 J7 s( X+ `, I) T# U7 l- 对不同的步距 h = 0.1 , 0.01 , 0.001 , 0.0001 , 0.00001 , 0.000001 h= 0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001 h=0.1,0.01,0.001,0.0001,0.00001,0.000001 ,可以用下面的语句求出采用不同步长的积分近似结果。9 d' c. i* u1 T; u/ s
- syms x, A=int(cos(15*x),0,3*pi/2) % //求取理论值为1/15
- h0=[0.1,0.01,0.001,0.0001,0.00001,0.000001]; v=[];
- for h=h0
- x = [0:h:3*pi/2, 3*pi/2]; y=cos(15*x);
- I = trapz(x,y);
- v = [v; h,I,A-I];
- end# S: `* w, J) y; F9 L
; z8 V: g; n$ M1 `
m/ _( f5 d* M; Y6 I3 e
得出结果如下:1 B1 ]* @. t4 \# G/ P1 z# l
, l" Y, ^0 ?# D% ^" x
1 C1 z& @, R" P T
0 {" [! s, y) o) e可见,随着步距 h h h的减小,计算精度逐渐增加。
1 r8 U$ z: D9 P5 t. `6 k' t6 {+ a/ F( z4 D5 i ]
2 }* p9 `( j, |, r, \8 Z( j
! u7 T& `8 p# \8 p# h
5 @5 C3 f7 i+ P! ]* y9 v* }
$ l" t1 O4 a" d
* w0 I, H; _3 |3 C: z- o7 Q
! b; g+ h2 J R3 @% s' ? |