Gauss-Hermite公式matlab实现
时间: 2023-08-23 19:08:20 浏览: 468
下面是一个简单的 Matlab 实现 Gauss-Hermite 公式的代码:
```matlab
function [x,w] = GaussHermite(n)
% GAUSSHERMITE computes the roots and weights of the Hermite-Gauss
% quadrature formula.
% Usage:
% [x,w] = GaussHermite(n)
% where:
% n : number of quadrature points
% x : array containing the quadrature nodes
% w : array containing the quadrature weights
% Compute the roots of the Hermite polynomial of order n
if n == 1
x = 0;
else
x = sort(roots(hermite(n)));
end
% Compute the weights
w = zeros(size(x));
for i = 1:length(x)
w(i) = gamma(n+1/2)/(n*factorial(n-1)*sqrt(2*pi))*hermite(n-1,x(i))^2;
end
```
这个函数输入一个整数 n,计算 Hermite-Gauss 积分公式的 n 个节点和权重,返回它们在 x 和 w 数组中的值。这个函数使用 `roots` 函数计算 Hermite 多项式的根,并使用 Hermite 多项式的正交性质计算权重。
阅读全文