跳到内容

pjabardo/Jacobi.jl

存储库文件导航

雅各比

生成状态

实现雅可比多项式和高斯的库正交相关运算。

笔记本

在notebooks目录中有两个笔记本,如下所示,显示了库的基本用法。

雅可比多项式

雅可比多项式$P_n^{a,b}(x)$在函数中实现雅可比(x,n,a,b)哪里x个是要计算次数多项式n个带砝码b条.

要计算雅可比多项式的导数,请使用函数djacobi(x,n,a,b).

在计算高斯量子化的权重时,有必要确定雅可比多项式的零点。功能雅可比零(m,a,b)计算雅可比次多项式的零点带砝码b条。也存在是非分配函数雅各比零!(m、a、b、x).

勒让德多项式是a和b为零时的特例。功能勒让德(x,n)实现这个更简单的递归关系。

还有切比雪夫多项式及其导数和零点:

  • 切比雪夫(x,n)第一类切比雪夫多项式$T_n(x)$.
  • 切比雪夫2(x,n)第二类切比雪夫多项式$U_n(x)$.
  • 切比雪夫零(n)切比雪夫2_零(n)切比雪夫多项式的根
  • 切比雪夫零!(n,x)切比雪夫2归零!(n,x)切比雪夫多项式的根

高斯积分

高斯求积通常用于数值计算积分。要评估使用高斯求积的积分,一组节点及其相应的权重必须为人所知。在最基本的算法中,用户不能指定任何节点。它是通常方便地包括域的一端或两端,这提供了不同的求积规则。

实施的不同求积规则如下:

  • 高斯-雅可比,其中没有指定节点(扩展).
  • Gauss-Lobatto-Jacobi,其中包括域的两端(扩展glj公司).
  • Gauss-Radau-Jacobi,其中包含节点-1(域的最左端)(延长格拉姆).
  • Gauss-Radau-Jacobi,其中包含节点+1(域的最右端)(延长grjp公司).

这些公式实现了$$\整数{-1}^1(1-x)^a(1+x)^bf(x)dx$$

功能zgj公司zglj公司zgrjm公司zgrjp公司计算求积的节点规则。使用函数计算相应的权重wgj公司wglj公司wgrjm公司wgrjp公司当然,在这两种情况下,重量b条必须指定。

作为一个例子

fun(x)=sin(x)z=zglj(5,0.0,0.0)w=wglj(z,0.0,0.0)f=乐趣(z)Ix=总和(w.*f)

哪里Ix公司是积分的估计。

高斯求积很有用,因为它允许多项式的精确积分使用少量节点(精确顺序取决于上面引用的求积规则)。

但还有另一个优点:求积规则的节点对于使用高阶多项式的插值函数,通常用于高阶有限元程序,如hp-FEM或谱元法。在这些应用程序中,需要计算导数和插值数据不同的网格。

功能dgj公司dglj公司dgrjm公司drjp(数字参考文件)将导数矩阵计算为如下例所示:

fun(x)=sin(x)z=zglj(5,0.0,0.0)D=dglj(z,0.0,0.0)f=乐趣(z)df=D*f

哪里数据流是正交节点处函数导数的估计。

另一个重要的操作是插值。如果某个函数在某些节点已知,在这种情况下,正交节点,我们如何准确地插值函数其他节点?由于我们知道节点,拉格朗日插值是最好的方法。功能拉格朗日实现了朗格朗日语的标准定义插值。下面的示例绘制了5个节点的高斯-洛巴托-雅可比求积点。

使用PyPlotQ=5z=zglj(Q)nx=201x=-1.0:0.01:1.0y=零(nx,Q)对于k=1:Q,i=1:nxy[i,k]=拉格朗日(k,x[i],z)结束对于k=1:Q绘图(x,y[:,k])结束

如果要经常重复上述操作,请预先计算拉格朗日函数插值器很有用,可以计算插值矩阵。这个以下示例说明了插值矩阵的使用,该插值矩阵可以用函数计算插入(_M).

使用PyPlotQ=5z=zglj(Q)nx=201x=-1.0:0.01:1.0ye=sin(pi*z)ye2=sin(pi*x)Im=interp_mat(x,z)y=我是绘图(z,ye,“o”)绘图(x,ye2,“r-”)图(x,y,“b-”)

增加插值函数的求积点数(蓝线)变得更加准确。

工具书类

此包是使用以下两个引用实现的。

  • CFD的光谱/hp元素方法,第2版,Karniadakis和Sherwin,2005年。
  • NIST数学函数手册(http://dlmf.nist.gov/18)

关于

雅可比多项式和高斯求积相关函数

资源

许可证

星星

观察者

叉子

包装

未发布包

语言文字