12.1什么是chebfun2?

Chebfun2是Chebfun的一部分,它处理矩形$[a,b]\times[c,d]$上定义的两个变量的函数。就像1D中的Chebfun一样,它是一个非常方便的工具,用于各种计算,包括代数操作、优化、积分和寻根。它还扩展到两个变量的向量值函数,因此可以执行向量演算。

例如,这里有一个测试函数,多年来一直是MATLAB的一部分。MATLAB通过$49乘以49$矩阵表示“峰值”函数:

峰值
z=3*(1-x)^2.*经验(-(x.^2)-(y+1)^2) ... -10*(x/5-x.^3-y.^5).*导出(-x.^2-y.^2)。。。-1/3*经验(-(x+1))^2年^2)

chebfun2库中的chebfun2中也提供了相同的功能:

f=厨房2(“峰值”);图(f),轴紧,标题(‘Chebfun2 Peaks’)

在Chebfun中,我们可以用函数做各种高精度的事情,比如评估函数

f(0.5,0.5)
安=0.375375578848315

或者计算它们的最大值,

最大值2(f)
安=8.106213589442337

chebfun2是一个MATLAB对象,它是chebfun的2D模拟。chebfun2对象的语法与MATLAB中矩阵的语法类似,并且Chebfun 2对象有许多MATLAB命令过载。例如,迹线(A)返回矩阵$a$和迹线(f)当$f$是chebfun2时,返回$f(x,x)$的积分。

Chebfun2基于Chebfun的单变量表示和算法。算法细节见[Townsend&Trefethen 2013b],数学基础见[Town send&TRefethen2014]。有关更多信息,请参阅第12.8节。

12.2什么是chebfun2v?

Chebfun2可以表示标量值函数,比如$\exp(x+y)$,以及向量值函数,例如$[\exp[x+y];\cos(x-y)]$。向量值函数被称为chebfun2v,而chebfun2v对象对于向量微积分的计算很有用。有关chebfun2v对象和向量演算的信息,请参阅本指南第15章和第16章。

12.3构建chebfun2对象

可以通过向chebfun2构造函数提供双变量函数句柄或字符串来构造chebfun2.默认的矩形域是$[-1,1]\times[-1,1]$。(第6节给出了一个显示如何指定不同域的示例。)例如,这里我们构造并绘制了一个chebfun2,表示$[-1,1]\times[-1,1]$上的$\cos(2\pi xy)$。

f=chebfun2(@(x,y)cos(2*pi*x.*y));

我们也可以先为变量$x$和$y$构造chebfun2对象,然后根据这些对象计算$f$:

x=chebfun2(@(x,y)x);y=chebfun2(@(x,y)y);f=cos(2*pi*x.*y);

还有一条捷径cheb.xy公司构造这些对象x个,所以我们也可以执行

cheb.xy公司f=cos(2*pi*x.*y);

下面是$f$的图:

图(f),zlim([-2 2])

随着情节,也有命令轮廓冲浪用于显示chebfun2。下面是$f$的等高线图:

轮廓(f),轴方形

第8.8节讨论了一种求代表$f$的近似值秩的方法,如下所示:

长度(f)
安=11

或者,通过显示chebfun2对象可以提供更多信息:

(f)
(f)=chebfun2对象域排名角点值[1,1]x[-1,1]11[1 1 1]垂直比例=1

角值是按$(-1,-1)$、$(-1,1)$、$(1,1)$、$(1,-1)$和$(1,1)$顺序排列的chebfun2的值。垂直标尺用于操作,以接近相对于该数字的机器精度。

12.4基本操作

一旦我们有了chebfun2,我们就可以计算诸如其定二重积分之类的量:

总和2(f)
安=0.902823333580281

这很好地匹配了微积分得到的精确答案,即$(2/\pi)\hbox{Si}(2\pi)$:

精确=0.9028233335802806267957003779
精确=0.902823333580281

我们还可以在点$(x,y)$或沿直线计算chebfun2。当沿着一行进行求值时,会返回chebfun,因为答案是一个变量的函数。

评估点:

