gauss.m
来自「数值分析---部分算法 希望对需要的人有一点点用!」· M 代码 · 共 20 行
M
20 行
% -------------------------------------------------------------------------
% --------------------------复化高斯积分算法--------------------------------
% 函数 [Gauss2,Gauss3]=Gauss(func,a,b)
% 功能 通过两点&三点的复化高斯积分算法,求出某个积分的结果
% 输入参数: a,b 积分区间(a,b)
% 输出参数:Gauss2 两点的复化高斯积分结果
% Gauss3 三点的复化高斯积分结果
% >> [Gauss2,Gauss3]=Gauss('sin',0,pi)
% -------------------------------------------------------------------------
function [Gauss2,Gauss3]=Gauss(func,a,b)
n=1000; % n 把积分区间(a,b)化为小区的个数,用于复化, 则一个小区间的长度为(b-a)/n,默认为1000
Gauss2=0;
t=(b-a)/n;
for i=1:n
Gauss2=Gauss2+0.5*t*(feval(func,-0.5*t/sqrt(3)+t*(i-0.5))+feval(func,0.5*t/sqrt(3)+t*(i-0.5)));
end
Gauss3=0;
for i=1:n
Gauss3=Gauss3+0.5*t*(5/9*feval(func,-sqrt(15)*0.5*t/5+t*(i-0.5))+8/9*feval(func,t*(i-0.5))+5/9*feval(func,sqrt(15)*0.5*t/5+t*(i-0.5)));
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?