MATLAB数值分析:高斯勒让德积分求解

Matlab 数值分析 求高斯勒让德积分

function [ result ] = gslrdjf(f, a,b,n ,GaussP,GaussA)

%-----------------------------------------------------------------------------------

%高斯勒让德积分(gslrdjf.m)

%输入被积分函数式f,积分区域a到b,高斯点GaussP,高斯系数GaussA

%直接输出积分结果

%提醒:超精确的高斯点和高斯系数可由LZ.m子程序单独计算

%提醒:精度要求不高时,可以自己手动输入。GaussP,GaussA均为数组

%使用范例:

%   0.先输入必要参数:

%   a=0;%函数求积分的区间下限

%   b=pi;

%   f=@(x)exp(x)*cos(x);

%   n=5;

%   [GaussP,GaussA]=LZ(n); 

%   1.复化高斯勒让德积分方法,结果可以为精确解

%   例如:

%   h=(b-a)/1000; %积分区间划分为1000份,也可以弄成一万份,一亿份。

%   A=0;                %预先开一个空集

%   for i=1:1000    %循环累加这1000份        

%   A=A+gslrdjf(f, a+(i-1)*h,a+i*h ,5,GaussP, GaussA);

%   end

%   A                      %输出精确解结果

%   2.高斯勒让德积分方法,结果虽然不可能是精确解,但是精度也不会差。

%   例如:

%   A=gslrdjf(f,a,b,n,GaussP, GaussA) 

%---------------------------------------------------------------------------------------

p=GaussP;  %获取高斯点数组Xk

q=GaussA;  %获取高斯点对应系数Ak

A=(b-a)/2;   %积分区间转化为[-1,1]

B=(b+a)/2;

result=0;     %预先开一个空集

for i=1:n+1    %循环实现累加

result=result+q(i)*f(A*p(i)+B);  %高斯求积公式 

end

result=A*result; %补上积分区间转化后应有的系数

end

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空