发布网友 发布时间:2022-04-25 16:21
共1个回答
热心网友 时间:2023-10-16 23:30
误差是多少啊?
程序如下:
function [I,step] = CombineTraprl(f,a,b,eps)
% 复合梯形公式法求积分
% f 被积函数
% a,b 积分上下限
% eps 精度
% I 积分结果
% step 积分的子区间数
if(nargin ==3)
eps=1.0e-4;
end
n=1;
h=(b-a)/2;
I1=0;
I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h;
while abs(I2-I1)>eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1));
end
end
I=I2;
step=n;
自己调用就行了追问定积分1/x=2ln2,积分区间为2 8 问计算ln2时,若采用复合梯形公式,问应取多少节点才能使其误差绝对值不超过0.000005 我想问的是怎么算 不是编程 麻烦在看下 谢谢了啊
追答不编程怎么算啊
那样太麻烦了吧
[I,step] = CombineTraprl('1/x',2,8,0.000005 )
I =
1.3865
step =
67