标签:dash highlight cti trap else 公式 个数 pre sub
这段代码实现的是最一般的数值积分法——梯形求积法,积分值的准确依赖于所取精度大小
1.代码
%%复合梯形求积公式 %%Y是数值(attribute=0)或具体表达式(attribute=1),interval是求积区间,n是精度(如果是数值,则为数值长度-1) function CTQF = Compound_trapezoid_quadrature_formula(Y,interval,n,attribute) a = interval(1);b = interval(2); h = (b-a)/n; if attribute == 0 sum = 0; for i=1:1:n-1 sum=sum+Y(i+1); end Tn = (Y(1)+Y(n+1)+2*sum)*h/2; CTQF = vpa(Tn,8); elseif attribute == 1 syms x; X(1) = a; X(n+1) = b; for i=1:1:n-1 X(i+1)=a+i*h; end sum=0; for i=1:1:n-1 sum=sum+subs(Y,x,X(i+1)); end Tn=(subs(Y,x,a)+subs(Y,x,b)+2*sum)*h/2; CTQF = vpa(Tn,8); end
2.例子
syms x; Y = exp(x)*sin(x)+log(x+1); interval=[0 pi]; attribute = 1; n = 1000; Compound_trapezoid_quadrature_formula(Y,interval,n,attribute) vpa(int(Y,x,interval),8)
3.结果
ans = 14.814269 ans = 14.81429
我们选取的精度为1000,即区间分割个数,结果精确到1e-4,而随着所需要精确程度的变大,运算时间将大大增加
标签:dash highlight cti trap else 公式 个数 pre sub
原文地址:https://www.cnblogs.com/guliangt/p/12243022.html