图32道路上不同位置的照明强度 Cmin subs(x Xm, c) Cmin:=18.24392572 lve(s[1]=s[2],x,0.s) Xe:=9003061731 dX:=335237405 十分有趣的是,X点的位置不同于两盏灯照明强度相等的ce点的位置 对于这个数值例子,我们也能够直接确定点X.我们可以把命令8ve应用于方程(32)以得 到整系数12次多项式的代数根.有若干实数解在两个光源之间 Rootof(56.z12+1760z1-411975z10+2431500z-886167750.2 +2296007-3814507026+4698607002-3766588483 +1806761179550002 3823601887722-316406250002+316406250000 select(t-> type(t, numeric) and t>o and t<s [allvalues(")]) 0248997038,9.38299136,1997669581
第三章道路照明问题 MAPLE给出了三个极值,还需要确定哪一个是极小值 >map〔t→> if subs(x=t,diff(dc,x))<0 then max else min fi, " 沉c,m,ma map(t - subs(x =t, C),"); 8198104008,1824392572,8447655488 正如所看到的那样关于X得到了同样的结果,即x=9.338299136.要注意最大照明强度的点的位 置靠近两个光源,但不是在它们的正下方 33改变h2以极大化照明强度 在这一节我们使用与上一节相同的数值,但把第二个光源的高度作为变量,以极大化点X的 照明强度.因此C(x,h2)是两个变量的函数 作为第一步,我们先求函数c(h2),它满足 C(a(h2),h2)=min C(,h2) 为此我们从3m]到9m]改变h2的值,同时对于每个h2的值反复求解与上一节同样的问题 h[2]:=h[2] H2 array (o. 30): array for the values of h[2] x: = array(o. 30): array for the values of x(h[2]) for i fro H2[i]:=3+6*1/30 x[i] = fsolve(subs(h[2]=H2[i], dc) H2 convert(H2, list) X: convert(x, list): 图33是函数x(h2)的图形,它是由如下的命令得到的 >plot(zip((h2,x)->[h2,x],H2,x),3.9) 我们将把C(x,h2)绘制成三维图,同时把空间曲线C(z(h2),h2)也画在图上,这条线上的点 都具有最小的照明度.正如我们所想象的那样,这条空间曲线位于C(zx,h2)的谷底 >Cu:=[seq([X[釘,班2[订,f(X[i,班2[订)],1=1..31)] with(plots): PLI spacecurve(Cu, thickness 2) >PL2:plot3d(auba(h[2]=h2,c),x=-8/2..3*s/2,h2=3.9 >display((PL1, PL2) 第二步我们求出曲线x(h2)上最大照明度的点.这个点在函数C(x,h2)的稳定点当中,也就 是说在函数C(x,h2)的梯度等于零的点当中
图33最小照明点x的坐标,3≤h2≤9 with (linalg >g:=grad(C,[x,h[2]]); 25+x2)5/2-4500 h2(-40+2 30000 )5/2 >so1:= fsolve({g[1]=0,g[2]=0},{x,h[2】} 二 Sol:={x=9503151310,h2=7422392890} 为了检验这个解是最大的,我们观察函数C(x,h2)的 Hessian矩阵在上述点的特征值 H: subs(Sol, hessian(C, [x, h[2]])); 1.056539134-.1793442077 H 179344207 536310107 >eigenvalu(h) 2777372198,1.080645343 特征值的不同的符号告诉我们这个点是函数的鞍点.因为H[1,1=02C/0x2÷1.06>0这个点在 方向上有极小值,同时因为H[22]=a2C/∂H÷-0.25<0该点在k2方向有极大值,因此我们 找到了所求的点,即在所有最小照明点(x(h2),O)当中照明度最大的点 注意到在这个数值例子中我们能够关于h2解析地求解第二个方程g=0
第三章道路照明问题 图34照明函数C(x,h2) >{ solve(g[2]=0,h[2])}; {-√2(-20+x),√2(-20+x)} 这意味着这个解给出了第二个灯的最优高度,投射角度a2由下面计算给出 tan (alpha[2])= normal("[11/(s-x)); evalf(arctan(rhs("))) 6154797085 evalf(convert(", degrees)) 或∝2=35°15518208″ 34照明优化 道路上的照明均匀是非常重要的.这个问题使用点光源是不能够解决的.我们将总是在光源 下方得到最大的照明而在它们之间某处的照明最小.但是对于给定亮度和给定间隔的光源,我们 能够通过调整光源的高度来使最小照明强度的点的照明强度达到最大.这一节我们将考虑这个问
S Barton, D. Gruntz 整个照明情况现在是一个三个变量的函数C(x,h1,h2).与低维的情况一样,最低照明度的点 仍然是由C的梯度的根确定.我们试图求出它的通解;在 MAPLE中这意味着没有指定我们在数 值例子中使用的变量 >P[1]:=P[1]:P[2]:=P[2]):h[1]:=)h[1] >h[2]:=h[2] >g:=grad(C,[x,h[1],h[2]1); Pi h 3P2h2(-2s+ PI 0=-3(m2+2-22+(6-2)9(2+2=3(12+2y P2 (h2+(s-a)2)3/2~3 P2h22 MAPLE不能够解析地求出方程g=0的根.然而我们能够关于h1求解第二个方程,关于h2求解 第三个方程 >sh1:={ solve(g[2]=0,h[1])} >ah2:-{aove(g[3]-0,h[2])} 我们只对正值感兴趣,因为负值解意味着光源从下面照明道路,这是十分罕见的 >ho[1]:=sh1[2] >ho[2]:=sh2[2]; ho2 注意到每个灯的最优高度不依赖于光源的亮度.这个结果定义了一个几何!因此投射角的计算与 33节的计算相同,也就是说 tan a1 tan g2 2 a1=a2=35°1551.8028 把最优高度带入g1我们能够求出所有的解.我们把实解赋值给变量Xo,因为只有它有实际意 >Q:aubs(h[1]=ho[1],h[2]-ho[2],g[1]) 4P1x2√32P2(s-x)√3(-2s+2x) 9(x2)5/ ((s-g)2)5/2 G: simplify(Q, symbolic); G:=4(Bs-3B“2x+3B82-B3-B2)√3