1、勒让德函数求出结果为所有符合输入轨道本逗激征值的解,因此当l=1时或此解有两个。
2、阶乘函数为factorial
3、注意R算出为三阶张量,您要将其换算成二维矩阵
别问我为什么挖坟。。。
首先先禅唤看五点高斯-勒让德公式,其求积系数和求积节点可以在数值积分的教材上查到,matlab代码如下:function I=Gauss_Legendre_5(fun,a,b)
w=[0.2369269,0.2369269,0.4786287,0.4786287,0.5688889]
x1=[-0.9061798,0.9061798,-0.5384693,0.5384693,0]
x=(b+a)/2+(b-a)/2.x1
y=eval(fun)
I=(b-a)/2sum(w.*y)
下面是高斯三点公式求积,橘汪代码如下:贺伍凯
program main
use, intrinsic :: iso_fortran_env, only: dp =>real64
implicit nonereal(dp) :: x(3), w(3)
call gauss_integ3(x, w)
print *, "x^2在[-1, 1]区间的积分:", sum(x**2*w)
call gauss_integ3(x, w, [real(dp) :: 0, 1])
print *, "x 在[ 0, 1]区间的积分:", sum(x*w)
call gauss_integ3(x, w, [real(dp) :: 0, 1])
print *, "sin(x)/x在[0, 1]区间的积分:", sum(sin(x)/x*w)
contains
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)