⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intsimpson.m

📁 关于特殊函数计算的的源代码
💻 M
字号:
function [q,step] = IntSimpson(f,a,b,type,eps)
%被积函数:f    
%积分下限:a 
%积分上限:b  
%辛普森公式的类型:type
%eps  精度
%积分结果:q    
%积分的子区间数:step

if(type==3 && nargin==4)
    disp('缺少参数!');
end

q=0;

switch type
    case 1,                %辛普森公式
        q=((b-a)/6)*(subs(sym(f),findsym(sym(f)),a)+...
            4*subs(sym(f),findsym(sym(f)),(a+b)/2)+...
            subs(sym(f),findsym(sym(f)),b));
        step=1;
       
    case 2,                %辛普森3/8公式
        q=((b-a)/8)*(subs(sym(f),findsym(sym(f)),a)+...
            3*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+ ...
          3*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+subs(sym(f),findsym(sym(f)),b)); 
        step=1;
        
    case 3,               %复合辛普森公式
        n=2;
        h=(b-a)/2;
        q1=0;
        q2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h;
        while abs(q2-q1)>eps
            n=n+1;
            h=(b-a)/n;
            q1=q2;
            q2=0;
            for i=0:n-1
                x=a+h*i;
                x1=x+h;
                q2=q2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+...
                    4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+...
                    subs(sym(f),findsym(sym(f)),x1));
            end
        end
        q=q2;
        step=n;
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -