matlab 中 使用勒让德函数调用命令画球谐函数不正确

matlab 中 使用勒让德函数调用命令画球谐函数不正确,第1张

程序有以衫指迅下错误:

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12462247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存