scieee Science in your language
[en] (orig)

A negative result for hearing the shape of a triangle

Abstract

The project will consist of a mathematical research finding its place between the branches of Partial Differential Equations and Geometry, in particular dealing with inverse spectral problems of the Laplace operator. This class of problems tries to derive properties of a domain from the sequence of eigenvalues of the Laplace operator, which can be informally stated with the phrase “hearing the shape of a drum” coined by Mark Kac. These problems are easy to state but generally much harder to solve, and they constitute an area with many open problems and a lot of research efforts going on and advancing rapidly. Many of these problems are high-risk/high-profile: a success would be a groundbreaking achievement. The intent of the project is to solve one of these open problems, more precisely about the eigenvalues of the Laplacian with Dirichlet boundary conditions on polygons. A starting direction for the project could be to prove that the three smallest eigenvalues of the Laplacian on triangles determine them completely, whereas the first, second and fourth do not in general, as numerical evidence suggests. This is a conjecture of Antunes and Freitas (2011), which would give a quan

Read accessible full text

A negative result for hearing the shape of a triangle

Author: Orriols Giménez, Gerard
Publisher: Universitat Politècnica de Catalunya
Year: 2019
Source: https://upcommons.upc.edu/bitstream/2117/168422/1/TFG_Gerard_Orriols.pdf
A nega i e esul o hea ing he
shape o a iangle
A compu e -assis ed p oo
Ge a d O iols Gim´enez
Join Bachelo ’s hesis o he deg ees o
Ma hema ics and Enginee ing Physics
Supe iso (P ince on Uni e si y): Ja ie G´omez-Se ano
Supe iso (UPC): Xa ie Cab ´e
Uni e si a Poli `ecnica de Ca alunya
May 2019
Abs ac
We p o e ha he e exis wo dis inc iangles o which he i s , second and ou h eigen-
alues o he Laplace ope a o wi h null Di ichle bounda y condi ions coincide. This sol es a
conjec u e aised by An unes and F ei as and sugges ed by hei in o mal nume ical e idence.
We use a no el echnique o a compu e -assis ed p oo abou he spec um o an ope a o ,
which combines a Fini e Elemen Me hod, o loca e oughly he i s eigen alues keeping ack
o hei posi ion in he spec um, and he Me hod o Fundamen al Solu ions, o ge a much
mo e p ecise bound o hese eigen alues. Due o he ime cons ain s, some o he compu a ions
s ill emain o be inished.
Keywo ds— compu e -assis ed p oo , Laplace eigen alues, spec al geome y, Fini e Elemen Me hod,
Me hod o Fundamen al Solu ions.
1
Con en s
1 In oduc ion 3
2 S uc u e o he p oo o Theo em 1 4
3 Sepa a ion o he i s ou eigen alues 6
4 Rigo ous eigen alue bounds o indi idual iangles 8
5 Ex ension o he bounds o a egion o iangles 10
6 Implemen a ion 13
6.1 Gi ens o a ions ........................................... 13
6.2 Uppe bound o he MFS bounda y no m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.3 Lowe bound o he MFS in e io no m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Acknowledgmen s 15
A Code o he sepa a ion o he smalles eigen alues 17
B Code o alida ing an in e al o iangles 23
C Code o op imizing he eigen alue 37
2
1 In oduc ion
In his hesis, we p esen a compu e -assis ed p oo o he ollowing o iginal heo em.
Theo em 1. The i s , second and ou h eigen alues o he Laplace ope a o on an Euclidean iangle wi h
null Di ichle bounda y condi ions a e no enough o de e mine i up o isome y.
This is a conjec u e p oposed by An unes and F ei as in [AF11], sugges ed by nume ical e idence, bu
a igo ous p oo was equi ed. The Di ichle eigen alues o he Laplace ope a o o a iangle Ω a e eal
numbe s λsuch ha he e is a nonze o smoo h unc ion ude ined on Ω and con inuous on Ω such ha
(−∆u=λu in Ω
u= 0 on ∂Ω.
I is a well known ac ha he se o such λ o ms an inc easing sequence 0 < λ1< λ2≤λ3≤ ··· whose
only limi poin is ∞, an ha he co esponding eigen unc ions uj o m an o hono mal basis o L2(Ω).
The eigen alues o a domain a e closely ela ed wi h i s geome ic p ope ies, cons i u ing an ac i e a ea o
esea ch called spec al geome y. A classical example o his ela ionship is Weyl’s law, which ela es he
asymp o ics o he eigen alues o he olume o he domain, and a la e esul by McKean and Singe s a es
ha he pe ime e is also de e mined by he eigen alues [MS67]. Mo e esul s o his kind can be ound in
[BG90] and [ dBS88]. O he esul s abou how he geome y o a domain de e mines i s spec um can be
ound in Hen o ’s book [Hen06].
The ques ion o he de e mina ion o a domain gi en he se o i s Laplace eigen alues was posed by
Ma k Kac in his amous pape “Can one hea he shape o a d um?” [Kac66]. Since hen, he answe has
been ound o be nega i e in gene al; in pa icula , o euclidean polygons, he i s example o a pai o
non-isome ic polygons wi h he same spec um is due o Go don, Webb and Wolpe [GWW92]. Howe e ,
he e a e posi i e esul s when we es ic he de e mina ion o a class o domains, he mos success ul
o which was ound by Zeldi ch [Zel09], who p o ed spec al de e mina ion o analy ic domains wi h wo
classes o symme ies.
Less is known abou domains wi h less egula bounda ies, he simples o which a e polygons. In he
case o iangles, i has been p o en ha he whole spec um o he Laplace ope a o de e mines he shape
o a iangle ([Du 88], wi h a ecen simple p oo by [GM13]), and la e Chang and De Tu ck p o ed ha
only a ini e amoun o eigen alues, which depends on λ1and λ2, is enough [CD89]. I is na u al o y o
imp o e he esul o only a ini e and ixed amoun o eigen alues, answe ing he ques ion “Can a human
hea he shape o a iangula d um?”.
Since he space o iangles up o isome ies is has dimension 3, we would expec ha 3 eigen alues
should be enough, bu a p io i i is no clea which ones. An unes and F ei as [AF11] conjec u ed ha
indeed he h ee i s eigen alues λ1, λ2and λ3do de e mine he shape o a iangle. Ins ead, nume ical
e idence by hemsel es seems o indica e ha his is no he case o λ1, λ2and λ4, and in his pape we
will p o e his ac (Theo em 1). This will gi e an example o an obs uc ion o de e mining he shape o a
iangle om a ini e po ion o i s spec um.
3
2 S uc u e o he p oo o Theo em 1
By he scaling o he p oblem, we educe ou sea ch o he se o iangles wi h a ixed base leng h ( oge he
wi h addi ional condi ions ha ensu e ha we only conside one iangle o each simila i y class); ins ead
o looking o all h ee eigen alues λ1, λ2, λ4 o be equal, we jus equi e he quo ien s ξ21 =λ2/λ1and
ξ41 =λ4/λ1 o ake he same alue. Since he eigen alues scale by λ −2when he leng hs o a iangle a e
scaled by , he wo condi ions a e equi alen .
Fixing he i s wo e ices o he iangle o be (0,0) and (1,0), we use he coo dina es (cx, cy) o he
hi d e ex o pa ame ize he sea ch space. Ou app oach consis s in using a opological a gumen o
show ha in each o wo disjoin egions in his pa ame e space he e is a iangle in which ξ21 and ξ41
ake he same p esc ibed alue. Mo e p ecisely, we claim ha he e a e wo dis inc iangles o which
ξ21 =¯
ξ21 := 1.67675 and ξ41 =¯
ξ41 := 2.99372.
Since igo ous calcula ions wi h he compu e a e done using in e al a i hme ic, we need a opological
echnique o ans o m he closed condi ion in o an open condi ion which can be compa ible wi h he in e als.
Fo his we will use he Poinca ´e–Mi anda heo em (see [Mi 40]):
Theo em 2. Gi en wo con inuous unc ions , g : [−1,1]2→Rsuch ha (x, y)has he same sign as x
when x=±1and g(x, y)has he same sign as ywhen y=±1, he e exis s a poin (x, y)∈[−1,1]2such ha
(x, y) = g(x, y)=0.
The egions ha we will conside a e wo pa allelog ams a ound he poin s A= (0.63500,0.27500) and
B= (0.84906,0.31995), designed such ha ξ21 and ξ41 ha e app oxima ely a cons an alue each in a pai
o opposi e edges. Using he compu e we will e i y ha he unc ions ξ21 −¯
ξ21 and ξ41 −¯
ξ41 each ha e a
cons an and opposi e sign in opposi e edges o he pa allelog am, and hence by he heo em, oge he wi h
he well known con inui y o eigen alues, we will conclude ha such wo dis inc iangles exis .
The ec o s de ining he pa allelog am a e o cou se ob ained om he in e se o an app oxima ion o
he di e en ial o he R2- alued uncion (ξ21, ξ41) a he poin s Aand B, eescaled so ha he inc emen o
ξ21 and ξ41 along each ec o is app oxima ely 0.01. Explici ly, hey a e gi en by:
• 21,A = (0.04269082311,0.01148489707)
• 41,A = (−0.02082984105,−0.00255790585)
• 21,B = (0.01717048015,0.01266844996)
• 41,B = (0.03590363291,0.01065148385)
Mo eo e , o he poin Ain he nega i e 21,A di ec ion, he ec o is sh inked by a ac o 0.6, because
a e ha he beha io de ia es om linea and he bound becomes wo se a e his displacemen . Hence
he e ices o he pa allelog ams will be
•A+ 21,A + 41,A,A+ 21,A − 41,A,A−0.6 21,A − 41,A,A−0.6 21,A + 41,A.
•B+ 21,B + 41,B,B+ 21,B − 41,B,B− 21,B − 41,B,B− 21,B + 41,B.
4

0.56 0.58 0.6 0.62 0.64 0.66 0.68 0.7 0.72 0.74 0.76 0.78 0.8 0.82 0.84 0.86 0.88 0.9 0.92 0.94
0.25
0.26
0.27
0.28
0.29
0.3
0.31
0.32
0.33
0.34
0.35
A
B
ξ21
ξ41
Figu e 1: Nume ical app oxima e plo o he quo ien s ξ21 (discon inuous lines) and ξ41 (con inuous lines)
a ound he egion o in e es . The poin s Aand Band he alida ed pa allelog ams a e shown in ed.
5
This se up is displayed in Figu e 1 oge he wi h a plo o non igo ous con ou lines o he eigen alue
quo ien s.
The poin wise e i ica ion o he alues ξ21 and ξ41, which depends on an accu a e calcula ion o λi o
i= 1,2,4, consis s o wo s eps. The i s one, ea ed in Sec ion 3, is abou showing ha he compu ed
eigen alues ac ually co espond o he o de ed ones λ1, λ2and λ4; in o de o do ha , we will p o e a lowe
bound o λ5combining echniques om he Fini e Elemen Me hod wi h igo ous bounds linking he ini e
dimensional p oblem o he in ini e dimensional one. The second s ep consis s o inding accu a e alues o
ou eigen alues ha lie below he h eshold ob ained in he i s pa , which implies ha hey will indeed
ha e o be he ou lowes ones. This is done using he Me hod o Fundamen al Solu ions and ecen igo ous
bounds based on he L2no m o he bounda y e o , explained in Sec ion 4.
We emphasize he di icul y o inding he o de o an eigen alue, which is a global p oblem, compa ed
o he local easie ask o e ining i s alue. To he bes knowledge o he au ho , his is he i s compu e -
assis ed p oo in which hese wo dis inc , local and global me hods a e used o e i y eigen alues o an
ope a o .
In o de o ex end he compu e -assis ed poin wise e i ica ions o he eigen alues λ1, λ2and λ4 o he
con inuous egion in which hey need o be alida ed, we will use explici con inui y esul s o he spec um
o an ellip ic ope a o wi h he domain o ex end he bounds o a neighbo hood o he e i ied poin s. The
de ails o his pa a e explained in Sec ion 5. Sec ion 6 con ains he de ails o he implemen a ion and
execu ion o he p oo . Finally, he Appendix con ains he codes used o e i y an uppe bound o he 4 h
eigen alue a a poin and o alida e a segmen o iangles.
We end his sec ion by in oducing he eade o how a compu e -assis ed p oo wo ks. In he ecen
yea s, he applica ion o calcula ions done by compu e s o ma hema ical p oo s ha e become mo e popula
due o he inc emen o compu a ional esou ces, bu in o de o make su e ha hei esul s a e igo ous,
we need o con ol he e o s ha loa ing poin a i hme ic can accumula e. This is usually done by means o
in e al a i hme ic, in which he da a ha a compu e s o es o a eal numbe is an in e al ( wo endpoin s,
o a midpoin and a adius) o eal numbe s, s o ed by wo loa ing poin numbe s, ins ead o jus one.
Ope a ions be ween in e als a e implemen ed o e u n in e als which a e gua an eed o con ain e e y
possible esul when he ope ands belong o he inpu in e als. Fo example, i [x]=[x, x] and [y]=[y,y]
a e wo in e als, hei sum will can be gi en by he in e al [x] + [y]=[x+y, x +y] and hei p oduc
by [x]·[y] = [min{xy, xy, xy, xy},max{xy, xy, xy, xy}]. The same ule applies o unc ion implemen a ions:
a unc ion e alua ed on [x] should e u n an in e al con aining e e y (x) o x∈[x]. We e e o
he book [Tuc11] o an in oduc ion o alida ed nume ics, in which mos o he echniques used he e a e
explained, and o [GS18] o a mo e speci ic ea men o compu e -assis ed p oo s in PDE.
3 Sepa a ion o he i s ou eigen alues
In o de o ind a igo ous lowe bound o he i h eigen alue o a iangle we will use a ecen bound
ound by Liu [Liu15], which is simila o he one in [CG14] bu simpli ies he hypo heses and imp o es he
cons an . Bo h use he non-con o ming Fini e Elemen Me hod o C ouzeix–Ra ia ; o he igo ous bounds
wi h con o ming ini e elemen s we e explo ed, like [LO13], bu he bound is wo se and he me hod is ha de
6
o implemen wi h alida ed nume ics because i s mass ma ix is no diagonal.
The C ouzeix–Ra ia ini e-elemen me hod uses a iangula ion o he domain Ω, which in ou case we
will ake o be he i ial iangula ion gi en by N2 iangles wi h sides equal o 1/N o he o iginal one and
simila o i . The basis unc ions a e indexed by in e io edges o he iangula ion: i Eis a common edge
o iangles T1,T2, he basis unc ion ψEis he unique unc ion suppo ed on T1∪T2such ha es ic ed o
each iangle is a ine, akes he alue 1 in he midpoin o Eand he alue 0 in he midpoin s o he o he
edges o T1and T2.
We de ine he coe icien s o he s i ness and mass ma ices A= (aEF ),B= (bEF ) by he bilinea o ms
aEF =ZΩ∇ψE·∇ψFbEF =ZΩ
ψEψF
Fo ou choice o iangula ion, Bis simply a mul iple o he iden i y 2|Ω|I/3N2, whe eas Ais a
spa se ma ix. This will allow us o wo k wi h a ma ix eigen alue p oblem ins ead o a gene alized one.
The main esul ha we will use is he ollowing [Liu15, Theo em 2.1 and Rema k 2.2]:
Theo em 3. Conside a polygonal domain Ωwi h a iangula ion so ha each iangle has diame e a
mos h. Le λkbe he k- h eigen alue o Ωand λk,h he k- h eigen alue o he C ouzeix–Ra ia disc e ized
p oblem o Ω. Then λh,k
1 + C2
hλh,k ≤λk,(1)
whe e Ch≤0.1893his a cons an .
In o de o be able o deal wi h app oxima e eigen alues we will need in addi ion he ollowing lemma
om [Pa 80, Theo em 15.9.1].
Lemma 4. Le (˜
λh,˜
uh)be an app oxima ed algeb aic eigenpai such ha ˜
λhis close o some λh han
o any o he disc e e eigen alue. Suppose ha he coe icien ec o ˜
uhis no malised wi h espec o B,
kB˜
uhkB−1=k˜
uhkB= 1. Then he algeb aic esidual := A˜
uh−˜
λhB˜
uhsa is ies
|λh−˜
λh| ≤ k kB−1.
Rema k 5. We can combine Theo em 3 wi h Lemma 4 using he mono onici y o (1), using λh,k −k kB−1
as a lowe bound o λh,k ins ead.
I is easy o ob ain es ima ions ˜
λhwi h a e y small esidual. The ha des pa he e be o e applying
he heo em is o check ha hey ha e indeed he co ec index, i.e., ha hey a e close o he app op ia e
λh han o any o he disc e e eigen alue. This is why we need o con ol he whole spec um o he disc e e
p oblem, and we will do ha by applying Ge shgo in’s disks heo em a e pe o ming some Gi ens o a ions
o he ma ix o ge use ul bounds.
Mo e p ecisely, in o de o ge a lowe bound o λ5we need o sepa a e he i s 5 eigen alues om
he es so ha we can con ol hem, and in o de o do ha we will pe o m Gi ens o a ions un il he
in e als p o ided by Ge shgo in’s heo em can be sepa a ed in wo disjoin componen s, one con aining he
5 smalles eigen alues and he o he con aining he es . I his holds, hen he s ong e sion o Ge shgo in’s
7
heo em will gua an ee an uppe bound o λh,5. The e o e, p o ided ha he esiduals a e all e y small
and ha all app oxima e eigen alues a e di e en (which happens in ou se ing), Lemma 4 will gua an ee
ha he e a e 5 dis inc disc e e eigen alues below he uppe bound and he e o e hey will be o ced o
ha e he co ec indices.
This allows us o e i y λh,5wi h an e o only depending on i s esidual, and using Rema k 5, ge a
lowe bound o λ5. The e o e, he i s ou eigen alues can be sepa a ed jus by checking ha hey a e
dis inc and smalle han his lowe bound.
4 Rigo ous eigen alue bounds o indi idual iangles
Ou app oach o ind igh bounds o he eigen alues o iangles uses he Me hod o Fundamen al Solu ions
(MFS), in oduced by Fox, Hen ici and Mole in [FHM67] and mo e ecen ly e i ed by Be cke and T e e hen
[BT05]. In his me hod, a unc ion uis w i en as a linea combina ion o unc ions φi(1 ≤i≤N) ha
sa is y poin wise he equa ion (∆ + λ)φi= 0 o a ixed λ. The coe icien s a e chosen o op imize he
p oximi y o he unc ion o he eigenspace o he ac ual eigen alue λj, in a sense made p ecise in [BT05],
and his is measu ed by he leas singula alue o a ce ain ma ix ha in ol es he alues o ua disc e e
poin s o he bounda y ∂Ω. This pa ame e is minimized wi h espec o λby using a golden a io sea ch.
This p o ides a candida e λ∈Rand coe icien s ci o which u(x) = PN
i=1 ciφi(x) can be compu ed wi h
a bi a y p ecision.
The unc ions ha we will use o he MFS consis o wo ypes: he i s ones a e o he o m φ(x) =
Y0(√λ|x−x0|), o x0a poin ou side Ω. The second ype o unc ions a e pa ame ized by a e ex o he
iangle and a posi i e in ege j, and ake he o m ψj( , θ) = Jjα(√λ ) sin(jαθ), whe e ( , θ) a e he pola
coo dina es o he poin wi h espec o a e ex in he iangle whose o al angle is π/α, and θis measu ed
om an adjacen side. The i s kind o unc ions allow us o app oxima e he unc ion in he in e io o he
iangle and nea he sides, while he second kind gi es he co ec asymp o ic beha io o he solu ion nea
he e ices o he iangle.
The main ool ha we will use o ind igo ous bounds o eigen alues is he L2bound gi en by Ba ne
and Hassell [BH11]. Howe e , hei me hod is op imized o high eigen alues, so we will ha e o adap some
o he s eps o ou case o small eigen alues. We summa ize he main esul s ha we will use. Le Ω be a
iangle and u∈C2(Ω) be nonze o such ha (∆ + λ)u= 0. Conside he ension
[u] = kukL2(∂Ω)
kukL2(Ω)
.
Le λj, ujbe he sequence o eigen alues and eigen unc ions o Ω, sa is ying (∆ + λj)uj= 0 wi h Di ichle
null bounda y condi ions. Le jbe he no mal de i a i e o uj, de ined on ∂Ω. We de ine he ope a o
A(λ) = X
λj
jh j,·i
(λ−λj)2,
and i s decomposi ion as a sum o h ee:
Anea (λ) = X
|λ−λj|≤√λ
jh j,·i
(λ−λj)2,
8
−20,000 −10,000 0 10,000 20,000 30,000 40,000 50,000 60,000 70,000 80,000
Figu e 2: Ge shgo in in e als be o e applying he Gi ens o a ions o iangle A.
−20,000 −10,000 0 10,000 20,000 30,000 40,000 50,000 60,000 70,000 80,000
Figu e 3: Ge shgo in in e als a e applying he Gi ens o a ions o iangle A. The dashed e ical line
a posi ion 790 sepa a es he i s 5 eigen alues om he es .
Acknowledgmen s
Fi s o all, I would like o hank my supe iso Ja ie G´omez-Se ano o hos ing me a P ince on Uni e si y,
sugges ing me he p oblem, p o iding me e e ences, gi ing me a lo o guidance and sha ing wi h me many
15

−200 0 200 400 600 800 1,000 1,200 1,400 1,600 1,800
Figu e 4: Zoom o he sepa a ion o he i s 5 eigen alues a e he Gi ens o a ions.
(a)
(b)
Figu e 5: G id used o alida e a lowe bound o kukL2(Ω) o iangle B, wi h (a) he i s eigen unc ion
and (b) he second eigen unc ion plo ed on op.
use ul discussions. I am e y g a e ul o he Ma hema ics Depa men o P ince on Uni e si y, in pa icula
he G adua e P og am, o unding my uni e si y ee and allowing my s ay as a isi o esea che . I would
also like o hank CFIS and he adminis a o s o he Mobili y p og am o gi ing me he opo uni y o
do his esea ch in ano he uni e si y and unding me. I also hank he MOBINT schola ship o p o iding
pa ial inancial suppo o my s ay.
16
A Code o he sepa a ion o he smalles eigen alues
This p og am eads he pa ame e Nand he coo dina es o he hi d e ex o he iangle and e u ns a
lowe bound o λ5.
#include "a b.h"
#include "a b_ma .h"
#include "linalg.h"
#include "a bcc.h"
#include <casse >
#include <cma h>
#include <ios eam>
#include <map>
#include < ec o >
// Compile wi h -DPREC=1024
using namespace s d;
using namespace alglib;
in di[6] = {0, 0, 1, -1, 1, -1};
in dj[6] = {1, -1, 0, 0, -1, 1};
in side(in i, in j) {
i (i % 2 == 1) e u n 2;
i (j % 2 == 0) e u n 0;
e u n 1;
}
double sq(double ) { e u n * ;}
/* s uc A Real de ini ion omi ed o b e i y */
in n, m;
oid gi ens( ec o < ec o <A bReal> >& A, double lowba , double upba ,
in nsmall) {
ec o <pai <A bReal, in > > s (m);
o (in i=0;i<m;++i){
s [i] = make_pai (A[i][i], i);
17
}
so (s .begin(), s .end());
ec o <bool> small(m, alse);
o (in i = 0; i < nsmall; ++i) {
small[s [i].second] = ue;
}
bool done = alse;
in i = 0;
while (!done and i < 10) {
++i ;
done = ue;
o (in p=0;p<m;++p){
A bReal ad = 0.;
o (in q=0;q<m;++q){
i (q != p) {
ad = ad + A[q][p].abs();
}
}
A bReal ma gin;
i (small[p]) {
ma gin = A bReal(upba ) - A[p][p];
}else {
ma gin = A[p][p] - A bReal(lowba );
}
i ( ad < ma gin) {
con inue;
}
done = alse;
p in ("i %d: changing column %d wi h ma gin ", i , p);
ma gin.p in ();
o (in q=0;q<m;++q){
i (q != p && ma gin / (m - 1) < A[p][q].abs()) {
A Real = (A Real(A[q][q]) - A Real(A[p][p])) /
(A Real(A[p][q]) * A Real(2));
A Real = ( ).sign() / ( .abs() + ( .sq() + 1).sq ());
A bReal _a b( .x);
A bReal c = 1_a / ( _a b.sq() + 1_a).sq ();
A bReal s = c * _a b;
o (in i=0;i<m;++i){
A bReal u = A[p][i];
18
A bReal = A[q][i];
A[p][i] = c * u - s * ;
A[q][i] = c * + s * u;
}
o (in i=0;i<m;++i){
A bReal u = A[i][p];
A bReal = A[i][q];
A[i][p] = c * u - s * ;
A[i][q] = c * + s * u;
}
}
}
}
}
}
ec o <pai <A bReal, A bReal> > ge shgo in( ec o < ec o <A bReal> >& A) {
ec o <pai <A bReal, A bReal> > e (m);
o (in i=0;i<m;++i){
e [i]. i s = A[i][i];
e [i].second = 0.;
o (in j=0;j<m;++j){
i (j != i) {
e [i].second = e [i].second + A[j][i].abs();
}
}
}
so ( e .begin(), e .end());
e u n e ;
}
in main() {
ios::sync_wi h_s dio( alse);
cou .se (ios:: ixed);
cou .p ecision(10);
cin >> n;
double x_s, y_s;
cin >> x_s >> y_s;
A bReal x(x_s), y(y_s);
19
A bReal a ea = y / 2_a;
A bReal l_a = (y * y + (x - 1_a) * (x - 1_a)).sq ();
A bReal l_b = (y * y + x * x).sq ();
A bReal l_c = 1;
A bReal len[3];
len[0] = l_a;
len[1] = l_b;
len[2] = l_c;
A bReal h_a = y / l_a;
A bReal h_b = y / l_b;
A bReal h_c = y;
A bReal heigh [3];
heigh [0] = h_a;
heigh [1] = h_b;
heigh [2] = h_c;
A bReal cos_a = x / l_b;
A bReal cos_b = (1_a - x) / l_a;
A bReal cos_c = (x * (x - 1_a) + y * y) / (l_a * l_b);
A bReal cosine[3];
cosine[0] = cos_a;
cosine[1] = cos_b;
cosine[2] = cos_c;
map<pai <in ,in >, in > encode;
o (in i=0;i<2*n-2;++i){
o (in j=0;i+j<2*n-2;++j){
i (i%2==0o j%2==0){
encode[make_pai (i, j)] = m++;
}
}
}
ec o < ec o <A bReal> > ma (m, ec o <A bReal>(m));
A bReal mass_diag = (a ea * 2) / (3 * n * n);
o (in i=0;i<2*n-2;++i){
o (in j=0;i+j<2*n-2;++j){
20

i (i%2==1and j%2==1)con inue;
in u = encode[make_pai (i, j)];
in side_u = side(i, j);
ma [u][u] = (a ea * 8) / heigh [side_u].sq();
o (in d=0;d<6;++d){
in i2 = i + di[d];
in j2 = j + dj[d];
i (i2 >= 0 and j2 >= 0 and i2+j2<2*n-2and
(i2 % 2 == 0 o j2 % 2 == 0)) {
in = encode[make_pai (i2, j2)];
in side_ = side(i2, j2);
A bReal mp = -(cosine[3 - side_u - side_ ] * a ea * 4) /
(heigh [side_u] * heigh [side_ ]);
ma [u][ ] = mp;
ma [ ][u] = mp;
}
}
}
}
o (in i=0;i<m;++i){
o (in j=0;j<m;++j){
ma [i][j] = ma [i][j] / mass_diag;
}
}
eal_2d_a ay ma _d;
ma _d.se leng h(m, m);
o (in i=0;i<m;++i){
o (in j=0;j<m;++j){
ma _d(i, j) = ma [i][j].ge _app ox_double();
}
}
ae_in _ num_eigs_ ound;
eal_1d_a ay eigs_d;
eal_2d_a ay eigen ec o s;
21
asse (sma ixe d (ma _d, m, 1, 1, 0.0, 1000.0, num_eigs_ ound, eigs_d,
eigen ec o s));
ce << "Found " << num_eigs_ ound << " below 1000 n";
ec o <A bReal> disc e e_eigs_lb(num_eigs_ ound);
o (in i = 0; i < num_eigs_ ound; ++i) {
cou << eigs_d(i) << endl;
A bReal lambda(eigs_d(i));
ec o <A bReal> ec(m);
o (in j=0;j<m;++j){
ec[j] = A bReal(eigen ec o s(j, i));
}
A bReal num = 0., den = 0.;
o (in j=0;j<m;++j){
A bReal esidue = -lambda * ec[j];
o (in k=0;k<m;++k){
esidue = esidue + A bReal(ma [j][k]) * ec[k];
}
num = num + esidue.sq();
den = den + ec[j].sq();
}
A bReal e o = (num / den).sq ();
p in ("E o : ");
e o .p in ();
disc e e_eigs_lb[i] = lambda - e o ;
}
asse (num_eigs_ ound >= 6);
double ba ie = (eigs_d[4] + eigs_d[5]) / 2;
// Successi ely apply Gi ens o a ions o educe he ma gin.
// I does no wo k i one ies o sepa a e hem wi h he
// ba ie om he beginning.
gi ens(ma , -100000, 1000000, 10);
gi ens(ma , -80000, 1000000, 10);
gi ens(ma , -60000, 1000000, 10);
gi ens(ma , -50000, 1000000, 10);
gi ens(ma , -20000, 1000000, 10);
gi ens(ma , -10000, 1000000, 10);
gi ens(ma , -1000, 100000, 10);
22
gi ens(ma , 0, 100000, 10);
gi ens(ma , 1000, 10000, 10);
gi ens(ma , 1000, 2000, 10);
gi ens(ma , ba ie , 2000, 5);
gi ens(ma , ba ie , ba ie , 5);
p in ("Disc e e lambda_5 success ully sepa a ed n");
ec o <pai <A bReal, A bReal> > ge = ge shgo in(ma );
A bReal liu_cons an = 0.1893;
A bReal lambda5lb =
disc e e_eigs_lb[4] /
(1_a + disc e e_eigs_lb[4] * liu_cons an .sq() / A bReal(n * n));
p in ("Ve i ied lowe bound o lambda_5: ");
lambda5lb.p in ();
}
B Code o alida ing an in e al o iangles
This p og am eads he name o he hi d e ex (Ao B), he indexs o he eigen alue quo ien o alida e
(“21” o “41”), a le e s anding o he sign (’p’ o plus, ’m’ o minus) o ξ−¯
ξ ha we ha e o alida e, he
cu en coo dina e c, and he o al numbe o coo dina es ncin which his side is di ided (c∈ {1, . . . ,nc}).
This will alida e a segmen a ound he posi ion gi en by 2(c−0.5)/nc−1 in he co esponding side o he
pa allelog am (whe e he posi ion is no malized so ha e ices a e a posi ions −1 and 1), and he adius
`o his segmen will be he alue e u ned by he p og am.
Fo example, i he inpu is “B 21 p 312 1000” and he p og am e u ns a alue o 0.0013, his means
ha o all he poin s in he segmen be ween B+ 21,B −0.1898 41,B and B+ 21,B −0.1872 41,B he
co esponding ξ21 has been e i ied o be g ea e han ¯
ξ21.
The p og am uses he A bTaylo class, which is no included he e o b e i y, bu compu es simul a-
neously he Taylo polynomial and i s esidue, and uses hem o ob ain an enclosu e o he unc ion in an
in e al, as desc ibed in [Tuc11].
#include "a b.h"
#include "a b_hypgeom.h"
#include "a bcc.h"
#include "a bse ies.h"
#include "a b aylo .h"
23
#include <algo i hm>
#include <casse >
#include < s eam>
#include <ios eam>
#include <map>
#include < ec o >
// Compile wi h -DPREC=128
using namespace s d;
// Decla ed he e and implemen ed in a sepa a e ile.
oid ill_in_ ec o s( ec o <double>& _coe s, double& _lambda,
ec o < ec o <double>>& _sou ces, double cx0, double cy0,
double lmin, double lmax);
namespace {
// Coo dina es o he hi d e ex. Se as global because hey a e used
// e e ywhe e.
A bReal cx, cy;
/* GENERAL FUNCTIONS */
// Fundamen al solu ion a ound an ex e nal cha ge poin ‘(xs, ys)‘.
A bTaylo und_sol_cha ge(cons A bTaylo & x, cons A bTaylo & y,
cons A bReal& xs, cons A bReal& ys,
cons A bReal& lambda, in o de ) {
A bTaylo a g = (x - A bTaylo ::cons an (xs, o de )).sq() +
(y - A bTaylo ::cons an (ys, o de )).sq();
a g = a g.sq ();
a g *= lambda.sq ();
e u n a g.bessely0();
}
// Angle be ween wo ec o s.
A bReal ccw_angle(cons A bReal& x1, cons A bReal& y1, cons A bReal& x2,
cons A bReal& y2) {
A bReal = (x1.sq() + y1.sq()).sq ();
A bReal c = x1 / ;
24
ans = A bReal(aux);
a _clea (aux);
}else {
A bReal al1 =
pa h_d s(coe , lambda, sou ces, 2 * num, 2 * den, e _goal, xx, yy);
A bReal al2 =
pa h_d s(coe , lambda, sou ces, 2 * num + 1, 2 * den, e _goal, xx, yy);
a b_min(ans, al1, al2, PREC);
}
mag_clea (e _ al);
e u n ans;
}
// Minimum o u^2 in he pa h gi en by (xx[i], yy[i]).
A bReal pa h_minsq(cons ec o <A bReal>& coe , cons A bReal& lambda,
cons ec o < ec o <A bReal>>& sou ces, double goal_d,
cons ec o <A bReal>& xx, cons ec o <A bReal>& yy) {
mag_ e _goal;
mag_ini (e _goal);
mag_se _d(e _goal, goal_d);
in den = 18;
A bReal lb;
a b_pos_in (lb);
o (in num = 0; num < den; ++num) {
A bReal al =
pa h_d s(coe , lambda, sou ces, num, den, e _goal, xx, yy).sq();
a b_min(lb, lb, al, PREC);
}
mag_clea (e _goal);
e u n lb;
}
A bReal compu e_l2meanlb(cons ec o <A bReal>& coe , A bReal lambda,
cons ec o < ec o <A bReal>>& sou ces) {
double goal = 5e-2;
in n = 8; // Bounding L2 no m using 8*8 iangles,
A bReal l2sum = 0_a;
A bReal = 0.8; // Using 0.64 o he o al a ea o a oid he bo de s.
31

o (in coun e = 0; coun e < n * n ; ++coun e ) {
au o pa h = ge _ iangle(coun e , n , );
A bReal pmsq =
pa h_minsq(coe , lambda, sou ces, goal, pa h. i s , pa h.second);
l2sum += pmsq * .sq() / A bReal(n ).sq();
}
A bReal l2meanlb = l2sum.sq ();
p in ("Lowe bound o he L2 mean: ");
l2meanlb.p in ();
e u n l2meanlb;
}
/* COMPUTE THE EIGENVALUE WITH AN ABSOLUTE ERROR */
// Re u ns he pai {lambda, abs_e }, wi h lambda in [lbound, ubound]. ‘index‘
// speci ies he posi ion o he eigen alue in he spec um (1,2,...).
pai <A bReal, A bReal> compu e_all(in index, double lbound, double ubound) {
ec o <double> coe _d;
ec o < ec o <double>> sou ces_d;
double lambda_d;
ill_in_ ec o s(coe _d, lambda_d, sou ces_d, cx.ge _app ox_double(),
cy.ge _app ox_double(), lbound, ubound);
in nc = coe _d.size();
in ns = sou ces_d.size();
ec o <A bReal> coe (nc);
ec o < ec o <A bReal>> sou ces(ns, ec o <A bReal>(2));
A bReal lambda = lambda_d;
o (in i = 0; i < nc; ++i) {
coe [i] = A bReal(coe _d[i]);
}
o (in i = 0; i < ns; ++i) {
sou ces[i][0] = A bReal(sou ces_d[i][0]);
sou ces[i][1] = A bReal(sou ces_d[i][1]);
}
p in ("Candida e lambda: ");
lambda.p in ();
32
A bReal meanl2lb = compu e_l2meanlb(coe , lambda, sou ces);
double goal_d = 1e-5;
a _ goal;
a _ini (goal);
a _se _d(goal, goal_d);
A bReal l2bd y = side_l2_ ec(coe , lambda, sou ces, goal);
p in ("Valida ed a goal %e n", a _ge _d(goal, 10));
p in ("L2 no m a he bounda y: ");
l2bd y.p in ();
A bReal a ea = cy / 2;
A bReal o all2lb = meanl2lb * a ea.sq ();
A bReal ension = l2bd y / o all2lb;
A bReal side_a = (cy.sq() + (1_a - cx).sq()).sq ();
A bReal side_b = (cy.sq() + cx.sq()).sq ();
A bReal semip = (side_a + side_b + 1_a) / 2_a;
A bReal in ad =
((semip - side_a) * (semip - side_b) * (semip - 1_a) / semip).sq ();
A bReal c_omega = 4_a * (1_a + in ad) / in ad;
A bReal ub_all_lambda = 800_a; // Rough uppe bound o all lambda (1 o 4).
A bReal a_ a = 7_a * c_omega;
A bReal a_ ail = 7_a * c_omega / lambda.sq ();
A bReal aux = 1_a / ension.sq();
aux -= a_ a + a_ ail;
A bReal abs_e = 2_a * A bReal(ubound) / (aux * in ad);
asse (0_a < abs_e );
abs_e = abs_e .sq ();
p in (
"Rigo ous alue o lambda ob ained. Follows lambda, i s ension and i s "
"absolu e e o . n");
lambda.p in ();
ension.p in ();
abs_e .p in ();
a _clea (goal);
e u n {lambda, abs_e };
33
}
}// namespace
in main() {
cha p name, signc;
s ing indexs;
in coo d, ncoo d;
cin >> p name >> indexs >> signc >> coo d >> ncoo d;
A bReal cx0, cy0, 21x, 21y, 41x, 41y, posi ion;
// Heu is ics o ind he app op i a e eigen alue.
// This will be alida ed la e by a sepa a e p og am.
ec o <double> lmin, lmax;
i (p name == ’A’) {
// Coo dina es:
cx0 = 0.635;
cy0 = 0.275;
// Vec o s o he pa allelog am:
21x = 4.269082311683548 / 100;
21y = 1.148489707350921 / 100;
41x = -2.082984105473002 / 100;
41y = -0.255790585210996 / 100;
i (indexs == "21") {
posi ion = (A bReal(coo d) - 0.5_a) / A bReal(ncoo d) * 2_a - 1_a;
lmin = {180, 320};
lmax = {280, 450};
}else {
// In his case, he pa allelog am is sh inked om below:
// he posi ion akes alues in [-0.6, 1].
posi ion = (A bReal(coo d) - 0.5_a) / A bReal(ncoo d) * 1.6_a - 0.6_a;
lmin = {180, 620};
lmax = {280, 727. - (2 * coo d - ncoo d) / ncoo d * 27};
}
}else {
cx0 = 0.849057346949971;
cy0 = 0.319950941965592;
21x = 1.717048015465781 / 100;
21y = 1.266844996461298 / 100;
34
41x = 3.590363291549854 / 100;
41y = 1.065148385561495 / 100;
posi ion = (A bReal(coo d) - 0.5_a) / A bReal(ncoo d) * 2_a - 1_a;
i (indexs == "21") {
i (signc == ’m’) {
lmin = {160, 280};
lmax = {255, 380};
}else {
lmin = {150, 280};
lmax = {190, 380};
}
}else {
i (signc == ’m’) {
double cen e _l1 = 214 - coo d * 23.0 / ncoo d;
double cen e _l4 = 637 - coo d * 65.0 / ncoo d;
lmin = {cen e _l1 - 20, cen e _l4 - 20};
lmax = {cen e _l1 + 20, cen e _l4 + 20};
}else {
double cen e _l1 = 197 - coo d * 20.0 / ncoo d;
double cen e _l4 = 593 - coo d * 60.0 / ncoo d;
lmin = {cen e _l1 - 20, cen e _l4 - 20};
lmax = {cen e _l1 + 20, cen e _l4 + 20};
}
}
}
i (indexs == "21") {
i (signc == ’m’) {
cx = cx0 - 21x + posi ion * 41x;
cy = cy0 - 21y + posi ion * 41y;
}else {
cx = cx0 + 21x + posi ion * 41x;
cy = cy0 + 21y + posi ion * 41y;
}
}else {
i (signc == ’m’) {
cx = cx0 + posi ion * 21x - 41x;
cy = cy0 + posi ion * 21y - 41y;
}else {
cx = cx0 + posi ion * 21x + 41x;
35
cy = cy0 + posi ion * 21y + 41y;
}
}
s ing ilename = "ou pu _";
ilename += p name;
ilename += indexs;
ilename += signc;
ilename += o_s ing(coo d);
ilename += "o ";
ilename += o_s ing(ncoo d);
ilename += ". x ";
eopen( ilename.c_s (), "w", s dou );
au o p1 = compu e_all(1, lmin[0], lmax[0]);
au o pk = compu e_all((indexs == "21" ? 2 : 4), lmin[1], lmax[1]);
A bReal xi = pk. i s / p1. i s ;
A bReal e xi = (pk.second + p1.second * xi) / (p1. i s - p1.second);
p in ("Xi and e o : n");
xi.p in ();
e xi.p in ();
A bReal goalxi = (indexs == "21" ? 1.67675 : 2.99372);
A bReal ma gin = (signc == ’p’ ? xi - goalxi - e xi : goalxi - xi - e xi);
A bReal eps = ma gin / (pk. i s * (1_a + xi + ma gin));
A bReal del a = ((2_a * A bReal::pi()).sq() * eps) /
(1_a + (2_a * A bReal::pi()).sq() * eps);
A bReal cc, kk; // Auxillia y a iables o calcula e ell.
i (indexs == "21") {
cc = cy * ( 41x.abs() + 2_a * 41y.abs());
kk = 41y.abs();
}else {
cc = cy * ( 21x.abs() + 2_a * 21y.abs());
kk = 21y.abs();
}
// Leng h alida ed a his poin h ough p opaga ion o he e o .
// Gi en as he coe icien o he ec o 21 o 41 ha one can mo e.
A bReal ell = (2_a * del a * cy * kk + cc -
(4_a * del a * cy * kk * cc + cc.sq()).sq ()) /
36

(2_a * del a * kk.sq());
i (p name == ’A’ && indexs == "41") {
// Reno malize ell so i ep esen s a leng h in [-1, 1]:
ell *= 1.25;
}
p in ("Value o ell: ");
ell.p in ();
}
C Code o op imizing he eigen alue
This code implemen s he unc ion ill_in_ ec o s decla ed in he ile abo e, which inds an app oxima e
eigen alue and eigen ec o in a non- igo ous ashion. I does so by op imizing he smalles nonze o singula
alue o a ma ix ha imposes he bounda y condi ions, as explained abo e.
#include <s dio.h>
#include <sys/ ime.h>
#include <algo i hm>
#include <u ili y>
#include "linalg.h"
#include "s da x.h"
#include "op imiza ion.h"
#include "special unc ions.h"
#include <boos /ma h/special_ unc ions/bessel.hpp>
#include <boos /ma h/ ools/minima.hpp>
using namespace alglib;
using namespace s d;
namespace {
double cx, cy;
inline double sq(double x) { e u n x*x;}
double no m(cons eal_1d_a ay& a) {
double s = 0;
o (in i = 0; i < a.leng h(); ++i) {
s += sq(a[i]);
}
37
e u n sq (s);
}
eal_1d_a ay ope a o *(cons eal_1d_a ay& a, double x) {
eal_1d_a ay c;
in n = a.leng h();
c.se leng h(n);
o (in i=0;i<n;++i){
c[i] = a[i] * x;
}
e u n c;
}
eal_1d_a ay ope a o /(cons eal_1d_a ay& a, double x) {
eal_1d_a ay c;
in n = a.leng h();
c.se leng h(n);
o (in i=0;i<n;++i){
c[i] = a[i] / x;
}
e u n c;
}
eal_1d_a ay ope a o +(cons eal_1d_a ay& a, cons eal_1d_a ay& b) {
eal_1d_a ay c;
in n = a.leng h();
c.se leng h(n);
o (in i=0;i<n;++i){
c[i] = a[i] + b[i];
}
e u n c;
}
eal_1d_a ay ope a o -(cons eal_1d_a ay& a, cons eal_1d_a ay& b) {
eal_1d_a ay c;
in n = a.leng h();
c.se leng h(n);
o (in i=0;i<n;++i){
c[i] = a[i] - b[i];
}
38
e u n c;
}
double und_sol_cha ge_d(double x, double y, double x0, double y0,
double lambda) {
double = sq (sq(x - x0) + sq(y - y0));
e u n bessely0( * sq (lambda));
}
double und_sol_ e ex_d(double x, double y, in , in j, double lambda) {
double x e [3] = {0, 1, cx};
double y e [3] = {0, 0, cy};
in nx = ( + 1) % 3;
in p = ( + 2) % 3;
double x = x e [ ];
double y = y e [ ];
double nx _[2] = {x e [nx ] - x , y e [nx ] - y };
double p _[2] = {x e [p ] - x , y e [p ] - y };
double cu _[2] = {x - x , y - y };
eal_1d_a ay nx , p , cu ;
nx .se con en (2, nx _);
p .se con en (2, p _);
cu .se con en (2, cu _);
double hmx = a an2( p [1], p [0]) - a an2( nx [1], nx [0]);
i ( hmx < 0) {
hmx += 2 * M_PI;
}
i ( hmx > 2 * M_PI) {
hmx -= 2 * M_PI;
}
double h = a an2( cu [1], cu [0]) - a an2( nx [1], nx [0]);
i ( h < 0) {
h += 2 * M_PI;
}
i ( h > 2 * M_PI) {
h -= 2 * M_PI;
}
double = no m( cu );
double alpha = M_PI * (j + 1) / hmx;
double sl = sq (lambda);
39
e u n boos ::ma h::cyl_bessel_j(alpha, sl * ) * sin(alpha * h);
}
// Gene a es sou ce poin s: ‘ns‘ pe side and an adi ional ‘nex a‘
// si ua ed a ound he op e ex. ‘nex a‘ should be odd.
eal_2d_a ay gen_sou ces(in ns, in nex a) {
double be a = 0.01;
eal_2d_a ay sou ces;
sou ces.se leng h(3 * ns + nex a, 2);
double x e [3] = {0, 1, cx};
double y e [3] = {0, 0, cy};
o (in =0; <3;++ ){
eal_1d_a ay cu , nx ;
double cu _[2] = {x e [ ], y e [ ]};
cu .se con en (2, cu _);
in nx = ( + 1) % 3;
double nx _[2] = {x e [nx ], y e [nx ]};
nx .se con en (2, nx _);
o (in i = 0; i < ns; ++i) {
double a = 0.5 * (1.0 - cos(double(i + 1) * M_PI / double(ns)));
eal_1d_a ay p = cu * (1.0 - a ) + nx * a ;
eal_1d_a ay ec = nx - cu ;
ec = ec / no m( ec);
double pe p_[2] = { ec[1], - ec[0]};
eal_1d_a ay pe p;
pe p.se con en (2, pe p_);
o (in c=0;c<2;++c){
sou ces( * ns + i, c) = p [c] + be a * pe p[c];
}
}
}
o (in i = 0; i < nex a; ++i) {
sou ces(3 * ns + i, 0) = cx + (double(i) - (nex a - 1) / 2) * 0.02;
sou ces(3 * ns + i, 1) = cy + 0.1;
}
e u n sou ces;
}
// Gene a es ‘ni‘ in e io poin s a andom.
40
[Pa 80] B. N. Pa le . The Symme ic Eigen alue P oblem. Classics in Applied Ma hema ics. Socie y o
Indus ial and Applied Ma hema ics, 1980.
[Rel40] F. Rellich. Da s ellung de Eigenwe e on ∆u+λu = 0 du ch ein Randin eg al. Ma h. Z.,
46:635–636, 1940.
[Tuc11] W. Tucke . Valida ed nume ics: a sho in oduc ion o igo ous compu a ions. P ince on Uni-
e si y P ess, 2011.
[ dBS88] M. an den Be g and S. S isa kuna ajah. Hea equa ion o a egion in R2wi h a polygonal
bounda y. J. London Ma h. Soc. (2), 37(1):119–127, 1988.
[Zel09] S. Zeldi ch. In e se spec al p oblem o analy ic domains. II. Z2-symme ic domains. Ann. o
Ma h. (2), 170(1):205–269, 2009.
47