首页 > 学院 > 开发设计 > 正文

matlab中几种求积分的方法

2019-11-10 18:08:11
字体:
来源:转载
供稿:网友

matlab中几种求积分的方法举例图形Midpoint RuleTrapezoid Rule13 Simpsons利用integral结果显示

matlab中几种求积分的方法

最近看了几天matlab的基础知识,总结一下求简单积分的方法

举例图形

x = linspace(0, 2*pi, 100);y = sin(x) + cos(x);plot(x, y);line([0, 2*pi], [0, 0]);set(gca, 'XLim', [0, 2*pi]);set(gca, 'XTick', 0:pi/2:2*pi);set(gca, 'FontName', 'symbol');set(gca, 'XTickLabel', {'0', 'p/2', 'p', '3p/2', '2p'});

这里写图片描述

Midpoint Rule

fi = f((x1 + x2) / 2) 取两点之间中点的平均值作为该区域的高 这里写图片描述

h = pi/100;x = 0:h:2*pi;mid = (x(1:end-1) + x(2:end)) / 2;y = sin(x) + cos(x);s1 = h * sum(y)

Trapezoid Rule

fi = (f(x1) + f(x2)) / 2; 取两点函数值得平均值作为该区域的高 这里写图片描述

h = pi/100;x = 0:h:2*pi;y = sin(x) + cos(x);yy = (y(1:end-1) + y(2:end))/2;s2 = h * sum(yy)

除此以外,matlab中的trapz函数可用来调用求其值,如下

h = pi/100;x = 0:h:2*pi;y = sin(x) + cos(x);s3 = h * trapz(y)

1/3 Simpson’s

fi = 3/h*(f0 + 4f1 + f2),利用公式求解即可 这里写图片描述

h = pi/100;x = 0:h:2*pi;y = sin(x) + cos(x);s4 = h * (y(1) + y(end) + 2*sum(y(3:2:end-2)) + 4*sum(y(2:2:end-1)))

利用integral

f = @(x) sin(x) + cos(x);s5 = integral(f, 0, 2*pi)

结果显示

对比一下各种方式求出的积分值 这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表