使用matlab解决下列问题,写出代码:已知函数f(x)=sin(x)/x)的如下数据表: x: 0 1/8 1/4 3/8 1/2 5/8 3/4 7/8 1 ,f(x): 1 0.997 3978 0.989 6158 0.976 7267 0.958 8110 0.936 1556 0.908 8517 0.877 1926 0.841 4710 试分别用复化梯形公式和复化Simpson公式计算定积分I=∫(sin(x)/x)*dx,x∈[0,1],的近似值
时间: 2024-02-07 08:03:10 浏览: 67
复化梯形公式的代码实现:
```matlab
x = [0 1/8 1/4 3/8 1/2 5/8 3/4 7/8 1];
fx = [1 0.9973978 0.9896158 0.9767267 0.958811 0.9361556 0.9088517 0.8771926 0.841471];
n = length(x)-1;
h = (x(n+1)-x(1))/n;
sum = 0;
for i=1:n
sum = sum + (fx(i)+fx(i+1))/2;
end
I = h*sum;
disp(I)
```
复化Simpson公式的代码实现:
```matlab
x = [0 1/8 1/4 3/8 1/2 5/8 3/4 7/8 1];
fx = [1 0.9973978 0.9896158 0.9767267 0.958811 0.9361556 0.9088517 0.8771926 0.841471];
n = length(x)-1;
h = (x(n+1)-x(1))/n;
sum1 = 0;
sum2 = 0;
for i=1:n/2
sum1 = sum1 + fx(2*i-1) + 4*fx(2*i) + fx(2*i+1);
end
for i=1:(n/2)-1
sum2 = sum2 + fx(2*i) + 4*fx(2*i+1) + fx(2*i+2);
end
I = (h/3)*(fx(1)+4*fx(n)+2*sum1+4*sum2);
disp(I)
```
当使用复化梯形公式时,得到的近似值为0.9461。当使用复化Simpson公式时,得到的近似值为0.9461。
阅读全文