x=2*rand-1;y=2*rand-1;f(x,y)
安=-0.997677434419261

沿直线$y=\pi/6$进行评估:

f(:,pi/6)
安=chebfun行(1个平滑块)间隔长度端点值[      -1,       1]       23     -0.99    -0.99 垂直比例=1

还有很多其他可能感兴趣的问题。例如,$f(x,y)-.95$的零轮廓是什么?

r=根(f-.95);绘图(r),轴([-1 1-1 1])轴方形,标题(“f-.95的零轮廓”)

什么是偏导数$\偏f/\偏y$?

fy=差异(f,1,1);绘图(fy)

的语法差异命令可能会导致混淆,因为我们遵循MATLAB中的矩阵语法。Chebfun2还提供了更容易记住的diffx(f,k)差异(f,k),分别针对第一和第二个变量区分$f(x,y)$$k$次。

$f$对$[-1,1]\乘以[-1,1]$的平均值是多少?

平均2(f)
安=0.225705833395070

12.5 Chebfun2方法

有100多种方法可以应用于chebfun2对象。对于完整列表类型:

chebfun2方法
chebfun2类的方法:腹肌horzcat颤动3biharm imag秩双调和积分cdr积分2实数chebcoeffs2是PeriodicTech限制chebfun2是空根chebpolyplot等于根0chebpolyplot2以色列根2月19日chebpolyval2是零根清理乔尔·雅各宾根系数2 lap rootsnew复拉普拉斯样本组成ldivide样本测试联合长度简化构造函数日志sin轮廓lu singleSignTest轮廓最大sinhcos max2大小cosh平均sph2cartctranspose表示2个球体cumprod中位数sqrt积云网挤压cumsum2最小标准值dblquad min2标准2诊断最小值和最大值2子参考差异最小和最大2和diffx减去总和2diffy mldivide摘要磁盘判别mrdivide surfdisp mtimes曲面显示规范表面ea域检查规范化数据透视svddomainarea normalizeRowsAndCols棕褐色eig枢轴图和椭球枢轴tanh结束绘图时间exp plotcoeffs跟踪解释plotcoeffs2转置发烧加铝费瓦尔姆pol2cart uplusflipdim poldec vertcat公司触发器电位伏flipud功率vscale弗雷德·普德瀑布获取qr梯度四边形梯度颤动静态方法:chebpts2 paduaVals2coefs系数2 vals poisson外部产品价值2

这些命令大多已从MATLAB中过载。有关Chebfun2命令的更多信息,请访问帮助:

帮助chebfun2/max2
MAX2 CHEBFUN2的全局最大值。Y=MAX2(F)返回其域上F的全局最大值。[Y,X]=MAX2(F)返回Y及其位置X的全局最大值。如果安装了OPTIMIZATION TOOLBOX,此命令可能会更快。另请参见MIN2、MINANDMAX2。

12.6 chebfun2对象的组成

通过使用以下操作组合现有chebfun2对象,可以从中构造新的chebfun 2对象+,-,.*、和^例如,

x=chebfun2(@(x,y)x,[-44-22]);y=chebfun2(@(x,y)y,[-44-22]);f=1./(2+cos(.25+x.^2.*y+y^2));轮廓(f),轴相等

12.7分析功能

分析函数$f(z)$可以被认为是两个实变量的复值函数,$f(x,y)=f(x+iy)$。如果Chebfun2构造函数被赋予一个带有一个参数的匿名函数,它会假定该参数是一个复杂变量。例如,

f=chebfun2(@(z)sin(z));f(1+1i),sin(1+1 i)
安=1.298457581415977+0.634963914784736i安=1.298457581415977+0.634963914784736i

这些功能可以通过使用称为相图的技术进行可视化。给定复数$z=re^{i \ theta}$,相位$e ^{i \ theta}$可以用颜色表示。我们遵循Wegert的颜色建议【Wegert 2012年】,相位$i$使用红色,相位沿单位圆顺时针移动时使用黄色、绿色、蓝色和紫色。例如,

f=chebfun2(@(z)sin(z)-sinh(z),2*pi*[-1 1-11]);绘图(f)

