newtoncotes.m
来自「包含matlab用到的所有数学计算」· M 代码 · 共 28 行
M
28 行
function I = NewtonCotes(f,a,b,type)
%type = 1 科茨公式
%type = 2 牛顿-科茨六点公式
%type = 3 牛顿-科茨七点公式
I=0;
switch type
case 1,
I=((b-a)/90)*(7*subs(sym(f),findsym(sym(f)),a)+...
32*subs(sym(f),findsym(sym(f)),(3*a+b)/4)+...
12*subs(sym(f),findsym(sym(f)),(a+b)/2)+...
32*subs(sym(f),findsym(sym(f)),(a+3*b)/4)+7*subs(sym(f),findsym(sym(f)),b));
case 2,
I=((b-a)/288)*(19*subs(sym(f),findsym(sym(f)),a)+...
75*subs(sym(f),findsym(sym(f)),(4*a+b)/5)+...
50*subs(sym(f),findsym(sym(f)),(3*a+2*b)/5)+...
50*subs(sym(f),findsym(sym(f)),(2*a+3*b)/5)+...
75*subs(sym(f),findsym(sym(f)),(a+4*b)/5)+19*subs(sym(f),findsym(sym(f)),b));
case 3,
I=((b-a)/840)*(41*subs(sym(f),findsym(sym(f)),a)+...
216*subs(sym(f),findsym(sym(f)),(5*a+b)/6)+...
27*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+...
272*subs(sym(f),findsym(sym(f)),(a+b)/2)+...
27*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+...
216*subs(sym(f),findsym(sym(f)),(a+5*b)/6)+41*subs(sym(f),findsym(sym(f)),b));
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?