找回密码
 注册
关于网站域名变更的通知
查看: 675|回复: 1
打印 上一主题 下一主题

matlab实现数值积分 【一】(trapz函数)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-1-28 17:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

7 y$ G) j, u; m2 L" B4 x, n目录7 d( T$ u9 U. v: x
总述
, y" N& ?8 q5 p" P7 @3 I7 H2 a* `函数调用格式
) h) a4 J% @# S# m9 O' a应用举例
% `" {( A  e$ X* P  U) `1 P' d, F例1:梯形法求积分
  w: k( ]7 t+ M! U. R例2:不同步长对积分结果的影响
3 C6 E$ B+ ^, {2 h, V0 R) m/ N+ o$ G/ e$ s& P6 X4 W' u
总述% H6 V& Y  k9 g6 W

& z1 {9 q- C& K4 `  数值积分问题是传统数值分析课程中的重要内容。如果被积函数的数学表达式未知,则需要由实测数据通过梯形算法求出积分的近似值。本文将介绍被积函数的数学表达式未知时数值积分问题的求解方法,即已知数据点求积分。7 K1 N5 u  k+ m5 m2 S3 Z7 I/ t# w
5 f! \! Q! [9 s# f5 |2 P( O4 m

2 q# Z* R" r( e; P9 Y9 g' p
' m; W9 e& k; n7 `* H( E, f# k9 C  d/ `& F( H7 Z
函数调用格式  M+ Z" w! E% l0 |

( v( ^) U# v2 h% p- D
  • S = trapz(x, y);6 k1 u2 a/ ?/ B4 \0 M

3 u/ q6 m2 w6 _+ C7 ?7 t
3 [1 J/ i7 u/ ?( o  S# W1 r& [应用举例4 t; Z+ @! g" p$ P% ~

) _2 N0 @! F8 {( }) |. ?6 e例1:梯形法求积分0 `) B2 S: ]. G  ^3 {8 O% u

& g  Q: c4 M. S% |. A. D. \- o' \# U * h. t0 n# F0 |) B

9 y9 E) k; h% y- c6 [
  • x = [0:pi/30:pi]';
  • y = [sin(x) cos(x) sin(x/2)];
  • S = trapz(x,y)& C' r( U% t  R
7 y# e% J% s: E# o

! Y; Z( B& j5 R. J5 V, k结果为:S = [1.9982 0.0000 1.9995]
! N& J: k/ I- X( g8 Y7 \' ]/ Q5 W( P' e( Z3 X
由于选择的步距较大,为 , 故得出的结果有较大的误差。其实可以将积分问题与样条插值技术相结合,给出 一 个能精确计算积分的MATLAB函数。(待补充)4 \# B/ k& s2 P8 i# c& S
  N) j  ?4 d8 H9 K/ a! v. h, Q/ _
例2:不同步长对积分结果的影响& F, W: ?# {2 ?& i  `) l
题目: 用定步长法求解积分 ,并讨论不同步长对积分值的影响。
1 C/ _# K+ |* T" k8 u
7 \! K0 n4 Z4 Y" s& e8 A' z
  • 首先,绘制被积函数的图像:
    7 o  r0 {" S, ]

, C7 b. p7 w" y0 b5 U3 Z, G$ D/ m% W
  • x=[0:0.01:3*pi/2, 3*pi/2];  % //这样赋值能确保 3*pi/2 点被包含在内
  • y=cos(15*x); plot(x,y)
    & v$ O* @  ?' X. f9 S6 C
4 y) S1 q8 y. Q5 X) w

* c' @# M8 V! f+ M7 T! a. ^* f4 L * k3 J# Q: C# T+ Q( N
, \0 E; S( x6 Z0 ^7 p
由图像观察出在求解区域内被积函数有很强的振荡。; ?, N3 i# p9 u: ~0 x

, V5 D) ]4 a7 T
  • 对不同的步距 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 ,可以用下面的语句求出采用不同步长的积分近似结果。
    ' ~. u! b9 u6 _7 T4 ]5 ~
  • 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];
  • end3 S. S# F( G: e& c7 L+ {5 Q

" _8 u( e; [' Q5 T
1 j( ?; J; y1 g3 u* x得出结果如下:& u% ^$ a) Z9 i& s" B
/ {+ ?7 _7 Z  u. `
  z! O9 E) ~% l0 K( U/ e

6 j8 I! U8 h. c3 f+ u% l& k可见,随着步距 h h h的减小,计算精度逐渐增加。
0 j  v  a+ o7 \& `

该用户从未签到

2#
发表于 2021-1-28 18:38 | 只看该作者
matlab实现数值积分 【一】(trapz函数)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 05:48 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表