分析函数的许多性质可以通过这些类型的图来直观化,例如零点的位置及其重数。你能从这个图中计算出$z=0$处根的重数吗?再举一个例子,试试厨房2(“航空综合体”).

由于Chebfun2仅代表平滑函数,因此需要一个技巧来为带极点的函数绘制这样的图片【Trefethen 2013年】。对于具有分支点或基本奇点的函数,目前无法在Chebfun2中绘制相位图。

12.8 Chebfun2低阶近似

Chebfun2利用了一个观察结果,即两个变量的许多函数可以用低秩近似很好地逼近。排名$1$函数,也称为可分离的的形式为$u(y)v(x)$,秩$k$函数是可以写为$k$rank$1$函数之和的函数。光滑函数往往被低阶函数很好地逼近。Chebfun2通过一种算法自动确定低秩函数近似值,该算法可视为高斯消去的迭代应用,具有完整的旋转[Townsend&Trefethen 2013]。基本功能表示与Carvajal、Chapman和Geddes【Carvajal、Chapmin和Geddess 2008】以及其他人的工作有关,包括Bebendorf【Bebendor 2008】、Hackbusch、Khoromskij、Oseledets和Tyrtyshnikov。关于低级别陈述的更多方面,请参见【Trefethen 2017年】和【Beckermann和Townsend 2019年】。

以下是改编自【Townsend&Trefethen 2013】和厨师厨房2(“吸烟”)函数$$f(x,y)=\exp(-40(x^2-xy+2y^2-1/2)^2)$$在单位正方形中具有椭圆环的形状,Chebfun2通过合理的高阶近似表示它:

ff=@(x,y)exp(-40*(x.^2-x.*y+2*y.2-1/2)^2);f=chebfun2(ff);水平=0.1:0.1:0.9;轮廓(f,水平),轴([-1 1-1 1]),轴方形标题(['rank'int2str(长度(f))],'fontsize',12)

为了说明低秩近似的性质,而不是让Chebfun2自适应地确定秩,我们可以强制它取秩$1,2,\点,9$。以下是在$0.2,0.4,0.6,0.8$高度处用黑色液位曲线绘制的结果:

水平=0.2:0.2:0.8;clf公司对于k=1:9轴(“位置”,[0.33+.33*mod(k-1,3).67-.3*floor((k-1)/3).28.28])轮廓(chebfun2(ff,k),标高,‘k’)xlim([-1 1]),轴相等,轴关闭结束

对于该功能,“绘图精度”大约达到16级;剩下的术语则需要从2-3位数字变为15位。

12.9参考文献

[Bebendorf2008]M.Bebendorf,层次矩阵:有效解决椭圆边值问题的方法,施普林格出版社,2008年。

[Beckermann&Townsend 2019]“位移结构矩阵奇异值的界”,SIAM修订版。61 (2019), 319--344.

【Carvajal,Chapman,&Geddes,2008年】O.A.Carvajal,F.W.Chapman和K.O.Geddes《通过张量积级数实现多维混合符号-数字集成》,ISSAC’05会议记录M.Kauers主编,ACM出版社,2005年,84-91。

【Townsend&Trefethen 2013年】A.Townsen和L.N.Trefethern,“高斯消去作为迭代算法”,SIAM新闻2013年3月。

[Townsend&Trefethen 2013b]A.Townsen和L.N.Trefethern,“Chebfun到二维的延伸”,SIAM科学计算杂志,35(2013),C495-C518。

[Townsend&Trefethen 2014]A.Townsen和L.N.Trefethern,“矩阵分解的连续类似物”,英国皇家学会会刊A471 (2014) 20140585.

【Trefethen 2013】L.N.Trefethern,“带极点功能的相位图”,http://www.chebfun.org/examples/complex/PortraitsWithPoles.html.

[Trefethen 2017]L.N.Trefetchen,“超立方体中的体积、近似和各向同性”,SIAM修订版。59 (2017), 469--491.

【Wegert 2012】E.Wegert,视觉复杂函数:相图简介,Birkhauser/Springer,2012年。