function I = GaussInterg(fun, type, a, b, tol)
% GaussInterg 用Gauss型求积公式求积分,具体形式由使用者选取
%
% Synopsis: I = GaussInterg(fun, type, a, b)
% I = GaussInterg(fun, type, a, b, tol)
%
% Input: fun = (string) 被积函数的函数名
% type = (string) 具体Gauss求积公式的形式
% a,b = 积分上下限,Laguerre只计算0到inf,Hermite只计算-inf到inf,所以a,b对这两种形式无效
% tol = (optional) 误差容忍限度,默认为5e-5
%
% Output: I = 通过Gauss型求积公式求积分的近似值
if nargin < 5
tol = 5e-5;
end
n = 7; %默认从7节点多项式开始计算
IOld = 1; %初始化IOld为1
err = 1; %初始化误差为1
while err >= tol
switch type
case 'Legendre' %计算无奇点被积函数在-1到1的积分
I = GaussLegendreInterg(fun, a, b, n);
case 'Chebyshev' %计算被积函数形如 f(x)/sqrt(1-x^2)在-1到1的积分
I = GaussChebyshevInterg(fun, a, b, n);
case 'Laguerre' %计算被积函数形如 exp(-x)*f(x)的在0到inf的积分
I = GaussLaguerreInterg(fun, n);
case 'Hermite' %计算被积函数形如 exp(-x^2)*f(x)的在-inf到inf的积分
I = GaussHermiteInterg(fun, n);
otherwise
error('No such type!');
end
err = abs(I - IOld); %计算误差
IOld = I; %把IOld赋值为I进行下次迭代
n = n+1; %多项式节点递增
end
没有合适的资源?快使用搜索试试~ 我知道了~
Gauss-Legendre和Gauss-Chebyshev求积matlab程序.rar
共6个文件
m:6个
1星 需积分: 47 41 下载量 71 浏览量
2019-07-22
17:20:51
上传
评论 1
收藏 4KB RAR 举报
温馨提示
已知积分立,所以我们可以通过对该被积函数的数值积分来计算的近似值。 (1)分别利用三点、五点和七点Gauss-Legendre和Gauss-Chebyshev求积公式来计算的近似值(首先求出Gauss点); (2)将积分区间分为四等分,分别用复合三点、五点和七点Gauss-Legendre和Gauss-Chebyshev求积公式来计算的近似值(每个子区间分别利用Gauss-Legendre和Gauss-Chebyshev求积公式); (3)比较及分析计算结果。
资源推荐
资源详情
资源评论
收起资源包目录
matlab程序.rar (6个子文件)
ChebyshevIter.m 1KB
GaussHermiteInterg.m 1004B
GaussInterg.m 1KB
GaussLaguerreInterg.m 974B
GaussChebyshevInterg.m 983B
GaussLegendreInterg.m 1KB
共 6 条
- 1
资源评论
- qq_528082082022-05-21都没法运行
HappyEndingIsMine
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功