matrix.log 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227
  1. Codemist Standard Lisp 3.54 for DEC Alpha: May 23 1994
  2. Dump file created: Mon May 23 10:39:11 1994
  3. REDUCE 3.5, 15-Oct-93 ...
  4. Memory allocation: 6023424 bytes
  5. +++ About to read file ndotest.red
  6. % Tests of eigenfunction/eigenvalue code.
  7. v := mat((1,1,-1,1,0),(1,2,-1,0,1),(-1,2,3,-1,0),
  8. (1,-2,1,2,-1),(2,1,-1,3,0))$
  9. mateigen(v,et);
  10. {{et - 2,
  11. 1,
  12. [ 0 ]
  13. [ ]
  14. [ 0 ]
  15. [ ]
  16. [arbcomplex(1)]
  17. [ ]
  18. [arbcomplex(1)]
  19. [ ]
  20. [arbcomplex(1)]
  21. },
  22. 4 3 2
  23. {et - 6*et + 13*et + 5*et - 5,
  24. 1,
  25. [ 5*arbcomplex(2)*(et - 2) ]
  26. [ ---------------------------- ]
  27. [ 3 2 ]
  28. [ 2*et - 10*et + 23*et + 5 ]
  29. [ ]
  30. [ 2 ]
  31. [ arbcomplex(2)*et*( - et + 6*et - 8) ]
  32. [--------------------------------------]
  33. [ 3 2 ]
  34. [ 2*et - 10*et + 23*et + 5 ]
  35. [ ]
  36. [ arbcomplex(2)*et*( - 3*et + 7) ]
  37. [ -------------------------------- ]
  38. [ 3 2 ]
  39. [ 2*et - 10*et + 23*et + 5 ]
  40. [ ]
  41. [ 3 2 ]
  42. [ arbcomplex(2)*(et - 4*et + 10) ]
  43. [ ---------------------------------- ]
  44. [ 3 2 ]
  45. [ 2*et - 10*et + 23*et + 5 ]
  46. [ ]
  47. [ arbcomplex(2) ]
  48. }}
  49. eigv := third first ws$
  50. % Now check if the equation for the eigenvectors is fulfilled. Note
  51. % that also the last component is zero due to the eigenvalue equation.
  52. v*eigv-et*eigv;
  53. [ 0 ]
  54. [ ]
  55. [ 0 ]
  56. [ ]
  57. [arbcomplex(1)*( - et + 2)]
  58. [ ]
  59. [arbcomplex(1)*( - et + 2)]
  60. [ ]
  61. [arbcomplex(1)*( - et + 2)]
  62. % Example of degenerate eigenvalues.
  63. u := mat((2,-1,1),(0,1,1),(-1,1,1))$
  64. mateigen(u,eta);
  65. {{eta - 1,2,
  66. [arbcomplex(3)]
  67. [ ]
  68. [arbcomplex(3)]
  69. [ ]
  70. [ 0 ]
  71. },
  72. {eta - 2,1,
  73. [ 0 ]
  74. [ ]
  75. [arbcomplex(4)]
  76. [ ]
  77. [arbcomplex(4)]
  78. }}
  79. % Example of a fourfold degenerate eigenvalue with two corresponding
  80. % eigenvectors.
  81. w := mat((1,-1,1,-1),(-3,3,-5,4),(8,-4,3,-4),
  82. (15,-10,11,-11))$
  83. mateigen(w,al);
  84. {{al + 1,
  85. 4,
  86. [ arbcomplex(5) ]
  87. [ --------------- ]
  88. [ 5 ]
  89. [ ]
  90. [ - 5*arbcomplex(6) + 7*arbcomplex(5) ]
  91. [--------------------------------------]
  92. [ 5 ]
  93. [ ]
  94. [ arbcomplex(5) ]
  95. [ ]
  96. [ arbcomplex(6) ]
  97. }}
  98. eigw := third first ws;
  99. [ arbcomplex(5) ]
  100. [ --------------- ]
  101. [ 5 ]
  102. [ ]
  103. [ - 5*arbcomplex(6) + 7*arbcomplex(5) ]
  104. eigw := [--------------------------------------]
  105. [ 5 ]
  106. [ ]
  107. [ arbcomplex(5) ]
  108. [ ]
  109. [ arbcomplex(6) ]
  110. w*eigw - al*eigw;
  111. - arbcomplex(5)*(al + 1)
  112. mat((---------------------------),
  113. 5
  114. ((5*arbcomplex(6)*al + 5*arbcomplex(6) - 7*arbcomplex(5)*al
  115. - 7*arbcomplex(5))/5),
  116. ( - arbcomplex(5)*(al + 1)),
  117. ( - arbcomplex(6)*(al + 1)))
  118. % Calculate the eigenvectors and eigenvalue equation.
  119. f := mat((0,ex,ey,ez),(-ex,0,bz,-by),(-ey,-bz,0,bx),
  120. (-ez,by,-bx,0))$
  121. factor om;
  122. mateigen(f,om);
  123. 4 2 2 2 2 2 2 2 2 2
  124. {{om + om *(bx + by + bz + ex + ey + ez ) + bx *ex
  125. 2 2
  126. + 2*bx*by*ex*ey + 2*bx*bz*ex*ez + by *ey + 2*by*bz*ey*ez
  127. 2 2
  128. + bz *ez ,
  129. 1,
  130. 2
  131. mat(((om *arbcomplex(7)*ez + om*arbcomplex(7)*(bx*ey - by*ex)
  132. 3
  133. + arbcomplex(7)*bz*(bx*ex + by*ey + bz*ez))/(om
  134. 2 2 2
  135. + om*(bz + ex + ey ))),
  136. 2
  137. (( - om *arbcomplex(7)*by + om*arbcomplex(7)*(bx*bz - ex*ez)
  138. 3
  139. - arbcomplex(7)*ey*(bx*ex + by*ey + bz*ez))/(om
  140. 2 2 2
  141. + om*(bz + ex + ey ))),
  142. 2
  143. ((om *arbcomplex(7)*bx + om*arbcomplex(7)*(by*bz - ey*ez)
  144. 3
  145. + arbcomplex(7)*ex*(bx*ex + by*ey + bz*ez))/(om
  146. 2 2 2
  147. + om*(bz + ex + ey ))),
  148. (arbcomplex(7)))
  149. }}
  150. % Specialize to perpendicular electric and magnetic field.
  151. let ez=0,ex=0,by=0;
  152. % Note that we find two eigenvectors to the double eigenvalue 0
  153. % (as it must be).
  154. mateigen(f,om);
  155. {{om,
  156. 2,
  157. [ arbcomplex(9)*bx - arbcomplex(8)*bz ]
  158. [-------------------------------------]
  159. [ ey ]
  160. [ ]
  161. [ arbcomplex(8) ]
  162. [ ]
  163. [ 0 ]
  164. [ ]
  165. [ arbcomplex(9) ]
  166. },
  167. 2 2 2 2
  168. {om + bx + bz + ey ,
  169. 1,
  170. [ - arbcomplex(10)*ey ]
  171. [ ---------------------- ]
  172. [ bx ]
  173. [ ]
  174. [ - arbcomplex(10)*bz ]
  175. [ ---------------------- ]
  176. [ bx ]
  177. [ ]
  178. [ 2 2 2 ]
  179. [ arbcomplex(10)*(bx + bz + ey ) ]
  180. [----------------------------------]
  181. [ om*bx ]
  182. [ ]
  183. [ arbcomplex(10) ]
  184. }}
  185. % The following has 1 as a double eigenvalue. The corresponding
  186. % eigenvector must involve two arbitrary constants.
  187. j := mat((9/8,1/4,-sqrt(3)/8),
  188. (1/4,3/2,-sqrt(3)/4),
  189. (-sqrt(3)/8,-sqrt(3)/4,11/8));
  190. [ 9 1 - sqrt(3) ]
  191. [ --- --- ------------]
  192. [ 8 4 8 ]
  193. [ ]
  194. [ 1 3 - sqrt(3) ]
  195. j := [ --- --- ------------]
  196. [ 4 2 4 ]
  197. [ ]
  198. [ - sqrt(3) - sqrt(3) 11 ]
  199. [------------ ------------ ---- ]
  200. [ 8 4 8 ]
  201. mateigen(j,x);
  202. {{x - 1,
  203. 2,
  204. [sqrt(3)*arbcomplex(12) - 2*arbcomplex(11)]
  205. [ ]
  206. [ arbcomplex(11) ]
  207. [ ]
  208. [ arbcomplex(12) ]
  209. },
  210. {x - 2,
  211. 1,
  212. [ - sqrt(3)*arbcomplex(13) ]
  213. [ --------------------------- ]
  214. [ 3 ]
  215. [ ]
  216. [ - 2*sqrt(3)*arbcomplex(13) ]
  217. [-----------------------------]
  218. [ 3 ]
  219. [ ]
  220. [ arbcomplex(13) ]
  221. }}
  222. % The following is a good consistency check.
  223. sym := mat(
  224. (0, 1/2, 1/(2*sqrt(2)), 0, 0),
  225. (1/2, 0, 1/(2*sqrt(2)), 0, 0),
  226. (1/(2*sqrt(2)), 1/(2*sqrt(2)), 0, 1/2, 1/2),
  227. (0, 0, 1/2, 0, 0),
  228. (0, 0, 1/2, 0, 0))$
  229. ans := mateigen(sym,eta);
  230. ans := {{eta,
  231. 1,
  232. [ 0 ]
  233. [ ]
  234. [ 0 ]
  235. [ ]
  236. [ 0 ]
  237. [ ]
  238. [ - arbcomplex(14)]
  239. [ ]
  240. [ arbcomplex(14) ]
  241. },
  242. {eta - 1,
  243. 1,
  244. [ 2*arbcomplex(15) ]
  245. [------------------]
  246. [ sqrt(2) ]
  247. [ ]
  248. [ 2*arbcomplex(15) ]
  249. [------------------]
  250. [ sqrt(2) ]
  251. [ ]
  252. [ 2*arbcomplex(15) ]
  253. [ ]
  254. [ arbcomplex(15) ]
  255. [ ]
  256. [ arbcomplex(15) ]
  257. },
  258. {2*eta + 1,
  259. 1,
  260. [ - arbcomplex(16)]
  261. [ ]
  262. [ arbcomplex(16) ]
  263. [ ]
  264. [ 0 ]
  265. [ ]
  266. [ 0 ]
  267. [ ]
  268. [ 0 ]
  269. },
  270. 2
  271. {4*eta + 2*eta - 1,
  272. 1,
  273. [ - arbcomplex(17) ]
  274. [ ------------------- ]
  275. [ 2*sqrt(2)*eta ]
  276. [ ]
  277. [ - arbcomplex(17) ]
  278. [ ------------------- ]
  279. [ 2*sqrt(2)*eta ]
  280. [ ]
  281. [ arbcomplex(17)*( - 2*eta + 1) ]
  282. [-------------------------------]
  283. [ 2*eta ]
  284. [ ]
  285. [ arbcomplex(17) ]
  286. [ ]
  287. [ arbcomplex(17) ]
  288. }}
  289. % Check of correctness for this example.
  290. for each j in ans do
  291. for each k in solve(first j,eta) do
  292. write sub(k,sym*third j - eta*third j);
  293. [0]
  294. [ ]
  295. [0]
  296. [ ]
  297. [0]
  298. [ ]
  299. [0]
  300. [ ]
  301. [0]
  302. [0]
  303. [ ]
  304. [0]
  305. [ ]
  306. [0]
  307. [ ]
  308. [0]
  309. [ ]
  310. [0]
  311. [0]
  312. [ ]
  313. [0]
  314. [ ]
  315. [0]
  316. [ ]
  317. [0]
  318. [ ]
  319. [0]
  320. [0]
  321. [ ]
  322. [0]
  323. [ ]
  324. [0]
  325. [ ]
  326. [0]
  327. [ ]
  328. [0]
  329. [0]
  330. [ ]
  331. [0]
  332. [ ]
  333. [0]
  334. [ ]
  335. [0]
  336. [ ]
  337. [0]
  338. % Tests of nullspace operator.
  339. a1 := mat((1,2,3,4),(5,6,7,8));
  340. [1 2 3 4]
  341. a1 := [ ]
  342. [5 6 7 8]
  343. nullspace a1;
  344. {
  345. [ 1 ]
  346. [ ]
  347. [ 0 ]
  348. [ ]
  349. [ - 3]
  350. [ ]
  351. [ 2 ]
  352. ,
  353. [ 0 ]
  354. [ ]
  355. [ 1 ]
  356. [ ]
  357. [ - 2]
  358. [ ]
  359. [ 1 ]
  360. }
  361. b1 := {{1,2,3,4},{5,6,7,8}};
  362. b1 := {{1,2,3,4},{5,6,7,8}}
  363. nullspace b1;
  364. {{1,0,-3,2},{0,1,-2,1}}
  365. % Example taken from a bug report for another CA system.
  366. c1 :=
  367. {{(p1**2*(p1**2 + p2**2 + p3**2 - s*z - z**2))/(p1**2 + p3**2), 0,
  368. (p1*p3*(p1**2 + p2**2 + p3**2 - s*z - z**2))/(p1**2 + p3**2),
  369. -((p1**2*p2*(s + z))/(p1**2 + p3**2)), p1*(s + z),
  370. -((p1*p2*p3*(s + z))/(p1**2 + p3**2)),
  371. -((p1*p3*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)), 0,
  372. (p1**2*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)},
  373. {0, 0, 0, 0, 0, 0, 0, 0, 0},
  374. {(p1*p3*(p1**2 + p2**2 + p3**2 - s*z - z**2))/(p1**2 + p3**2), 0,
  375. (p3**2*(p1**2 + p2**2 + p3**2 - s*z - z**2))/(p1**2 + p3**2),
  376. -((p1*p2*p3*(s + z))/(p1**2 + p3**2)), p3*(s + z),
  377. -((p2*p3**2*(s + z))/(p1**2 + p3**2)),
  378. -((p3**2*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)), 0,
  379. (p1*p3*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)},
  380. {-((p1**2*p2*(s + z))/(p1**2 + p3**2)), 0,
  381. -((p1*p2*p3*(s + z))/(p1**2 + p3**2)),
  382. -((p1**2*p2**2*(s + 2*z))/((p1**2 + p3**2)*z)), (p1*p2*(s + 2*z))/z,
  383. -((p1*p2**2*p3*(s + 2*z))/((p1**2 + p3**2)*z)),
  384. -((p1*p2*p3*z)/(p1**2 + p3**2)), 0, (p1**2*p2*z)/(p1**2 + p3**2)},
  385. {p1*(s + z), 0, p3*(s + z), (p1*p2*(s + 2*z))/z,
  386. -(((p1**2+p3**2)*(s+ 2*z))/z), (p2*p3*(s + 2*z))/z, p3*z,0, -(p1*z)},
  387. {-((p1*p2*p3*(s + z))/(p1**2 + p3**2)), 0,
  388. -((p2*p3**2*(s + z))/(p1**2 + p3**2)),
  389. -((p1*p2**2*p3*(s + 2*z))/((p1**2 + p3**2)*z)), (p2*p3*(s + 2*z))/z,
  390. -((p2**2*p3**2*(s + 2*z))/((p1**2 + p3**2)*z)),
  391. -((p2*p3**2*z)/(p1**2 + p3**2)), 0, (p1*p2*p3*z)/(p1**2 + p3**2)},
  392. {-((p1*p3*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)), 0,
  393. -((p3**2*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)),
  394. -((p1*p2*p3*z)/(p1**2 + p3**2)),p3*z,-((p2*p3**2*z)/(p1**2 + p3**2)),
  395. -((p3**2*(p1**2 + p2**2 + p3**2)*z)/((p1**2 + p3**2)*(s + z))), 0,
  396. (p1*p3*(p1**2 + p2**2 + p3**2)*z)/((p1**2 + p3**2)*(s + z))},
  397. {0, 0, 0, 0, 0, 0, 0, 0, 0},
  398. {(p1**2*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2), 0,
  399. (p1*p3*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2),
  400. (p1**2*p2*z)/(p1**2 + p3**2), -(p1*z), (p1*p2*p3*z)/(p1**2 + p3**2),
  401. (p1*p3*(p1**2 + p2**2 + p3**2)*z)/((p1**2 + p3**2)*(s + z)), 0,
  402. -((p1**2*(p1**2 + p2**2 + p3**2)*z)/((p1**2 + p3**2)*(s + z)))}};
  403. 2 2 2 2 2
  404. p1 *(p1 + p2 + p3 - s*z - z )
  405. c1 := {{----------------------------------,
  406. 2 2
  407. p1 + p3
  408. 0,
  409. 2 2 2 2
  410. p1*p3*(p1 + p2 + p3 - s*z - z )
  411. ------------------------------------,
  412. 2 2
  413. p1 + p3
  414. 2
  415. - p1 *p2*(s + z)
  416. -------------------,
  417. 2 2
  418. p1 + p3
  419. p1*(s + z),
  420. - p1*p2*p3*(s + z)
  421. ---------------------,
  422. 2 2
  423. p1 + p3
  424. 2 2 2
  425. - p1*p3*(p1 + p2 + p3 )
  426. ----------------------------,
  427. 2 2
  428. p1 + p3
  429. 0,
  430. 2 2 2 2
  431. p1 *(p1 + p2 + p3 )
  432. -----------------------},
  433. 2 2
  434. p1 + p3
  435. {0,0,0,0,0,0,0,0,0},
  436. 2 2 2 2
  437. p1*p3*(p1 + p2 + p3 - s*z - z )
  438. {------------------------------------,
  439. 2 2
  440. p1 + p3
  441. 0,
  442. 2 2 2 2 2
  443. p3 *(p1 + p2 + p3 - s*z - z )
  444. ----------------------------------,
  445. 2 2
  446. p1 + p3
  447. - p1*p2*p3*(s + z)
  448. ---------------------,
  449. 2 2
  450. p1 + p3
  451. p3*(s + z),
  452. 2
  453. - p2*p3 *(s + z)
  454. -------------------,
  455. 2 2
  456. p1 + p3
  457. 2 2 2 2
  458. - p3 *(p1 + p2 + p3 )
  459. --------------------------,
  460. 2 2
  461. p1 + p3
  462. 0,
  463. 2 2 2
  464. p1*p3*(p1 + p2 + p3 )
  465. -------------------------},
  466. 2 2
  467. p1 + p3
  468. 2
  469. - p1 *p2*(s + z)
  470. {-------------------,
  471. 2 2
  472. p1 + p3
  473. 0,
  474. - p1*p2*p3*(s + z)
  475. ---------------------,
  476. 2 2
  477. p1 + p3
  478. 2 2
  479. p1 *p2 *( - s - 2*z)
  480. ----------------------,
  481. 2 2
  482. z*(p1 + p3 )
  483. p1*p2*(s + 2*z)
  484. -----------------,
  485. z
  486. 2
  487. p1*p2 *p3*( - s - 2*z)
  488. ------------------------,
  489. 2 2
  490. z*(p1 + p3 )
  491. - p1*p2*p3*z
  492. ---------------,
  493. 2 2
  494. p1 + p3
  495. 0,
  496. 2
  497. p1 *p2*z
  498. -----------},
  499. 2 2
  500. p1 + p3
  501. {p1*(s + z),
  502. 0,
  503. p3*(s + z),
  504. p1*p2*(s + 2*z)
  505. -----------------,
  506. z
  507. 2 2 2 2
  508. - p1 *s - 2*p1 *z - p3 *s - 2*p3 *z
  509. --------------------------------------,
  510. z
  511. p2*p3*(s + 2*z)
  512. -----------------,
  513. z
  514. p3*z,
  515. 0,
  516. - p1*z},
  517. - p1*p2*p3*(s + z)
  518. {---------------------,
  519. 2 2
  520. p1 + p3
  521. 0,
  522. 2
  523. - p2*p3 *(s + z)
  524. -------------------,
  525. 2 2
  526. p1 + p3
  527. 2
  528. p1*p2 *p3*( - s - 2*z)
  529. ------------------------,
  530. 2 2
  531. z*(p1 + p3 )
  532. p2*p3*(s + 2*z)
  533. -----------------,
  534. z
  535. 2 2
  536. p2 *p3 *( - s - 2*z)
  537. ----------------------,
  538. 2 2
  539. z*(p1 + p3 )
  540. 2
  541. - p2*p3 *z
  542. -------------,
  543. 2 2
  544. p1 + p3
  545. 0,
  546. p1*p2*p3*z
  547. ------------},
  548. 2 2
  549. p1 + p3
  550. 2 2 2
  551. - p1*p3*(p1 + p2 + p3 )
  552. {----------------------------,
  553. 2 2
  554. p1 + p3
  555. 0,
  556. 2 2 2 2
  557. - p3 *(p1 + p2 + p3 )
  558. --------------------------,
  559. 2 2
  560. p1 + p3
  561. - p1*p2*p3*z
  562. ---------------,
  563. 2 2
  564. p1 + p3
  565. p3*z,
  566. 2
  567. - p2*p3 *z
  568. -------------,
  569. 2 2
  570. p1 + p3
  571. 2 2 2 2
  572. - p3 *z*(p1 + p2 + p3 )
  573. -------------------------------,
  574. 2 2 2 2
  575. p1 *s + p1 *z + p3 *s + p3 *z
  576. 0,
  577. 2 2 2
  578. p1*p3*z*(p1 + p2 + p3 )
  579. -------------------------------},
  580. 2 2 2 2
  581. p1 *s + p1 *z + p3 *s + p3 *z
  582. {0,0,0,0,0,0,0,0,0},
  583. 2 2 2 2
  584. p1 *(p1 + p2 + p3 )
  585. {-----------------------,
  586. 2 2
  587. p1 + p3
  588. 0,
  589. 2 2 2
  590. p1*p3*(p1 + p2 + p3 )
  591. -------------------------,
  592. 2 2
  593. p1 + p3
  594. 2
  595. p1 *p2*z
  596. -----------,
  597. 2 2
  598. p1 + p3
  599. - p1*z,
  600. p1*p2*p3*z
  601. ------------,
  602. 2 2
  603. p1 + p3
  604. 2 2 2
  605. p1*p3*z*(p1 + p2 + p3 )
  606. -------------------------------,
  607. 2 2 2 2
  608. p1 *s + p1 *z + p3 *s + p3 *z
  609. 0,
  610. 2 2 2 2
  611. - p1 *z*(p1 + p2 + p3 )
  612. -------------------------------}}
  613. 2 2 2 2
  614. p1 *s + p1 *z + p3 *s + p3 *z
  615. nullspace c1;
  616. - p1
  617. {{1,0,-------,0,0,0,0,0,0},
  618. p3
  619. {0,1,0,0,0,0,0,0,0},
  620. - p1
  621. {0,0,0,1,0,-------,0,0,0},
  622. p3
  623. 2 2
  624. p1 + p3
  625. {0,0,0,0,1,-----------,0,0,0},
  626. p2*p3
  627. p3
  628. {0,0,0,0,0,0,1,0,----},
  629. p1
  630. {0,0,0,0,0,0,0,1,0}}
  631. d1 := mat
  632. (((p1**2*(p1**2 + p2**2 + p3**2 - s*z - z**2))/(p1**2 + p3**2), 0,
  633. (p1*p3*(p1**2 + p2**2 + p3**2 - s*z - z**2))/(p1**2 + p3**2),
  634. -((p1**2*p2*(s + z))/(p1**2 + p3**2)), p1*(s + z),
  635. -((p1*p2*p3*(s + z))/(p1**2 + p3**2)),
  636. -((p1*p3*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)), 0,
  637. (p1**2*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)),
  638. (0, 0, 0, 0, 0, 0, 0, 0, 0),
  639. ((p1*p3*(p1**2 + p2**2 + p3**2 - s*z - z**2))/(p1**2 + p3**2), 0,
  640. (p3**2*(p1**2 + p2**2 + p3**2 - s*z - z**2))/(p1**2 + p3**2),
  641. -((p1*p2*p3*(s + z))/(p1**2 + p3**2)), p3*(s + z),
  642. -((p2*p3**2*(s + z))/(p1**2 + p3**2)),
  643. -((p3**2*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)), 0,
  644. (p1*p3*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)),
  645. ( ((p1**2*p2*(s + z))/(p1**2 + p3**2)), 0,
  646. -((p1*p2*p3*(s + z))/(p1**2 + p3**2)),
  647. -((p1**2*p2**2*(s + 2*z))/((p1**2 + p3**2)*z)), (p1*p2*(s + 2*z))/z,
  648. -((p1*p2**2*p3*(s + 2*z))/((p1**2 + p3**2)*z)),
  649. -((p1*p2*p3*z)/(p1**2 + p3**2)), 0, (p1**2*p2*z)/(p1**2 + p3**2)),
  650. (p1*(s + z), 0, p3*(s + z), (p1*p2*(s + 2*z))/z,
  651. -(((p1**2 + p3**2)*(s + 2*z))/z),(p2*p3*(s + 2*z))/z,p3*z,0,-(p1*z)),
  652. (-((p1*p2*p3*(s + z))/(p1**2 + p3**2)), 0,
  653. -((p2*p3**2*(s + z))/(p1**2 + p3**2)),
  654. -((p1*p2**2*p3*(s + 2*z))/((p1**2 + p3**2)*z)), (p2*p3*(s + 2*z))/z,
  655. -((p2**2*p3**2*(s + 2*z))/((p1**2 + p3**2)*z)),
  656. -((p2*p3**2*z)/(p1**2 + p3**2)), 0, (p1*p2*p3*z)/(p1**2 + p3**2)),
  657. (-((p1*p3*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)), 0,
  658. -((p3**2*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2)),
  659. -((p1*p2*p3*z)/(p1**2 + p3**2)),p3*z,-((p2*p3**2*z)/(p1**2 + p3**2)),
  660. -((p3**2*(p1**2 + p2**2 + p3**2)*z)/((p1**2 + p3**2)*(s + z))), 0,
  661. (p1*p3*(p1**2 + p2**2 + p3**2)*z)/((p1**2 + p3**2)*(s + z))),
  662. (0, 0, 0, 0, 0, 0, 0, 0, 0),
  663. ((p1**2*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2), 0,
  664. (p1*p3*(p1**2 + p2**2 + p3**2))/(p1**2 + p3**2),
  665. (p1**2*p2*z)/(p1**2 + p3**2), -(p1*z), (p1*p2*p3*z)/(p1**2 + p3**2),
  666. (p1*p3*(p1**2 + p2**2 + p3**2)*z)/((p1**2 + p3**2)*(s + z)), 0,
  667. -((p1**2*(p1**2 + p2**2 + p3**2)*z)/((p1**2 + p3**2)*(s + z)))));
  668. 2 2 2 2 2
  669. p1 *(p1 + p2 + p3 - s*z - z )
  670. d1 := mat((----------------------------------,0,
  671. 2 2
  672. p1 + p3
  673. 2 2 2 2 2
  674. p1*p3*(p1 + p2 + p3 - s*z - z ) - p1 *p2*(s + z)
  675. ------------------------------------,-------------------,
  676. 2 2 2 2
  677. p1 + p3 p1 + p3
  678. - p1*p2*p3*(s + z)
  679. p1*(s + z),---------------------,
  680. 2 2
  681. p1 + p3
  682. 2 2 2 2 2 2 2
  683. - p1*p3*(p1 + p2 + p3 ) p1 *(p1 + p2 + p3 )
  684. ----------------------------,0,-----------------------),
  685. 2 2 2 2
  686. p1 + p3 p1 + p3
  687. (0,0,0,0,0,0,0,0,0),
  688. 2 2 2 2
  689. p1*p3*(p1 + p2 + p3 - s*z - z )
  690. (------------------------------------,0,
  691. 2 2
  692. p1 + p3
  693. 2 2 2 2 2
  694. p3 *(p1 + p2 + p3 - s*z - z ) - p1*p2*p3*(s + z)
  695. ----------------------------------,---------------------,
  696. 2 2 2 2
  697. p1 + p3 p1 + p3
  698. 2 2 2 2 2
  699. - p2*p3 *(s + z) - p3 *(p1 + p2 + p3 )
  700. p3*(s + z),-------------------,--------------------------,
  701. 2 2 2 2
  702. p1 + p3 p1 + p3
  703. 2 2 2
  704. p1*p3*(p1 + p2 + p3 )
  705. 0,-------------------------),
  706. 2 2
  707. p1 + p3
  708. 2
  709. p1 *p2*(s + z) - p1*p2*p3*(s + z)
  710. (----------------,0,---------------------,
  711. 2 2 2 2
  712. p1 + p3 p1 + p3
  713. 2 2
  714. p1 *p2 *( - s - 2*z) p1*p2*(s + 2*z)
  715. ----------------------,-----------------,
  716. 2 2 z
  717. z*(p1 + p3 )
  718. 2 2
  719. p1*p2 *p3*( - s - 2*z) - p1*p2*p3*z p1 *p2*z
  720. ------------------------,---------------,0,-----------),
  721. 2 2 2 2 2 2
  722. z*(p1 + p3 ) p1 + p3 p1 + p3
  723. p1*p2*(s + 2*z)
  724. (p1*(s + z),0,p3*(s + z),-----------------,
  725. z
  726. 2 2 2 2
  727. - p1 *s - 2*p1 *z - p3 *s - 2*p3 *z p2*p3*(s + 2*z)
  728. --------------------------------------,-----------------,
  729. z z
  730. p3*z,0, - p1*z),
  731. 2
  732. - p1*p2*p3*(s + z) - p2*p3 *(s + z)
  733. (---------------------,0,-------------------,
  734. 2 2 2 2
  735. p1 + p3 p1 + p3
  736. 2
  737. p1*p2 *p3*( - s - 2*z) p2*p3*(s + 2*z)
  738. ------------------------,-----------------,
  739. 2 2 z
  740. z*(p1 + p3 )
  741. 2 2 2
  742. p2 *p3 *( - s - 2*z) - p2*p3 *z p1*p2*p3*z
  743. ----------------------,-------------,0,------------),
  744. 2 2 2 2 2 2
  745. z*(p1 + p3 ) p1 + p3 p1 + p3
  746. 2 2 2 2 2 2 2
  747. - p1*p3*(p1 + p2 + p3 ) - p3 *(p1 + p2 + p3 )
  748. (----------------------------,0,--------------------------,
  749. 2 2 2 2
  750. p1 + p3 p1 + p3
  751. 2
  752. - p1*p2*p3*z - p2*p3 *z
  753. ---------------,p3*z,-------------,
  754. 2 2 2 2
  755. p1 + p3 p1 + p3
  756. 2 2 2 2
  757. - p3 *z*(p1 + p2 + p3 )
  758. -------------------------------,0,
  759. 2 2 2 2
  760. p1 *s + p1 *z + p3 *s + p3 *z
  761. 2 2 2
  762. p1*p3*z*(p1 + p2 + p3 )
  763. -------------------------------),
  764. 2 2 2 2
  765. p1 *s + p1 *z + p3 *s + p3 *z
  766. (0,0,0,0,0,0,0,0,0),
  767. 2 2 2 2 2 2 2
  768. p1 *(p1 + p2 + p3 ) p1*p3*(p1 + p2 + p3 )
  769. (-----------------------,0,-------------------------,
  770. 2 2 2 2
  771. p1 + p3 p1 + p3
  772. 2
  773. p1 *p2*z p1*p2*p3*z
  774. -----------, - p1*z,------------,
  775. 2 2 2 2
  776. p1 + p3 p1 + p3
  777. 2 2 2
  778. p1*p3*z*(p1 + p2 + p3 )
  779. -------------------------------,0,
  780. 2 2 2 2
  781. p1 *s + p1 *z + p3 *s + p3 *z
  782. 2 2 2 2
  783. - p1 *z*(p1 + p2 + p3 )
  784. -------------------------------))
  785. 2 2 2 2
  786. p1 *s + p1 *z + p3 *s + p3 *z
  787. nullspace d1;
  788. {
  789. [0]
  790. [ ]
  791. [1]
  792. [ ]
  793. [0]
  794. [ ]
  795. [0]
  796. [ ]
  797. [0]
  798. [ ]
  799. [0]
  800. [ ]
  801. [0]
  802. [ ]
  803. [0]
  804. [ ]
  805. [0]
  806. ,
  807. [ 0 ]
  808. [ ]
  809. [ 0 ]
  810. [ ]
  811. [ 0 ]
  812. [ ]
  813. [ 1 ]
  814. [ ]
  815. [ 0 ]
  816. [ ]
  817. [ - p1 ]
  818. [-------]
  819. [ p3 ]
  820. [ ]
  821. [ 0 ]
  822. [ ]
  823. [ 0 ]
  824. [ ]
  825. [ 0 ]
  826. ,
  827. [ 0 ]
  828. [ ]
  829. [ 0 ]
  830. [ ]
  831. [ 0 ]
  832. [ ]
  833. [ 0 ]
  834. [ ]
  835. [ 1 ]
  836. [ ]
  837. [ 2 2 ]
  838. [ p1 + p3 ]
  839. [-----------]
  840. [ p2*p3 ]
  841. [ ]
  842. [ 0 ]
  843. [ ]
  844. [ 0 ]
  845. [ ]
  846. [ 0 ]
  847. ,
  848. [ 0 ]
  849. [ ]
  850. [ 0 ]
  851. [ ]
  852. [ 0 ]
  853. [ ]
  854. [ 0 ]
  855. [ ]
  856. [ 0 ]
  857. [ ]
  858. [ 0 ]
  859. [ ]
  860. [ 1 ]
  861. [ ]
  862. [ 0 ]
  863. [ ]
  864. [ p3 ]
  865. [----]
  866. [ p1 ]
  867. ,
  868. [0]
  869. [ ]
  870. [0]
  871. [ ]
  872. [0]
  873. [ ]
  874. [0]
  875. [ ]
  876. [0]
  877. [ ]
  878. [0]
  879. [ ]
  880. [0]
  881. [ ]
  882. [1]
  883. [ ]
  884. [0]
  885. }
  886. % The following example, by Kenton Yee, was discussed extensively by
  887. % the sci.math.symbolic newsgroup.
  888. m := mat((e^(-1), e^(-1), e^(-1), e^(-1), e^(-1), e^(-1), e^(-1), 0),
  889. (1, 1, 1, 1, 1, 1, 0, 1),(1, 1, 1, 1, 1, 0, 1, 1),
  890. (1, 1, 1, 1, 0, 1, 1, 1),(1, 1, 1, 0, 1, 1, 1, 1),
  891. (1, 1, 0, 1, 1, 1, 1, 1),(1, 0, 1, 1, 1, 1, 1, 1),
  892. (0, e, e, e, e, e, e, e));
  893. [ 1 1 1 1 1 1 1 ]
  894. [--- --- --- --- --- --- --- 0]
  895. [ e e e e e e e ]
  896. [ ]
  897. [ 1 1 1 1 1 1 0 1]
  898. [ ]
  899. [ 1 1 1 1 1 0 1 1]
  900. [ ]
  901. m := [ 1 1 1 1 0 1 1 1]
  902. [ ]
  903. [ 1 1 1 0 1 1 1 1]
  904. [ ]
  905. [ 1 1 0 1 1 1 1 1]
  906. [ ]
  907. [ 1 0 1 1 1 1 1 1]
  908. [ ]
  909. [ 0 e e e e e e e]
  910. eig := mateigen(m,x);
  911. eig := {{x - 1,
  912. 3,
  913. [ 0 ]
  914. [ ]
  915. [ - arbcomplex(20)]
  916. [ ]
  917. [ - arbcomplex(19)]
  918. [ ]
  919. [ - arbcomplex(18)]
  920. [ ]
  921. [ arbcomplex(18) ]
  922. [ ]
  923. [ arbcomplex(19) ]
  924. [ ]
  925. [ arbcomplex(20) ]
  926. [ ]
  927. [ 0 ]
  928. },
  929. {x + 1,
  930. 3,
  931. arbcomplex(23)
  932. mat((----------------),
  933. e
  934. (arbcomplex(22)),
  935. (arbcomplex(21)),
  936. (( - arbcomplex(23)*e - arbcomplex(23)
  937. - 2*arbcomplex(22)*e - 2*arbcomplex(21)*e)/(2*e)),
  938. (( - arbcomplex(23)*e - arbcomplex(23)
  939. - 2*arbcomplex(22)*e - 2*arbcomplex(21)*e)/(2*e)),
  940. (arbcomplex(21)),
  941. (arbcomplex(22)),
  942. (arbcomplex(23)))
  943. },
  944. 2 2
  945. { - e *x + e*x - 6*e*x + 7*e - x,
  946. 1,
  947. 8 7 7 6
  948. mat(((6*arbcomplex(24)*(e *x + 23*e *x - 7*e + 179*e *x
  949. 6 5 5 4 4
  950. - 119*e + 565*e *x - 581*e + 768*e *x - 890*e
  951. 3 3 2 2
  952. + 565*e *x - 581*e + 179*e *x - 119*e + 23*e*x
  953. 3 8 7 7 6
  954. - 7*e + x))/(e *(e *x + 30*e *x - 7*e + 333*e *x
  955. 6 5 5 4
  956. - 168*e + 1692*e *x - 1365*e + 4023*e *x
  957. 4 3 3 2
  958. - 4368*e + 4470*e *x - 5145*e + 2663*e *x
  959. 2
  960. - 2520*e + 576*e*x - 251*e + 36*x))),
  961. 9 8 8 7
  962. ((arbcomplex(24)*(e *x + 29*e *x - 7*e + 310*e *x
  963. 7 6 6 5
  964. - 161*e + 1520*e *x - 1246*e + 3577*e *x
  965. 5 4 4 3
  966. - 3836*e + 4283*e *x - 4795*e + 2988*e *x
  967. 3 2 2
  968. - 3065*e + 978*e *x - 672*e + 132*e*x - 42*e
  969. 2 8 7 7 6
  970. + 6*x))/(e *(e *x + 30*e *x - 7*e + 333*e *x
  971. 6 5 5 4
  972. - 168*e + 1692*e *x - 1365*e + 4023*e *x
  973. 4 3 3 2
  974. - 4368*e + 4470*e *x - 5145*e + 2663*e *x
  975. 2
  976. - 2520*e + 576*e*x - 251*e + 36*x))),
  977. 9 8 8 7
  978. ((arbcomplex(24)*(e *x + 29*e *x - 7*e + 310*e *x
  979. 7 6 6 5
  980. - 161*e + 1520*e *x - 1246*e + 3577*e *x
  981. 5 4 4 3
  982. - 3836*e + 4283*e *x - 4795*e + 2988*e *x
  983. 3 2 2
  984. - 3065*e + 978*e *x - 672*e + 132*e*x - 42*e
  985. 2 8 7 7 6
  986. + 6*x))/(e *(e *x + 30*e *x - 7*e + 333*e *x
  987. 6 5 5 4
  988. - 168*e + 1692*e *x - 1365*e + 4023*e *x
  989. 4 3 3 2
  990. - 4368*e + 4470*e *x - 5145*e + 2663*e *x
  991. 2
  992. - 2520*e + 576*e*x - 251*e + 36*x))),
  993. 9 8 8 7
  994. ((arbcomplex(24)*(e *x + 29*e *x - 7*e + 310*e *x
  995. 7 6 6 5
  996. - 161*e + 1520*e *x - 1246*e + 3577*e *x
  997. 5 4 4 3
  998. - 3836*e + 4283*e *x - 4795*e + 2988*e *x
  999. 3 2 2
  1000. - 3065*e + 978*e *x - 672*e + 132*e*x - 42*e
  1001. 2 8 7 7 6
  1002. + 6*x))/(e *(e *x + 30*e *x - 7*e + 333*e *x
  1003. 6 5 5 4
  1004. - 168*e + 1692*e *x - 1365*e + 4023*e *x
  1005. 4 3 3 2
  1006. - 4368*e + 4470*e *x - 5145*e + 2663*e *x
  1007. 2
  1008. - 2520*e + 576*e*x - 251*e + 36*x))),
  1009. 9 8 8 7
  1010. ((arbcomplex(24)*(e *x + 29*e *x - 7*e + 310*e *x
  1011. 7 6 6 5
  1012. - 161*e + 1520*e *x - 1246*e + 3577*e *x
  1013. 5 4 4 3
  1014. - 3836*e + 4283*e *x - 4795*e + 2988*e *x
  1015. 3 2 2
  1016. - 3065*e + 978*e *x - 672*e + 132*e*x - 42*e
  1017. 2 8 7 7 6
  1018. + 6*x))/(e *(e *x + 30*e *x - 7*e + 333*e *x
  1019. 6 5 5 4
  1020. - 168*e + 1692*e *x - 1365*e + 4023*e *x
  1021. 4 3 3 2
  1022. - 4368*e + 4470*e *x - 5145*e + 2663*e *x
  1023. 2
  1024. - 2520*e + 576*e*x - 251*e + 36*x))),
  1025. 9 8 8 7
  1026. ((arbcomplex(24)*(e *x + 29*e *x - 7*e + 310*e *x
  1027. 7 6 6 5
  1028. - 161*e + 1520*e *x - 1246*e + 3577*e *x
  1029. 5 4 4 3
  1030. - 3836*e + 4283*e *x - 4795*e + 2988*e *x
  1031. 3 2 2
  1032. - 3065*e + 978*e *x - 672*e + 132*e*x - 42*e
  1033. 2 8 7 7 6
  1034. + 6*x))/(e *(e *x + 30*e *x - 7*e + 333*e *x
  1035. 6 5 5 4
  1036. - 168*e + 1692*e *x - 1365*e + 4023*e *x
  1037. 4 3 3 2
  1038. - 4368*e + 4470*e *x - 5145*e + 2663*e *x
  1039. 2
  1040. - 2520*e + 576*e*x - 251*e + 36*x))),
  1041. 9 8 8 7
  1042. ((arbcomplex(24)*(e *x + 29*e *x - 7*e + 310*e *x
  1043. 7 6 6 5
  1044. - 161*e + 1520*e *x - 1246*e + 3577*e *x
  1045. 5 4 4 3
  1046. - 3836*e + 4283*e *x - 4795*e + 2988*e *x
  1047. 3 2 2
  1048. - 3065*e + 978*e *x - 672*e + 132*e*x - 42*e
  1049. 2 8 7 7 6
  1050. + 6*x))/(e *(e *x + 30*e *x - 7*e + 333*e *x
  1051. 6 5 5 4
  1052. - 168*e + 1692*e *x - 1365*e + 4023*e *x
  1053. 4 3 3 2
  1054. - 4368*e + 4470*e *x - 5145*e + 2663*e *x
  1055. 2
  1056. - 2520*e + 576*e*x - 251*e + 36*x))),
  1057. (arbcomplex(24)))
  1058. }}
  1059. % Now check the eigenvectors and calculate the eigenvalues in the
  1060. % respective eigenspaces:
  1061. factor expt;
  1062. for each eispace in eig do
  1063. begin scalar eivaleq,eival,eivec;
  1064. eival := solve(first eispace,x);
  1065. for each soln in eival do
  1066. <<eival := rhs soln;
  1067. eivec := third eispace;
  1068. eivec := sub(soln,eivec);
  1069. write "eigenvalue = ", eival;
  1070. write "check of eigen equation: ",
  1071. m*eivec - eival*eivec>>
  1072. end;
  1073. eigenvalue = 1
  1074. check of eigen equation:
  1075. [0]
  1076. [ ]
  1077. [0]
  1078. [ ]
  1079. [0]
  1080. [ ]
  1081. [0]
  1082. [ ]
  1083. [0]
  1084. [ ]
  1085. [0]
  1086. [ ]
  1087. [0]
  1088. [ ]
  1089. [0]
  1090. eigenvalue = -1
  1091. check of eigen equation:
  1092. [0]
  1093. [ ]
  1094. [0]
  1095. [ ]
  1096. [0]
  1097. [ ]
  1098. [0]
  1099. [ ]
  1100. [0]
  1101. [ ]
  1102. [0]
  1103. [ ]
  1104. [0]
  1105. [ ]
  1106. [0]
  1107. 4 3 2 2
  1108. sqrt(e + 12*e + 10*e + 12*e + 1) + e + 6*e + 1
  1109. eigenvalue = ----------------------------------------------------
  1110. 2*e
  1111. check of eigen equation:
  1112. [0]
  1113. [ ]
  1114. [0]
  1115. [ ]
  1116. [0]
  1117. [ ]
  1118. [0]
  1119. [ ]
  1120. [0]
  1121. [ ]
  1122. [0]
  1123. [ ]
  1124. [0]
  1125. [ ]
  1126. [0]
  1127. 4 3 2 2
  1128. - sqrt(e + 12*e + 10*e + 12*e + 1) + e + 6*e + 1
  1129. eigenvalue = -------------------------------------------------------
  1130. 2*e
  1131. check of eigen equation:
  1132. [0]
  1133. [ ]
  1134. [0]
  1135. [ ]
  1136. [0]
  1137. [ ]
  1138. [0]
  1139. [ ]
  1140. [0]
  1141. [ ]
  1142. [0]
  1143. [ ]
  1144. [0]
  1145. [ ]
  1146. [0]
  1147. % For the special choice:
  1148. let e = -7 + sqrt 48;
  1149. % we get only 7 eigenvectors.
  1150. eig := mateigen(m,x);
  1151. eig := {{x + 1,
  1152. 4,
  1153. arbcomplex(27)
  1154. mat((----------------),
  1155. 4*sqrt(3) - 7
  1156. (arbcomplex(26)),
  1157. (arbcomplex(25)),
  1158. ((2*sqrt(3)*( - arbcomplex(27) - 2*arbcomplex(26)
  1159. - 2*arbcomplex(25)) + 3*arbcomplex(27)
  1160. + 7*arbcomplex(26) + 7*arbcomplex(25))/(4*sqrt(3) - 7
  1161. )),
  1162. ((2*sqrt(3)*( - arbcomplex(27) - 2*arbcomplex(26)
  1163. - 2*arbcomplex(25)) + 3*arbcomplex(27)
  1164. + 7*arbcomplex(26) + 7*arbcomplex(25))/(4*sqrt(3) - 7
  1165. )),
  1166. (arbcomplex(25)),
  1167. (arbcomplex(26)),
  1168. (arbcomplex(27)))
  1169. },
  1170. {x - 1,
  1171. 3,
  1172. [ 0 ]
  1173. [ ]
  1174. [ - arbcomplex(30)]
  1175. [ ]
  1176. [ - arbcomplex(29)]
  1177. [ ]
  1178. [ - arbcomplex(28)]
  1179. [ ]
  1180. [ arbcomplex(28) ]
  1181. [ ]
  1182. [ arbcomplex(29) ]
  1183. [ ]
  1184. [ arbcomplex(30) ]
  1185. [ ]
  1186. [ 0 ]
  1187. },
  1188. {x + 7,
  1189. 1,
  1190. [ arbcomplex(31) ]
  1191. [ ----------------- ]
  1192. [ 56*sqrt(3) - 97 ]
  1193. [ ]
  1194. [ - 14*sqrt(3)*arbcomplex(31) + 24*arbcomplex(31) ]
  1195. [--------------------------------------------------]
  1196. [ 168*sqrt(3) - 291 ]
  1197. [ ]
  1198. [ - 14*sqrt(3)*arbcomplex(31) + 24*arbcomplex(31) ]
  1199. [--------------------------------------------------]
  1200. [ 168*sqrt(3) - 291 ]
  1201. [ ]
  1202. [ - 14*sqrt(3)*arbcomplex(31) + 24*arbcomplex(31) ]
  1203. [--------------------------------------------------]
  1204. [ 168*sqrt(3) - 291 ]
  1205. [ ]
  1206. [ - 14*sqrt(3)*arbcomplex(31) + 24*arbcomplex(31) ]
  1207. [--------------------------------------------------]
  1208. [ 168*sqrt(3) - 291 ]
  1209. [ ]
  1210. [ - 14*sqrt(3)*arbcomplex(31) + 24*arbcomplex(31) ]
  1211. [--------------------------------------------------]
  1212. [ 168*sqrt(3) - 291 ]
  1213. [ ]
  1214. [ - 14*sqrt(3)*arbcomplex(31) + 24*arbcomplex(31) ]
  1215. [--------------------------------------------------]
  1216. [ 168*sqrt(3) - 291 ]
  1217. [ ]
  1218. [ arbcomplex(31) ]
  1219. }}
  1220. for each eispace in eig do
  1221. begin scalar eivaleq,eival,eivec;
  1222. eival := solve(first eispace,x);
  1223. for each soln in eival do
  1224. <<eival := rhs soln;
  1225. eivec := third eispace;
  1226. eivec := sub(soln,eivec);
  1227. write "eigenvalue = ", eival;
  1228. write "check of eigen equation: ",
  1229. m*eivec - eival*eivec>>
  1230. end;
  1231. eigenvalue = -1
  1232. check of eigen equation:
  1233. [0]
  1234. [ ]
  1235. [0]
  1236. [ ]
  1237. [0]
  1238. [ ]
  1239. [0]
  1240. [ ]
  1241. [0]
  1242. [ ]
  1243. [0]
  1244. [ ]
  1245. [0]
  1246. [ ]
  1247. [0]
  1248. eigenvalue = 1
  1249. check of eigen equation:
  1250. [0]
  1251. [ ]
  1252. [0]
  1253. [ ]
  1254. [0]
  1255. [ ]
  1256. [0]
  1257. [ ]
  1258. [0]
  1259. [ ]
  1260. [0]
  1261. [ ]
  1262. [0]
  1263. [ ]
  1264. [0]
  1265. eigenvalue = -7
  1266. check of eigen equation:
  1267. [0]
  1268. [ ]
  1269. [0]
  1270. [ ]
  1271. [0]
  1272. [ ]
  1273. [0]
  1274. [ ]
  1275. [0]
  1276. [ ]
  1277. [0]
  1278. [ ]
  1279. [0]
  1280. [ ]
  1281. [0]
  1282. % The same behaviour for this choice of e.
  1283. clear e;
  1284. let e = -7 - sqrt 48;
  1285. % we get only 7 eigenvectors.
  1286. eig := mateigen(m,x);
  1287. eig := {{x + 1,
  1288. 4,
  1289. - arbcomplex(34)
  1290. mat((-------------------),
  1291. 4*sqrt(3) + 7
  1292. (arbcomplex(33)),
  1293. (arbcomplex(32)),
  1294. ((2*sqrt(3)*( - arbcomplex(34) - 2*arbcomplex(33)
  1295. - 2*arbcomplex(32)) - 3*arbcomplex(34)
  1296. - 7*arbcomplex(33) - 7*arbcomplex(32))/(4*sqrt(3) + 7
  1297. )),
  1298. ((2*sqrt(3)*( - arbcomplex(34) - 2*arbcomplex(33)
  1299. - 2*arbcomplex(32)) - 3*arbcomplex(34)
  1300. - 7*arbcomplex(33) - 7*arbcomplex(32))/(4*sqrt(3) + 7
  1301. )),
  1302. (arbcomplex(32)),
  1303. (arbcomplex(33)),
  1304. (arbcomplex(34)))
  1305. },
  1306. {x - 1,
  1307. 3,
  1308. [ 0 ]
  1309. [ ]
  1310. [ - arbcomplex(37)]
  1311. [ ]
  1312. [ - arbcomplex(36)]
  1313. [ ]
  1314. [ - arbcomplex(35)]
  1315. [ ]
  1316. [ arbcomplex(35) ]
  1317. [ ]
  1318. [ arbcomplex(36) ]
  1319. [ ]
  1320. [ arbcomplex(37) ]
  1321. [ ]
  1322. [ 0 ]
  1323. },
  1324. {x + 7,
  1325. 1,
  1326. [ - arbcomplex(38) ]
  1327. [ ------------------- ]
  1328. [ 56*sqrt(3) + 97 ]
  1329. [ ]
  1330. [ - 14*sqrt(3)*arbcomplex(38) - 24*arbcomplex(38) ]
  1331. [--------------------------------------------------]
  1332. [ 168*sqrt(3) + 291 ]
  1333. [ ]
  1334. [ - 14*sqrt(3)*arbcomplex(38) - 24*arbcomplex(38) ]
  1335. [--------------------------------------------------]
  1336. [ 168*sqrt(3) + 291 ]
  1337. [ ]
  1338. [ - 14*sqrt(3)*arbcomplex(38) - 24*arbcomplex(38) ]
  1339. [--------------------------------------------------]
  1340. [ 168*sqrt(3) + 291 ]
  1341. [ ]
  1342. [ - 14*sqrt(3)*arbcomplex(38) - 24*arbcomplex(38) ]
  1343. [--------------------------------------------------]
  1344. [ 168*sqrt(3) + 291 ]
  1345. [ ]
  1346. [ - 14*sqrt(3)*arbcomplex(38) - 24*arbcomplex(38) ]
  1347. [--------------------------------------------------]
  1348. [ 168*sqrt(3) + 291 ]
  1349. [ ]
  1350. [ - 14*sqrt(3)*arbcomplex(38) - 24*arbcomplex(38) ]
  1351. [--------------------------------------------------]
  1352. [ 168*sqrt(3) + 291 ]
  1353. [ ]
  1354. [ arbcomplex(38) ]
  1355. }}
  1356. for each eispace in eig do
  1357. begin scalar eivaleq,eival,eivec;
  1358. eival := solve(first eispace,x);
  1359. for each soln in eival do
  1360. <<eival := rhs soln;
  1361. eivec := third eispace;
  1362. eivec := sub(soln,eivec);
  1363. write "eigenvalue = ", eival;
  1364. write "check of eigen equation: ",
  1365. m*eivec - eival*eivec>>
  1366. end;
  1367. eigenvalue = -1
  1368. check of eigen equation:
  1369. [0]
  1370. [ ]
  1371. [0]
  1372. [ ]
  1373. [0]
  1374. [ ]
  1375. [0]
  1376. [ ]
  1377. [0]
  1378. [ ]
  1379. [0]
  1380. [ ]
  1381. [0]
  1382. [ ]
  1383. [0]
  1384. eigenvalue = 1
  1385. check of eigen equation:
  1386. [0]
  1387. [ ]
  1388. [0]
  1389. [ ]
  1390. [0]
  1391. [ ]
  1392. [0]
  1393. [ ]
  1394. [0]
  1395. [ ]
  1396. [0]
  1397. [ ]
  1398. [0]
  1399. [ ]
  1400. [0]
  1401. eigenvalue = -7
  1402. check of eigen equation:
  1403. [0]
  1404. [ ]
  1405. [0]
  1406. [ ]
  1407. [0]
  1408. [ ]
  1409. [0]
  1410. [ ]
  1411. [0]
  1412. [ ]
  1413. [0]
  1414. [ ]
  1415. [0]
  1416. [ ]
  1417. [0]
  1418. % For this choice of values
  1419. clear e;
  1420. let e = 1;
  1421. % the eigenvalue 1 becomes 4-fold degenerate. However, we get a complete
  1422. % span of 8 eigenvectors.
  1423. eig := mateigen(m,x);
  1424. eig := {{x - 1,
  1425. 4,
  1426. [ - arbcomplex(42)]
  1427. [ ]
  1428. [ - arbcomplex(41)]
  1429. [ ]
  1430. [ - arbcomplex(40)]
  1431. [ ]
  1432. [ - arbcomplex(39)]
  1433. [ ]
  1434. [ arbcomplex(39) ]
  1435. [ ]
  1436. [ arbcomplex(40) ]
  1437. [ ]
  1438. [ arbcomplex(41) ]
  1439. [ ]
  1440. [ arbcomplex(42) ]
  1441. },
  1442. {x + 1,
  1443. 3,
  1444. [ arbcomplex(45) ]
  1445. [ ]
  1446. [ arbcomplex(44) ]
  1447. [ ]
  1448. [ arbcomplex(43) ]
  1449. [ ]
  1450. [ - (arbcomplex(45) + arbcomplex(44) + arbcomplex(43))]
  1451. [ ]
  1452. [ - (arbcomplex(45) + arbcomplex(44) + arbcomplex(43))]
  1453. [ ]
  1454. [ arbcomplex(43) ]
  1455. [ ]
  1456. [ arbcomplex(44) ]
  1457. [ ]
  1458. [ arbcomplex(45) ]
  1459. },
  1460. {x - 7,
  1461. 1,
  1462. [arbcomplex(46)]
  1463. [ ]
  1464. [arbcomplex(46)]
  1465. [ ]
  1466. [arbcomplex(46)]
  1467. [ ]
  1468. [arbcomplex(46)]
  1469. [ ]
  1470. [arbcomplex(46)]
  1471. [ ]
  1472. [arbcomplex(46)]
  1473. [ ]
  1474. [arbcomplex(46)]
  1475. [ ]
  1476. [arbcomplex(46)]
  1477. }}
  1478. for each eispace in eig do
  1479. begin scalar eivaleq,eival,eivec;
  1480. eival := solve(first eispace,x);
  1481. for each soln in eival do
  1482. <<eival := rhs soln;
  1483. eivec := third eispace;
  1484. eivec := sub(soln,eivec);
  1485. write "eigenvalue = ", eival;
  1486. write "check of eigen equation: ",
  1487. m*eivec - eival*eivec>>
  1488. end;
  1489. eigenvalue = 1
  1490. check of eigen equation:
  1491. [0]
  1492. [ ]
  1493. [0]
  1494. [ ]
  1495. [0]
  1496. [ ]
  1497. [0]
  1498. [ ]
  1499. [0]
  1500. [ ]
  1501. [0]
  1502. [ ]
  1503. [0]
  1504. [ ]
  1505. [0]
  1506. eigenvalue = -1
  1507. check of eigen equation:
  1508. [0]
  1509. [ ]
  1510. [0]
  1511. [ ]
  1512. [0]
  1513. [ ]
  1514. [0]
  1515. [ ]
  1516. [0]
  1517. [ ]
  1518. [0]
  1519. [ ]
  1520. [0]
  1521. [ ]
  1522. [0]
  1523. eigenvalue = 7
  1524. check of eigen equation:
  1525. [0]
  1526. [ ]
  1527. [0]
  1528. [ ]
  1529. [0]
  1530. [ ]
  1531. [0]
  1532. [ ]
  1533. [0]
  1534. [ ]
  1535. [0]
  1536. [ ]
  1537. [0]
  1538. [ ]
  1539. [0]
  1540. ma := mat((1,a),(0,b));
  1541. [1 a]
  1542. ma := [ ]
  1543. [0 b]
  1544. % case 1:
  1545. let a = 0;
  1546. mateigen(ma,x);
  1547. {{x - 1,1,
  1548. [arbcomplex(47)]
  1549. [ ]
  1550. [ 0 ]
  1551. },
  1552. { - b + x,1,
  1553. [ 0 ]
  1554. [ ]
  1555. [arbcomplex(48)]
  1556. }}
  1557. % case 2:
  1558. clear a;
  1559. let a = 0, b = 1;
  1560. mateigen(ma,x);
  1561. {{x - 1,2,
  1562. [arbcomplex(49)]
  1563. [ ]
  1564. [arbcomplex(50)]
  1565. }}
  1566. % case 3:
  1567. clear a,b;
  1568. mateigen(ma,x);
  1569. {{ - b + x,
  1570. 1,
  1571. [ arbcomplex(51)*a ]
  1572. [------------------]
  1573. [ b - 1 ]
  1574. [ ]
  1575. [ arbcomplex(51) ]
  1576. },
  1577. {x - 1,1,
  1578. [arbcomplex(52)]
  1579. [ ]
  1580. [ 0 ]
  1581. }}
  1582. % case 4:
  1583. let b = 1;
  1584. mateigen(ma,x);
  1585. {{x - 1,2,
  1586. [arbcomplex(53)]
  1587. [ ]
  1588. [ 0 ]
  1589. }}
  1590. end;
  1591. (TIME: matrix 17016 18716)
  1592. End of Lisp run after 17.04+2.33 seconds