首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >辛普森1/3法则

辛普森1/3法则
EN

Stack Overflow用户
提问于 2018-03-10 07:24:32
回答 1查看 698关注 0票数 0

该问题的解为辛普森1/3法则的1.732400451459101。相反,程序给我的解决方案是1.73239801

有人能帮我吗?提前谢谢。

代码语言:javascript
复制
clc
clear
close all

f = @(x) sin(x);
a = 0.1; 
g = a;
b = 2.4;
k = 19;   

n = 2*k;
S = 0;
h = (b-a)/n;

for i=1:k
    S=S+(h/3)*(f(a)+4*f(a+h)+f(a+2*h));
    a=a+2*h;

end

fprintf('La integral se aproxima a: %0.8f \n',S)

syms x

y = sin(x);

InT = int(y,g,b);

InT = double(InT)
EN

回答 1

Stack Overflow用户

发布于 2018-03-10 21:56:23

Composite Simpson's rule近似积分的误差为:

这是关于f(x)=sin(x)情况下的1.7149e-07,这意味着绝对误差界是9.8990e-08,这是我喜欢的。

此外,以下是上述代码的替代方案:

代码语言:javascript
复制
f = @(x) sin(x);
[a,b,g,k]=deal(0.1,2.4,0.1,19);
[S,n,h]=deal(0,2*k,(b-a)/(2*k));
for i=1:k
    S=S+(h/3)*(f(g)+4*f(g+h)+f(g+2*h));
    g=g+2*h;
end

或者,我们可以直接调用:

代码语言:javascript
复制
f = @(x) sin(x);
[a,b,k]=deal(0.1,2.4,19);
Int = a:(b-a)/(2*k):b;
S=(b-a)/(6*k) * ( f(Int(1)) + 4*sum(f(Int(2:2:end-1))) ...
                + 2*sum(f(Int(3:2:end-2))) + f(Int(end)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49203648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档