|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
MATLAB源程序代码分享:MATLAB梯形法求离散数据点的数值积分, Y, E( c$ X# W+ o9 w
%% MATLAB trapz 函数, 使用梯形法, 求解离散数据点的数值积分6 j2 Y! E- x: G. x# y
clear;clc;close all
6 b# S: ]4 q+ A# ^( ]x=[-3 -1 0.5 2 3 6 7.5]; % 离散数据点的横坐标 x
. Z$ P# j2 P9 k' Ay=[1 2 5 5.5 1.5 3 1]; % 离散数据点的纵坐标 y
: b0 |9 K; v7 ]6 c8 m/ jQ=trapz(x,y) % 计算积分结果:离散数据点所连成的折线与 x 轴所围面积
+ _) o. `& q* b& Y% G8 n& d& E7 f! p) j8 z7 I9 I s( k! u& c* M
%% 动画演示, 梯形法求解数值积分的计算过程3 Q) {9 p9 W4 @& h8 [/ ^; U
plot(x,y,'*','MarkerSize',10,'Color',[0.2 0.7 0.2]) % 绘制离散的数据点
+ H, l, l' ^( Q2 Qaxis([-4 8 0 6])
) s D/ ~* t5 Bxlabel('横坐标 x')
3 F' o' x( L3 E7 j2 {# f5 H. Tylabel('纵坐标 y')
2 R4 U! }. N; Q) d: y0 z1 B6 Xtitle('梯形法求解数值积分的动画演示')& Y; d; B8 t9 l8 `# q* |) O
hold on
9 z. Z( s! l8 s; H1 Q. d# n9 a3 ?; j8 ]3 y
for k=1:length(x)-1
+ y( r1 T( {/ g; H, f% X pause(1)
0 [7 S5 M3 m- {; k C2 ? plot(x(k:k+1),y(k:k+1),'--','LineWidth',2,'Color',[0.3 0.7 1]) % 将离散的数据点, 使用直线依次相连1 @! e, G+ X5 Z _; l$ l
end
' p# r! ]3 N6 E9 h4 T5 o4 ]' M$ J" f0 b" X+ @
for k=1:length(x)& J# Z! l3 c$ V6 r
pause(1)" l" s/ K9 T. X# Q: s* e
plot([x(k) x(k)],[0 y(k)],'--','LineWidth',2,'Color',[0.5 0.2 0.6]) % 绘制各离散数据点与横轴的垂线, 得到各个小梯形
: T9 m1 c+ a/ u! w; V% e# Zend
+ [; E! g* @4 a% s1 o/ ]! ]# F, F- U; B( W
for k=1:length(x)-16 j7 U0 Y( m* W/ {
pause(1)
: r. u5 f* H) C9 [# b patch([x(k) x(k) x(k+1) x(k+1)],[0 y(k) y(k+1) 0],[1 0.8 0.1]) % 依次给每一个小梯形面积着色, 表示各个小梯形面积的求和过程: n8 Z+ p' D. Z0 ?, ]
end4 z. R3 t5 E7 s# c
" M2 M5 F9 n; C" U% T |
|