我是靠谱客的博主 美丽金针菇,最近开发中收集的这篇文章主要介绍matlab梯形法数值积分,数值积分(梯形法),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

&nbsp

&nbsp

&nbsp

&nbsp

&nbsp

&nbsp

&nbsp

预备知识 Matlab 的函数,定积分

本词条介绍一种简单的梯形算法计算数值积分.如图 1 若要用梯形法计算定积分 $int_a^b f(x) ,mathrm{d}{x} $,则可将区间 $[a, b]$ 划分为 $N$ 个长度为 $h = (b-a)/N$ 的等长的小区间,区间端点从 $a$ 到 $b$ 分别为 $x_1 = a, x_2 = a + h, dots, x_{N+1} = b$.

numint_1.svg?v=d77e0fa2f5bdbc

图 1:梯形法数值积分

接下来将每个区间的被曲线围出的面积用梯形来计算,第 $i$ 个梯形面积为(两底和乘以高除以二)

$[f(x_{i+1}) + f(x_i)]h/2$.定积分约等于所有梯形面积

begin{equation}

int_a^b f(x) ,mathrm{d}{x} approx sum_i^N frac h2 [f(x_{i+1}) + f(x_i)]

= h left[frac12 f(x_1) + sum_{i = 2}^N f(x_i) + frac12 f(x_{N+1}) right]

end{equation}

显然,当 $N$ 取越大时,右边的求和就越接近定积分.

这里给出 Matlab 代码

代码 1:trapezoidInt.m

下面来看两个例子,由算法可知,当被积函数具有 $c_1 x + c_2$ 的形式时,函数曲线围成的面积可由梯形精确解算,所以即使 N 取很小也可以精确到 double 类型的精度(16 位左右).>> format long;

>> trapezoidInt(@(x)x, 0, 1, 4)

ans = 0.500000000000000

对其他一些函数,需要较大的 $N$ 才能获得较高的精度.我们已知 $sin x$ 在 $[0, pi]$ 内的积分等于 $2$,再看数值积分

>> trapezoidInt(@sin, 0, pi, 10)

ans = 1.983523537509455

>> trapezoidInt(@sin, 0, pi, 100)

ans = 1.999835503887444

>> trapezoidInt(@sin, 0, pi, 1000)

ans = 1.999998355065662

>> format short;

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

最后

以上就是美丽金针菇为你收集整理的matlab梯形法数值积分,数值积分(梯形法)的全部内容,希望文章能够帮你解决matlab梯形法数值积分,数值积分(梯形法)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部