{VERSION 12 0 "Linux" "12.0" } {USTYLETAB {PSTYLE "Ordered List 1" -1 200 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 } {PSTYLE "Ordered List 2" -1 201 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 36 2 0 2 2 -1 1 }{PSTYLE "Ordered List 3" -1 202 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 72 2 0 2 2 -1 1 }{PSTYLE "Ordered List 4" -1 203 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 108 2 0 2 2 -1 1 }{PSTYLE "Ordered List 5" -1 204 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 144 2 0 2 2 -1 1 }{PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 8 8 2 0 2 0 2 2 -1 1 }{PSTYLE "Annotatio n Title" -1 205 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }3 1 0 0 12 12 2 0 2 0 2 2 -1 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Fixed Width" -1 17 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Maple Plot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Line Prin ted Output" -1 6 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Diagnostic" -1 9 1 {CSTYLE "" -1 -1 " Courier" 1 12 40 120 40 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Help" -1 10 1 {CSTYLE "" -1 -1 "Courier" 1 9 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Normal258 " -1 206 1 {CSTYLE "" -1 -1 "Times" 1 16 0 0 0 1 2 2 2 2 2 2 1 0 0 1 } 3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "R3 Font 2" -1 207 1 {CSTYLE "" -1 -1 "Times" 1 12 128 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Title259 " -1 208 1 {CSTYLE "" -1 -1 "Times" 1 24 0 0 0 1 2 1 2 2 2 2 1 0 0 1 } 3 1 0 0 12 12 2 0 2 0 2 2 -1 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Dash Item" -1 16 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{PSTYLE "Ma ple Output260" -1 209 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Maple Output12" -1 210 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "R3 Font 0" -1 211 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }3 1 0 0 12 12 2 0 2 0 2 2 -1 1 }{PSTYLE "Error" -1 8 1 {CSTYLE "" -1 -1 "Courier" 1 12 255 0 255 1 2 2 2 2 2 1 1 0 0 1 } 1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "MS Serif" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 4 2 0 2 0 2 2 -1 1 }{PSTYLE "Bullet Item" -1 15 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{PSTYLE "Hea ding 4" -1 20 1 {CSTYLE "" -1 -1 "MS Serif" 1 12 0 0 0 1 1 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "MS Serif" 1 14 0 0 0 1 1 1 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "MS \+ Serif" 1 16 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 2 2 0 2 0 2 2 -1 1 }{PSTYLE "Left Justified Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times " 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 } {PSTYLE "List Item" -1 14 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{CSTYLE "Annotation Tex t" -1 200 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Mapl e Name" -1 35 "Times" 1 12 104 64 92 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2 D Math Bold" -1 5 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2 D Math Italic" -1 3 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Menus" -1 36 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE " Plot Text" -1 28 "Times" 1 8 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Hel p Normal" -1 30 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Hel p Nonterminal" -1 24 "Courier" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 } {CSTYLE "Help Heading" -1 26 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Italic" -1 42 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Variable" -1 25 "Courier" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Italic Bold" -1 40 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Default" -1 38 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Underlined Italic" -1 43 "Times" 1 12 0 0 0 1 1 2 1 2 2 2 0 0 0 1 }{CSTYLE "Maple Input" -1 0 "Courier" 1 12 0 128 0 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "2D Output" -1 20 "Times" 1 12 0 0 255 1 2 2 2 2 2 1 0 0 0 1 }{CSTYLE "2D Math Bold Small" -1 10 "Times" 1 1 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Small" -1 7 "Times" 1 1 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Page Number" -1 33 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Output Labels" -1 29 "Times" 1 8 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Plot Title" -1 27 "Times" 1 10 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Emphasized" -1 22 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Symbol 2" -1 16 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small207" -1 201 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Maple Comment " -1 21 "Courier" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math I talic Small204" -1 202 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 } {CSTYLE "Maple Input Placeholder" -1 203 "Courier" 1 12 200 0 200 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "Code" -1 204 "Courier" 1 12 255 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small206" -1 205 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small205" -1 206 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Inert Output" -1 207 "Times" 1 12 144 144 144 1 2 2 2 2 1 2 0 0 0 1 }{CSTYLE "2D Math I talic Small" -1 208 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE " 2D Comment" -1 18 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "H elp Underlined Bold" -1 41 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 0 0 0 1 } {CSTYLE "Copyright" -1 34 "Times" 1 10 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "Hyperlink" -1 17 "MS Serif" 1 12 0 128 128 1 2 2 1 2 2 2 0 0 0 1 }{CSTYLE "Help Underlined" -1 44 "Times" 1 12 0 0 0 1 2 2 1 2 2 2 0 0 0 1 }{CSTYLE "Prompt" -1 1 "Courier" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "2D Input" -1 19 "Times" 1 12 0 0 0 1 2 2 2 2 1 2 0 0 0 1 } {CSTYLE "Header and Footer" -1 209 "Times" 1 10 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Text" -1 210 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Bold" -1 39 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 } {CSTYLE "Help Notes" -1 37 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 } {CSTYLE "Equation Label" -1 211 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "LaTeX" -1 32 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "Popup" -1 31 "Times" 1 12 0 128 128 1 1 2 1 2 2 2 0 0 0 1 } {CSTYLE "Dictionary Hyperlink" -1 45 "MS Serif" 1 12 147 0 15 1 2 2 1 2 2 2 0 0 0 1 }{CSTYLE "Help Fixed" -1 23 "Courier" 1 10 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "" -1 212 "Times" 1 24 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{PSTYLE "" -1 212 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 128 0 1 2 1 2 2 1 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 18 "" 0 "" {TEXT 212 7 "ETCY 42" }}}{PARA 0 "" 0 "" {TEXT 210 45 "A ex\303\251cuter jus qu'\303\240 \"Les coniques--resultats\"" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 29 "Initialisations, Encyclop \303\251die" }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 22 "Incantations init iales" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "with(StringTools):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "with(pldx): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "with(LinearAlgebra):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "syntax0:= map(convert,\{anames()\}, string):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "latexx:= proc(U) local hd, qui; \n" }{MPLTEXT 1 0 64 "qui:= \"/home/douillet/docs/Cherche/triangle/glossary/azor.tex\"; \n" }{MPLTEXT 1 0 84 "if procname=\"latexx\" then hd:= fopen(qui, WRIT E); else hd:= fopen(qui, APPEND);fi: \n" }{MPLTEXT 1 0 31 "fprintf(hd, \"$$\"); fclose(hd);\n" }{MPLTEXT 1 0 23 "latex(U, qui, append);\n" } {MPLTEXT 1 0 25 "hd:= fopen(qui, APPEND); " }{MPLTEXT 1 0 21 "fprintf( hd, \"$$\\n\"); " }{MPLTEXT 1 0 12 "fclose(hd);\n" }{MPLTEXT 1 0 27 "e nd: latexy:= eval(latexx):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "latexx:= proc(U) local hd, qui;\n" }{MPLTEXT 1 0 64 "qui:= \"/home /douillet/docs/Cherche/triangle/glossary/azor.tex\";\n" }{MPLTEXT 1 0 82 "if procname=latexx then hd:= fopen(qui, WRITE); else hd:= fopen(qu i, APPEND);fi: \n" }{MPLTEXT 1 0 31 "fprintf(hd, \"$$\"); fclose(hd); \n" }{MPLTEXT 1 0 23 "latex(U, qui, append);\n" }{MPLTEXT 1 0 25 "hd:= fopen(qui, APPEND); " }{MPLTEXT 1 0 21 "fprintf(hd, \"$$\\n\"); " } {MPLTEXT 1 0 12 "fclose(hd);\n" }{MPLTEXT 1 0 27 "end: latexy:= eval(l atexx):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "latexz:= proc(U) ; latexy(U);\n" }{MPLTEXT 1 0 73 "ssystem(\"/home/douillet/docs/Cherch e/triangle/glossary/azor-maker.bat\");\n" }{MPLTEXT 1 0 4 "end:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "macro( Det=Determinant);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "FActor:= U->ma p(factor,U); EXpand:= U->map(expand,U);\n" }{MPLTEXT 1 0 44 "ps:= (U,V )-> U[1]*V[1]+U[2]*V[2]+U[3]*V[3];\n" }{MPLTEXT 1 0 38 "evalms:= U-> c onvert(evalmm(U), set):\n" }{MPLTEXT 1 0 60 "OP:= proc (U) option inli ne; op(convert(U, list)) end proc;\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 62 "Entries non modifi\303\251. C'est l'usage fait par zipq qui ne va pas" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "Entries:= proc (m) entri es(evalm(m)); (op@map)(op, [%]) end proc:\n" }{MPLTEXT 1 0 54 "# Entri es(mun); Entries(Vector(pp));Entries(Vrow(pp));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "zipq: = proc(U,V) local tmp; tmp:= zip(`=`,U,V); \n" }{TEXT 210 61 "if type( tmp, \{Vector, Matrix\}) then map(op, [entries(tmp)]) \n" }{TEXT 210 17 "else tmp fi; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "zi pq:=proc (U, V) local tmp; \n" }{MPLTEXT 1 0 68 "if type(U, \{Matrix, \+ Vector\}) then map(op, [entries(Zip(`=`,U,V))]) \n" }{MPLTEXT 1 0 36 " else zip(`=`, U, V) end if end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "macro(Vrow=Vector[row]); # Vrow(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "with(plots): with(plottools); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "kernelopts(ASSERT=true): _EnvExplicit:= true: interf ace(labelling=false):\n" }{MPLTEXT 1 0 59 "kernelopts(ASSERT), _EnvExp licit, not interface(labelling);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "rotof:= proc(qq) global polyf; (op@indets)(qq, function);\n" }{MPLTEXT 1 0 38 "polyf:= op(1,%); subs(%%=_Z, qq); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "nxt(1), nxt(2),nxt(3):=2,3,1;" }}}} {SECT 0 {PARA 4 "" 0 "" {TEXT 214 61 "Gestion des rotations cycliques \+ : rot, rot3, rot3v, rotp,rotv" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "rot:= U->subs([a=b,b=c,c=a,A=B,B=C,C=A, a_=b_,b_=c_,c_=a_,u=v,v= w,w=u,p=q,q=r,r=p,\n" }{MPLTEXT 1 0 80 " x=y,y=z,z=x,xa=xb,xb=xc,xc= xa,ya=yb,yb=yc,yc=ya,rho=sigma,sigma=tau,tau=rho,\n" }{MPLTEXT 1 0 24 "ra=rb,rb=rc,rc=ra], U):\n" }{MPLTEXT 1 0 33 "rot3:= U->(id, rot, rot@ rot)(U):\n" }{MPLTEXT 1 0 87 "rot3v:= proc(U); rot3(U); %[1],[seq](%[2 ][j],j=[3,1,2]), [seq](%[3][j],j=[2,3,1]) end: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "(` rot`=rot)(b+c-a);\n" }{MPLTEXT 1 0 23 "(` r ot3`=rot3)(b+c-a);\n" }{MPLTEXT 1 0 28 "(` rot3v`=rot3v)([b+c,a,a]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "rotp:= proc(qui) mul(k, k=rot3(qui)) end:\n" } {MPLTEXT 1 0 43 "rots:= proc(qui) add(k, k=rot3(qui)) end: " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "(` rotp`=rotp)(a^2*p);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "rotv:= proc(pp); rot(pp): [s eq](%[k], k=[3,1,2]); \n" }{MPLTEXT 1 0 64 "if type(pp, Vector) then r eturn Vector(%) else return % fi; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "rotv3:= Matrix@(U->[id, rotv, rotv@rotv](Vector(U))) : " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "mun:= Diag(1$3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "wedge:= proc (pp, pu) local p, q, r, u, v, w, tmp; \+ \n" }{MPLTEXT 1 0 35 "p, q, r, u, v, w := OP(pp),OP(pu);\n" }{MPLTEXT 1 0 36 "tmp:= [q*w-r*v, -p*w+r*u, p*v-u*q];\n" }{MPLTEXT 1 0 48 "if ty pe(pp, Vector[row]) then tmp:= Vector(tmp)\n" }{MPLTEXT 1 0 54 "elif t ype(pp,Vector) then tmp:= Vector[row](tmp) fi; \n" }{MPLTEXT 1 0 5 "tm p;\n" }{MPLTEXT 1 0 9 "end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 28 "Nouvelle \303\251c riture symetrique" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "valS2 : = S^2 = -(1/16*(a+b+c))*(b+a-c)*(-b-c+a)*(a-b+c);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 66 "valS4:= seq(map(fun,valS2), fun=[id, id^2, 1 /id, 1/id^2, U->S*U]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 272 " kitcircle2 := e = sqrt(-a^2*c^2+c^4-b^2*c^2-a^2*b^2+a^4+b^4)/sqrt(a^2* b^2+a^2*c^2+b^2*c^2), \{cos(omega) = (1/2)*(a^2+b^2+c^2)/sqrt(a^2*b^2+ a^2*c^2+b^2*c^2), sin(omega) = 2*S/sqrt(a^2*b^2+a^2*c^2+b^2*c^2)\}, ri = 2*S/(a+b+c), sp = (1/2)*a+(1/2)*b+(1/2)*c, R = (1/4)*a*b*c/S;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 179 "kashi2 := \{cos(A) = (1/2)* (b^2+c^2-a^2)/(b*c), cos(B) = (1/2)*(c^2+a^2-b^2)/(c*a), cos(C) = (1/2 )*(a^2+b^2-c^2)/(a*b), sin(A) = 2*S/(b*c), sin(B) = 2*S/(a*c), sin(C) \+ = 2*S/(a*b)\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "tosym:= \+ \{a+b+c=_s, a*b+b*c+c*a=_t, a*b*c=_u\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "seq(k=simplify(subs(kitcircle2, valS4, k), tosym), k= [sp,ri*R,ri^2]);\n" }{MPLTEXT 1 0 32 "lesym:= solve(\{%\},\{_s, _t, _u \});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "kitW:= [WW1= sqrt(a ^2*b^2+a^2*c^2+b^2*c^2),\n" }{MPLTEXT 1 0 56 "WW2= (sqrt@sort)(-a^2*c^ 2+c^4-b^2*c^2-a^2*b^2+a^4+b^4),\n" }{MPLTEXT 1 0 93 "WW3= (sqrt@sort)( a^6-a^4*b^2-a^4*c^2-a^2*b^4+3*a^2*b^2*c^2-a^2*c^4+b^6-b^4*c^2-b^2*c^4+ c^6),\n" }{MPLTEXT 1 0 87 "WW4= (sqrt@sort)(b^3-b^2*c-b*c^2+c^3-a*b^2+ 3*a*b*c-a*c^2-a^2*b-a^2*c+a^3)]: Vector(%);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "simplify(kitW, tosym): (factor@subs)(lesym, %): \+ \n" }{MPLTEXT 1 0 72 "simplify(%) assuming ri^2>0, sp^2>0: (eval@subs) (abs=id, %): Vector(%);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 42 "ency_, les valeurs numeriques kashi, shi ka" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "\{cos(A)=(b^2+c^2-a^2) /2/b/c, sin(A)=a/2/R\}: \n" }{MPLTEXT 1 0 27 "kashi:= (`union`@rot3)(% );\n" }{MPLTEXT 1 0 41 "shika:=\{rot3\}(a^2+b^2-c^2=2*a*b*cos(C)):\n" }{MPLTEXT 1 0 42 "shika:=shika union (eval@map)(-id, shika);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 395 "kashkash := sin((1/2)*A) = \+ (1/2)*sqrt(b+a-c)*sqrt(a-b+c)/(sqrt(b)*sqrt(c)), sin((1/2)*B) = (1/2)* sqrt(b-a+c)*sqrt(b+a-c)/(sqrt(c)*sqrt(a)), sin((1/2)*C) = (1/2)*sqrt(a -b+c)*sqrt(b-a+c)/(sqrt(a)*sqrt(b)), cos((1/2)*A) = (1/2)*sqrt(a+b+c)* sqrt(b-a+c)/(sqrt(b)*sqrt(c)), cos((1/2)*B) = (1/2)*sqrt(a+b+c)*sqrt(a -b+c)/(sqrt(c)*sqrt(a)), cos((1/2)*C) = (1/2)*sqrt(a+b+c)*sqrt(b+a-c)/ (sqrt(a)*sqrt(b));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 134 "valo m := \{cos(omega) = (1/2)*(a^2+b^2+c^2)/sqrt(a^2*b^2+a^2*c^2+b^2*c^2), sin(omega) = (1/2)*a*b*c/(R*sqrt(a^2*b^2+a^2*c^2+b^2*c^2))\};" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "vale := e = sqrt(-a^2*c^2+c^ 4-b^2*c^2-a^2*b^2+a^4+b^4)/sqrt(a^2*b^2+a^2*c^2+b^2*c^2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "enzy_:= \{a=7, b=11, c=17\}: \n" } {MPLTEXT 1 0 51 "enzy_:= enzy_ union \{per=subs(enzy_, (a+b+c)/2)\}: \+ \n" }{MPLTEXT 1 0 84 "enzy_:= enzy_ union \{S= (simplify@subs)(enzy_, \+ sqrt(per*(per-a)*(per-b)*(per-c)))\}:\n" }{MPLTEXT 1 0 63 "enzy_:= enz y_ union \{fac_ency= evalf(subs(enzy_, 2*S/a), 20)\}:\n" }{MPLTEXT 1 0 61 "enzy_:= enzy_ union (solve@subs)(enzy_,remove(has,kashi,R)):\n" }{MPLTEXT 1 0 54 "enzy_:= enzy_ union (solve@eval@subs)(enzy_, kashi): ;\n" }{MPLTEXT 1 0 74 "subs(enzy_, valom union \{vale\}): enzy_:= enzy _ union solve(%, \{omega, e\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "ency_:= \{a=6, b=9, c=13\}:\n" }{MPLTEXT 1 0 51 "ency_:= ency_ union \{per=subs(ency_, (a+b+c)/2)\}: \n" }{MPLTEXT 1 0 84 "ency_:= e ncy_ union \{S= (simplify@subs)(ency_, sqrt(per*(per-a)*(per-b)*(per-c )))\}:\n" }{MPLTEXT 1 0 63 "ency_:= ency_ union \{fac_ency= evalf(subs (ency_, 2*S/a), 20)\}:\n" }{MPLTEXT 1 0 61 "ency_:= ency_ union (solve @subs)(ency_,remove(has,kashi,R)):\n" }{MPLTEXT 1 0 54 "ency_:= ency_ \+ union (solve@eval@subs)(ency_, kashi):;\n" }{MPLTEXT 1 0 74 "subs(ency _, valom union \{vale\}): ency_:= ency_ union solve(%, \{omega, e\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 33 "ency, la m\303\251thode d'identification" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "fd := open(\"/home/douillet/docs/Cherche/cycles/maple /search-data.txt\", READ); \n" }{MPLTEXT 1 0 58 "enc_dat:=readdata(fd) : close(fd); siz_enc:= nops(enc_dat);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "enc_sort:= sort(enc_dat): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "min(seq(enc_sort[j+1]-enc_sort[j],j=1..siz_enc-1)) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 59 "Re\303\247oit une liste de trois pond\303\251ration s, renvoie un flottant" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "kicety:= \+ subs(ency_, proc(pu) global POINT_; local u,v,w;\n" }{MPLTEXT 1 0 29 " u,v,w:= op(subs(ency_, pu));\n" }{MPLTEXT 1 0 82 "if simplify(u+v+w) = 0 or evalf(abs(u+v+w)/(abs(u)+abs(v)+abs(w))) < Float(1, -9)\n" } {MPLTEXT 1 0 47 " then POINT_:=IPOINT; evalf(u/a*(a/u+b/v+c/w))\n" } {MPLTEXT 1 0 50 "else POINT_:=POINT; evalf(u/(u+v+w)*fac_ency); fi\n" }{MPLTEXT 1 0 10 "end proc):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 61 "Cette definition doit r ester l\303\240, on en a besoin tout de suite" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "pX1:= [rot3](a);\n" }{MPLTEXT 1 0 59 "2*a^4 - (b^2 - \+ c^2)^2 - a^2*(b^2 + c^2): pX30:= [rot3](%);;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 " 1: kicety(pX||%), enc_dat[%]; 30: kicety(pX||%), enc _dat[%];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "dichot:= proc(qui)local u,o,m, ensu , enso, ensm; # u is under, o is over \n" }{MPLTEXT 1 0 18 "u,o:= 1, s iz_enc;\n" }{MPLTEXT 1 0 39 "ensu, enso:= enc_sort[u], enc_sort[o];\n" }{MPLTEXT 1 0 49 "if qui>enso then return [enso,qui, infinity] fi;\n" }{MPLTEXT 1 0 49 "if qui1 do m:= floor((o+u)/2); ensm:= enc_sort[ m];\n" }{MPLTEXT 1 0 68 "if ensm< qui then u:=m; ensu:=ensm else o:= m ; enso:= ensm; fi; od;\n" }{MPLTEXT 1 0 72 "if abs(ensu-qui)<1E-7 th en member(ensu, enc_dat, 'ouca'); return ouca\n" }{MPLTEXT 1 0 72 "eli f abs(enso-qui)<1E-7 then member(enso, enc_dat, 'ouca'); return ouca\n " }{MPLTEXT 1 0 30 "else return [ensu, qui, enso]\n" }{MPLTEXT 1 0 8 " fi; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "encyclo:=proc(qui_::uneval, quiet) \+ global POINT_;\n" }{MPLTEXT 1 0 70 "## when a second argument is provi ded, don't print error messages !!!\n" }{MPLTEXT 1 0 24 "local tmpd, t mpk, qui; \n" }{MPLTEXT 1 0 30 "Digits:=20; qui:= eval(qui_);\n" } {MPLTEXT 1 0 48 "if type(qui, list) then tmpk := kicety(qui)\n" } {MPLTEXT 1 0 64 " elif type(qui, Vector) then tmpk := kicety(convert(q ui,list)) \n" }{MPLTEXT 1 0 34 " else tmpk := kicety([rot3](qui))\n" } {MPLTEXT 1 0 8 "end if;\n" }{MPLTEXT 1 0 22 "tmpd := dichot(tmpk);\n" }{MPLTEXT 1 0 26 "if type(tmpd, list) then \n" }{MPLTEXT 1 0 16 "if na rgs=1 then\n" }{MPLTEXT 1 0 15 " print(qui_);\n" }{MPLTEXT 1 0 49 " \+ print(\"length of coefficient\" = length(qui_));\n" }{MPLTEXT 1 0 29 " return \"not found\" = tmpd;\n" }{MPLTEXT 1 0 29 "else return qui_=P OINT(`?`);\n" }{MPLTEXT 1 0 8 "end if;\n" }{MPLTEXT 1 0 8 "end if;\n" }{MPLTEXT 1 0 21 "qui_ = POINT_(tmpd);\n" }{MPLTEXT 1 0 9 "end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "ency:= op@rhs@(U-> encycl o(U, quiet)); ## ancien ency" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "pX1: encyclo(%);\n" }{MPLTEXT 1 0 24 "pX30: %[1]: encyclo(%);\n" }{MPLTEXT 1 0 27 "encyclo(3*a+2*b+c, quiet);\n" }{MPLTEXT 1 0 24 "enc yclo(2*a+b+c, quiet);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "en cy(pX30);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 " " 0 "" {TEXT 210 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 43 "Lecture \+ du fichier de donn\303\251es encyclopedie\n" }{TEXT 214 70 " (ex\303 \251cuter tout le bloc \303\240 chaque fois (Digits=30, puis revient \+ \303\240 10)\n" }{TEXT 214 65 " j, ff, gg, tt, cc, ac, fdat, tmp\{x,y ,z\}, tmq\{x,y,z\},hc, gerdat\n" }{TEXT 214 30 "refabrique enc_dat et \+ enc_sort" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 98 "Doivent rester dans la m\303\252me cellule : l'option remember emp\303\252cherait de tenir compte des nouveaut\303\251s" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 74 "relire:= proc() global pX,ff,gg,tt,cc,ac,fda t,xyz,zxyz,hc,gerdat,fd,jmax,\n" }{MPLTEXT 1 0 28 "enc_dat, enc_sort, \+ siz_enc;\n" }{MPLTEXT 1 0 56 "local tmp,tmp1,tmp2,jj,tmpx,tmpy,tmpz,tm qx,tmqy,tmqz,j;\n" }{MPLTEXT 1 0 25 "Digits:=30; forget(pX); \n" } {MPLTEXT 1 0 31 "pX:= proc(n) option remember; \n" }{MPLTEXT 1 0 58 "t ry [rot3](parse(fdat[n])); ASSERT(ency(%)=n); return %; \n" }{MPLTEXT 1 0 29 "catch : pX||n; end try; end:\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 33 "try close(fd); catch : end try; \n" }{MPLTEXT 1 0 50 "ff, gg, tt, cc, ac, fdat, xyz, zxyz, hc, gerdat:=\n" }{MPLTEXT 1 0 48 " tabl e(), table(), table(), table(), table(), \n" }{MPLTEXT 1 0 47 " table (), table(), table(), table(), table():\n" }{MPLTEXT 1 0 66 "fd := ope n(\"/home/douillet/public_html/etc/bar_igtca.csv\", READ):\n" } {MPLTEXT 1 0 156 "for jmax from 1 do tmp:= readline(fd); if %=0 then \+ break fi; tmp1:= SubstituteAll (SubstituteAll(SubstituteAll( tmp, \" \", \"\"), \"\"\";\"\"\", \" \"), \"\"\"\", \"\");\n" }{MPLTEXT 1 0 84 "tmp2:= sscanf(tmp1, \"%d %d %d %d %d %d %s %f %f %f %f %f %f %f %s \" ); jj:= tmp2[1];\n" }{MPLTEXT 1 0 52 " ff[jj], gg[jj], tt[jj], cc[j j], ac[jj], fdat[jj], \n" }{MPLTEXT 1 0 72 " tmpx,tmpy,tmpz, tmqx,tmqy ,tmqz, hc[jj], gerdat[jj] := op(tmp2[2..-1]);\n" }{MPLTEXT 1 0 62 " xy z[jj]:= [tmpx, tmpy, tmpz]; zxyz[jj]:= [tmqx, tmqy, tmqz];\n" } {MPLTEXT 1 0 29 "od: jmax:= jmax-1; close(fd);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "for j to jmax d o if fdat[j]<>\"special\" then next fi; \n" }{MPLTEXT 1 0 41 "pX(j):= \+ xyz[j]; # print(j, evalf(%,10));\n" }{MPLTEXT 1 0 11 "od: j:='j':" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "enc_dat:= [seq(hc[j], j=1..jmax)]: \+ siz_enc:= nops(%); enc_sort:= sort(enc_dat):\n" }{MPLTEXT 1 0 38 "prin t(\"database relue\"); return NULL;\n" }{MPLTEXT 1 0 4 "end:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "Digits:=30: relire(); seq(`i f`(fdat[j]=\"special\",j,NULL), j=1..jmax);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "vX:= Vector@pX;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 28 "reduce, zipq, \+ zipd, elimifac" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "gcdd:= pro c(); if nargs = 1 then return args\n" }{MPLTEXT 1 0 38 " elif nargs = \+ 2 then return gcd(args)\n" }{MPLTEXT 1 0 53 " else procname(gcd(args[1 ], args[2]), args[3 .. -1])\n" }{MPLTEXT 1 0 18 "end if; end proc:\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 80 "reduce:= proc(qui_::\{list,Vect or\}) local qui, nunu, nunu2, dede, fac, tmp, tmq;\n" }{MPLTEXT 1 0 27 "qui:= convert(qui_, list);\n" }{MPLTEXT 1 0 74 "nunu, dede, fac := map(simplify@numer, qui), map(simplify@denom, qui), 1;\n" }{MPLTEXT 1 0 34 " fac := fac*(`@`(lcm, op))(dede);\n" }{MPLTEXT 1 0 35 " if typ e(nunu, list(numeric)) then\n" }{MPLTEXT 1 0 40 " fac := (fac)/((`@` (igcd, op))(nunu))\n" }{MPLTEXT 1 0 6 " else\n" }{MPLTEXT 1 0 29 " n unu2 := map(id^2, nunu);\n" }{MPLTEXT 1 0 38 " if type(nunu2, list(n umeric)) then\n" }{MPLTEXT 1 0 54 " fac := (fac)/((`@`(`@`(sqrt, i gcd), op))(nunu2))\n" }{MPLTEXT 1 0 40 " elif type(nunu, list(realco ns)) then\n" }{MPLTEXT 1 0 49 " add(nunu[k]*_A(k), k = 1 .. 3); # \+ was 4 ???\n" }{MPLTEXT 1 0 23 " factor((_U)/(%));\n" }{MPLTEXT 1 0 32 " (_U)/(remove(has, %, _A));\n" }{MPLTEXT 1 0 23 " fac := (fac)/(%);\n" }{MPLTEXT 1 0 8 " else\n" }{MPLTEXT 1 0 42 " fac \+ := (fac)/((`@`(gcdd, op))(nunu))\n" }{MPLTEXT 1 0 11 " end if;\n" } {MPLTEXT 1 0 9 " end if;\n" }{MPLTEXT 1 0 55 " tmp:= (normal@evalmm)(q ui*fac); tmq:= map(U->-U,tmp);\n" }{MPLTEXT 1 0 48 " if length(tmp)>le ngth(tmq) then tmp:= tmq; fi;\n" }{MPLTEXT 1 0 51 " if type(qui_, Vect or[row]) then Vector[row](tmp) \n" }{MPLTEXT 1 0 56 " elif type(qui_, \+ Vector) then Vector(tmp) else tmp; fi;\n" }{MPLTEXT 1 0 9 "end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 187 "tmp:= [-64627821318060/3 1-(465640074900/31)*sqrt(13729), -211386921536700/107-(1945036924740/1 07)*sqrt(13729), -4428353334246660/3317-(37392121969020/3317)*sqrt(137 29)]; tmp2:= reduce(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "Vector([x*y,x*z]): %, reduce(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "zipd:= reduce@factor@((U,V)->zip(`/ `,convert(U,list),convert(V,list)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "# reducol:= proc(ma::Matrix); Matrix([seq(reduce(Colu mn(ma,j)), j=1..3)]); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "reducol:=proc (ma::Matrix);\n" }{MPLTEXT 1 0 92 " Matrix([seq(redu ce(LinearAlgebra:-Column(ma, j)), j = 1 .. ColumnDimension(ma))]) end \+ proc;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "elimifac:= proc(tm qx_) global tmqx; local jjj, lili, lon, fac, toto; tmqx:= tmqx_;\n" } {MPLTEXT 1 0 56 "if indets(tmqx, 'name') minus \{a,b,c,A,B,C,R\} = \{ \} then\n" }{MPLTEXT 1 0 60 "for jjj to 2 do if not type (tmqx,`*`) th en print(\"fini\"); \n" }{MPLTEXT 1 0 13 " break; fi;\n" }{MPLTEXT 1 0 65 "lili:= convert(tmqx, list): lon:= length(convert(tmqx,string)): \+ \n" }{MPLTEXT 1 0 48 "for fac in lili do if evalb(rot(fac)=fac) then \+ \n" }{MPLTEXT 1 0 67 " tmqx:= tmqx/fac; lon:= length(convert(tmqx,st ring)); next; fi; \n" }{MPLTEXT 1 0 34 "toto:= factor(1/rotp(fac)*tmqx ); \n" }{MPLTEXT 1 0 43 "if length(convert(toto,string))< lon then \n" }{MPLTEXT 1 0 55 " tmqx:=toto; lon:= length(convert(tmqx, string)); \+ fi;\n" }{MPLTEXT 1 0 22 "od: od: fi; tmqx; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "elimifacu:= proc(tmqx_) global tmqx; local jjj , lili, lon, fac, toto; \n" }{MPLTEXT 1 0 37 "tmqx:= reduce(convert(tm qx_, list));\n" }{MPLTEXT 1 0 58 "for jjj to 2 do if not type (tmqx[1] ,`*`) then break; fi;\n" }{MPLTEXT 1 0 68 "lili:= convert(tmqx[1], lis t): lon:= length(convert(tmqx,string)): \n" }{MPLTEXT 1 0 20 "for fac \+ in lili do \n" }{MPLTEXT 1 0 20 "# print(fac, tmqx);\n" }{MPLTEXT 1 0 29 "if evalb(rot(fac)=fac) then \n" }{MPLTEXT 1 0 75 " tmqx:= evalmm (tmqx/fac); lon:= length(convert(tmqx,string)); next; fi; \n" } {MPLTEXT 1 0 42 "toto:= factor(evalmm(1/rotp(fac)*tmqx)); \n" } {MPLTEXT 1 0 43 "if length(convert(toto,string))< lon then \n" } {MPLTEXT 1 0 55 " tmqx:=toto; lon:= length(convert(tmqx, string)); fi ;\n" }{MPLTEXT 1 0 9 "od: od: \n" }{MPLTEXT 1 0 45 "if type(tmqx_, Vec tor[row]) then Vrow(tmqx) \n" }{MPLTEXT 1 0 59 " elif type(tmqx_, Vect or) then Vector(tmqx) else tmqx; fi;\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 9 "Notations" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 55 "za,zb,zc,zx \+ sont les coordonn\303\251es projectives de A,B,C\n" }{TEXT 210 64 "pa, pb,pc,pp,pu,px sont les coordonn\303\251es barycentriques de ABCPUX" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "za,zb,zc,zx:= [xa,ya,1], [xb,yb,1],[xc,yc,1],[X,Y ,1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "pa,pb,pc,pp,pu,px:= [1,0,0],[0,1,0],[0,0,1],[p,q,r],[u,v,w],[x,y,z];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "assign(seq(evaln(pp||j)=map(U->cat(U,j), pp), j=1..6));\n" }{MPLTEXT 1 0 56 "assign(seq(evaln(pu||j)=map(U->cat(U,j ), pu), j=1..6));\n" }{MPLTEXT 1 0 9 "pp6, pu5;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "pdr:= [rho,sigma,tau]; PDR:= [Rho,Sigma,Tau];" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 32 "Dessiner - cart\303\251sien, R -S, harmo" }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 55 "Coordonn\303\251es \+ cartesiennes: rule123, bary2proj, bary2norm" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 9 "Pythagore" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "rule123:= \{rot3\}(xc^2+yb^2-2*yc*yb-2*xc*xb+xb^2+yc^2 = a^2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 82 "bary2proj donne les coordonn\303\251es projectives normalis\30 3\251es \303\240 partir des baycentriques" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "bary2proj:= proc(pu) local u,v,w; u,v,w:= op(convert( pu, list)); \n" }{MPLTEXT 1 0 53 "evalmm((u*za+v*zb+w*zc)/(u+v+w)); en d: bary2proj(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "bary2n orm := proc (pp) \n" }{MPLTEXT 1 0 47 "if type(pp,Vector) then pp/add( k, k = pp) else\n" }{MPLTEXT 1 0 40 "evalmm(pp/add(k, k = pp)); fi; en d proc;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "za,zb,zc,zx:= seq(bary2proj(pk), pk=[pa,pb,pc]),[X,Y, 1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "evalms(bary2proj(pa) -[1,0,1]) union evalms(bary2proj(pX(3))-[0,0,1]) \n" }{MPLTEXT 1 0 54 " union \{yb<0\} union subs(rot3(a^2=a^2/R^2), rule123):\n" }{MPLTEXT 1 0 38 "subs(ency_, %): cetriangle:= solve(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "evalms(bary2proj(pa)-[1,0,1]) union evalms(bary 2proj(pX(3))-[0,0,1]) \n" }{MPLTEXT 1 0 54 " union \{yb<0\} union subs (rot3(a^2=a^2/R^2), rule123):\n" }{MPLTEXT 1 0 38 "subs(enzy_, %): zet riangle:= solve(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 84 "On remarque que a,b,c ne sont pas les longueurs des cot \303\251s....... mais en proportion" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "ici:= ency_ union cetriangle;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 59 "On part des \+ coord cart\303\251siennes, et on obtient le Kimberling" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "toto:='toto': \n" }{MPLTEXT 1 0 47 "u*za+v*zb+w *zc-zx: solve(evalms(%), \{u,v,w\}): \n" }{MPLTEXT 1 0 58 "toto0:= (si mplify@expand@subs)(%, cetriangle, u/(u+v+w));\n" }{MPLTEXT 1 0 60 "ca rt2search0:= proc(X,Y) evalf((toto)* fac_ency, 15); end:\n" }{MPLTEXT 1 0 66 "cart2search:= subs(toto=evalf(toto0), ency_, eval(cart2search 0));\n" }{MPLTEXT 1 0 56 "cart2search0:='cart2search0': # n'\303\251ta it qu'un brouillon\n" }{MPLTEXT 1 0 30 "cart2search(0,0); dichot(%); \+ \n" }{MPLTEXT 1 0 74 "(cart2search@op@subs)(cetriangle, [(xa+xb+xc)/3, (ya+yb+yc)/3]);dichot(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 89 "On part de la formule bar ycentrique, et l'on assigne, dans pointX, les coord cart\303\251sienne s" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "formula:= proc(ff, xxx);\n" } {MPLTEXT 1 0 80 "ff*za+rot(ff)*zb+rot(rot(ff))*zc: (expand@subs)(ici, \+ %); [%[1]/%[3],%[2]/%[3]];\n" }{MPLTEXT 1 0 53 "assign(evaln(pointX||x xx), %); evaln(pointX||xxx)=%;\n" }{MPLTEXT 1 0 5 "end:\n" }{MPLTEXT 1 0 49 "formula(a,1); (cart2search@op@rhs)(%); dichot(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "formu_cook:= proc(aa,bb,cc, xxx);\n " }{MPLTEXT 1 0 67 "aa*za+bb*zb+cc*zc: (expand@subs)(ency_, %); [%[1]/ %[3],%[2]/%[3]];\n" }{MPLTEXT 1 0 51 "assign(evaln(point||xxx), %); ev aln(point||xxx)=%;\n" }{MPLTEXT 1 0 4 "end:" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 20 "Formules pour R et S" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Formule de la surface" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "de fS:= Det(Matrix([za,zb,zc]))=2*S;\n" }{MPLTEXT 1 0 21 "valS:= isolate( %,S);\n" }{MPLTEXT 1 0 51 "valS2:= (factor@simplify)(map(id^2, %), rul e123); \n" }{MPLTEXT 1 0 25 "defS2:= (rhs=lhs)(-16*%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "valS4:= seq(map(fun,valS2), fun=[id , id^2, 1/id, 1/id^2, U->S*U]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "sin(A): %= subs( kashi, %): (op@solve)(%, \{R\}); map(1/id^2, %); \n" }{MPLTEXT 1 0 77 "subs(sin(A)^2=1-cos(A)^2, %); defR2:= (factor@isolate)(subs(kashi, %) , R^2);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "apbpc:= (factor @isolate)(defR2, a+b+c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "defR := R = (1/4)*a*b*c/S;\n" }{MPLTEXT 1 0 27 "sapbpc:= subs(defR, a pbpc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 97 "valR4:= defR2, ma p(1/id, defR2), map(id^2, defR2), map(1/id^2, defR2), map(id^3, defR2) , R*defR2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 45 "Longueurs des c\303\264t\303\251s du triangle barycentrique" } }{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "Distance entre deux points de ba ry donn\303\251s" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "bary2proj(pp)-b ary2proj(pu): add(%[j]^2, j=1..3):\n" }{MPLTEXT 1 0 71 "simplify(expan d(%), rule123): pythagore_:= collect(%, [a,b,c], factor);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 61 "Formule simplifi\303\251e lorsque les de ux sommes de masses valent 1" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "sim plify(pythagore_, \{p+q+r=1, u+v+w=1\}): collect(%, [a,b,c], factor); \n" }{MPLTEXT 1 0 34 "pythagore1:= subs(p+q-u-v=-r+w,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "pytha:= proc(pp,pu) local p,q,r,u,v ,w;\n" }{MPLTEXT 1 0 73 "p,q,r:= op(evalmm(pp/add(k,k=pp))); u,v,w:= o p(evalmm(pu/add(k,k=pu))); \n" }{MPLTEXT 1 0 54 "(-v+q)*(-r+w)*a^2+(-u +p)*(-r+w)*b^2-(-v+q)*(-u+p)*c^2\n" }{MPLTEXT 1 0 6 "end: " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "pytha(pa,pb);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 66 "Re\303\247oit les barycentriques des tro is sommets et donne les longueurs" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 129 "bary2sides:= proc(A,B,C) sqrt(pytha(B,C)), sqrt(pytha(C,A)), sqrt (pytha(A,B)): simplify([%]) assuming a>0, b>0, c>0; op(%); end:\n" } {MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 128 "bary2pyth:= proc(A::Matrix) pyt ha(Column(A,2),Column(A,3)), pytha(Column(A,3),Column(A,1)), pytha(Col umn(A,1),Column(A,2)); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 12 "birap, harmo" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "birap:= proc(a,b,c,d); \n" }{MPLTEXT 1 0 33 "if a=i nfinity then (c-b)/(d-b)\n" }{MPLTEXT 1 0 33 "elif b=infinity then (d- a)/(c-a)\n" }{MPLTEXT 1 0 33 "elif c=infinity then (a-d)/(b-d)\n" } {MPLTEXT 1 0 33 "elif d=infinity then (b-c)/(a-c)\n" }{MPLTEXT 1 0 30 "else (c-b)/(c-a)*(d-a)/(d-b);\n" }{MPLTEXT 1 0 8 "fi; end:" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "h armo:= proc(pp1_,pp2_,pp3_,pp4_) global qqqa,qqqb; \n" }{MPLTEXT 1 0 33 "local mmu, nnu, pp1,pp2,pp3,pp4;\n" }{MPLTEXT 1 0 47 "pp1,pp2,pp3, pp4:= (op@map)(bary2norm, [args]);\n" }{MPLTEXT 1 0 70 "qqqa:= evalms( pp1*(mu)+pp2*(1-mu)-pp3); mmu:= subs(solve(%, mu), mu);\n" }{MPLTEXT 1 0 70 "qqqb:= evalms(pp1*(nu)+pp2*(1-nu)-pp4); nnu:= subs(solve(%, nu ), nu);\n" }{MPLTEXT 1 0 35 "simplify((1-mmu)/mmu/(1-nnu)*nnu);\n" } {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "har mo(pa,[0,q,r], pp, [-p,q,r]), harmo(pb,pc, [0,q,r], [0,q,-r]),\n" } {MPLTEXT 1 0 38 "harmo([p,-q,r],[p,q,-r], pa,[0,q,-r]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 28 "La formule pour le glossaire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "harmo(pp1,pp2,pp3,pp4); solve(qqqa[1], \{mu\}),solve(qqqb[1], \{ nu\}):\n" }{MPLTEXT 1 0 58 "tmp:= (factor@subs)(%, %%); collect(%, [p1 , p2, p3, p4]):\n" }{MPLTEXT 1 0 77 "subs(seq(p||j=p[j], j=1..4),seq(q ||j=q[j], j=1..4),seq(r||j=r[j], j=1..4),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "indets(tmp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "harmo2:= subs(AAA=tmp, proc(pp1,pp2,pp3,pp4) \n" } {MPLTEXT 1 0 55 "local p1, q1, r1, p2, q2, r2, p3, q3, r3, p4, q4, r4; \n" }{MPLTEXT 1 0 95 "p1, q1, r1, p2, q2, r2, p3, q3, r3, p4, q4, r4: = op(pp1), op(pp2), op(pp3), op(pp4); AAA; end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "# le test d'invariance par any est report\303 \251 \303\240 ---any---" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "xyr2pol:= proc(x, y, r) (X - x)^2 + (Y - y)^2 - \+ r^2 end proc;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "circ:= (x, y)->[x^2+y^2,x,y,1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "har mo4:= proc(pp,pu,px) local mu,pq;\n" }{MPLTEXT 1 0 70 "pq:= evalmm(pp+ mu*pu); (factor@solve)(harmo2(pp,pu,px,pq)=-1, \{mu\}); \n" }{MPLTEXT 1 0 13 "subs(%, pq);\n" }{MPLTEXT 1 0 4 "end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 0 {PARA 4 "" 0 "" {TEXT 214 55 "routines de dessin: draptn, draw na,dralinbar,dralinpts\n" }{TEXT 214 24 " projx (XY -> p:q:r )" }} {EXCHG {PARA 0 "" 0 "" {TEXT 210 36 "Reprendre cela pour chaque dessin . \n" }{TEXT 210 44 "ency et cetriangle sont d\303\251finis dans encyc lo" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "ici:= ency_ union cetriangle \+ union \{p=1,q=-2,r=3\}:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 48 "Trace une droite \303\240 partir de deux barycentriques" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 49 "dralinpts:= proc(qqa,qqb, opt_ions) global ici; \n" }{MPLTEXT 1 0 59 "(factor@evalmm)(bary2proj(qqa)*mu+bary2proj(qqb)*(1 -mu)): \n" }{MPLTEXT 1 0 60 "plot(subsop(3=(mu=-15..10), subs(ici,%)), op(opt_ions)) end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 45 "La substi tution pour les \303\251quations implicites" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "subsop(3=NULL, bary2proj(px)): evalms(%-[X,Y])union \+ \{x+y+z=1\}:\n" }{MPLTEXT 1 0 57 "projx:= (expand@subs)(solve(%, \{x,y ,z\}), cetriangle, px);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 67 "Fait \+ tout d'un coup (initialiser ici dans le programme utilisateur)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "eqn2proj:= proc(eqhh) global ici; l ocal projx; \n" }{MPLTEXT 1 0 70 "subsop(3=NULL, bary2proj(px)); evalm s(%-[X,Y])union \{add(k, k=px)=1\};\n" }{MPLTEXT 1 0 54 "projx:= (expa nd@subs)(solve(%, indets(px)), ici, px);\n" }{MPLTEXT 1 0 42 "(expand@ subs)(zipq(px,projx), ici, eqhh);\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 110 "dralinbar:= proc(pp, opt_ions); eq n2proj(ps(pp,px)); implicitplot(%, X=-10..10, Y=-10..10, op(opt_ions)) ; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "draptn:= proc(quoi, opt_ions) global ici; \n" }{MPLTEXT 1 0 85 "map(proc(U); bary2proj(convert(U,list)); subsop( 3=NULL,%): subs(ici, %); end, quoi);\n" }{MPLTEXT 1 0 40 "plots[pointp lot](%, op(opt_ions)); end: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "delt:= [0.1,0.1]; \n" }{MPLTEXT 1 0 52 "drawna:= proc(quoi, nom, hor, opt_ions) global ici;\n" }{MPLTEXT 1 0 84 "if quoi=\"help\" or q uoi=help then print('delt'=delt, \"font is an option\");return fi;\n" }{MPLTEXT 1 0 50 " bary2proj(quoi); subsop(3=NULL,%): subs(ici, %);\n" }{MPLTEXT 1 0 38 "plots[pointplot]([%], op(opt_ions)), \n" }{MPLTEXT 1 0 129 "plots[textplot]([op(%+[delt[1]*cos(Pi*(-hor+3)/6),delt[2]*sin (Pi*(-hor+3)/6)]), nom], font=[TIMES,ROMAN,15], op(opt_ions)); end: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "# drawna(pa,\"A\",10,[col or=black]); display(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " drawna(help);" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 63 "Les formules de s actions. **rappel** : un point est une colonne" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 " cr:= (pa,pb)-> CrossProduct(Vector(pa),Vector(pb));" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 60 "testCeva, les_cevians, les_anticev, matcev, ma tacev,matcocev" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "Matrix(3,3 ,(j,k)-> cat(op(j,[p,q,r]),k)): intri:= %-Matrix(%, shape=diagonal);\n " }{MPLTEXT 1 0 10 "indets(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "[seq](cr(Row(intri,j), op(j,[pa,pb,pc])), j=1..3): les_droites := Matrice(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "tmp:= Adj oint(les_droites); factor(Det(%)); \n" }{MPLTEXT 1 0 39 "sort(Det(les_ droites),[q3,q1, r1,r2]);\n" }{MPLTEXT 1 0 12 "Det(intri); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "indets(intri); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "pp_ceva_sym:= proc(mm) local p2, p3 , q1, q3, r1, r2;\n" }{MPLTEXT 1 0 141 "evalms(mm-Matrix(3, 3, \{(1, 1 ) = 0, (1, 2) = p2, (1, 3) = p3, (2, 1) = q1, (2, 2) = 0, (2, 3) = q3, (3, 1) = r1, (3, 2) = r2, (3, 3) = 0\}));\n" }{MPLTEXT 1 0 45 "solve( %, \{p2, p3, q1, q3, r1, r2\}); subs(%, \n" }{MPLTEXT 1 0 82 "[(p2^2*p 3^2*q1*r1)^(1/3), (p2*q3^2*q1^2*r2)^(1/3), (r2^2*p3*r1^2*q3)^(1/3)]); \+ end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "pp_ceva_sym(intri); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 189 "testCeva:= proc(m)local p2, p3, q1, q3, r1, r2 : evalms(m-Matrix(3, 3, \{(1, 1) = 0, (1, 2) = p2, (1, 3) = p3, (2, 1) = q1, (2, 2) = 0, (2, 3) = q3, (3, 1) = r1, (3, 2) = r2, (3, 3) = 0\} )); \n" }{MPLTEXT 1 0 64 "solve(%, \{p2, p3, q1, q3, r1, r2\}); subs(% , p2*q3*r1-p3*q1*r2);\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 106 "Re\30 3\247oit une fonction donnant le poids en A du point. Renvoie les poid s normalis\303\251s des 3 pieds des c\303\251viennes" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "les_cevians:= proc(f) local p,q,r; if type(f, lis t) then\n" }{MPLTEXT 1 0 76 "p,q,r:= op(f); [0,q/(q+r),r/(q+r)],[p/(p+ r),0,r/(p+r)],[p/(p+q),q/(p+q),0] \n" }{MPLTEXT 1 0 64 "elif type(f, V ector) then Matrice([procname(convert(f, list))])\n" }{MPLTEXT 1 0 52 "else procname([f(a,b,c),f(b,c,a),f(c,a,b)]); fi end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "Matrice([les_cevians(F)]); les_cevians(pp), les_ cevians(Vector(pp));" }}{PARA 0 "" 0 "" {TEXT 210 48 "A-t-on besoin de normaliser ... OUI, absolument" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "les_cevians_red:= proc(f) lo cal p,q,r; if type(f, list) then\n" }{MPLTEXT 1 0 40 "p,q,r:= op(f); [ 0,q,r],[p,0,r],[p,q,0] \n" }{MPLTEXT 1 0 64 "elif type(f, Vector) then Matrice([procname(convert(f, list))])\n" }{MPLTEXT 1 0 52 "else procn ame([f(a,b,c),f(b,c,a),f(c,a,b)]); fi end:" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "les_a nticevs:= proc(f) local p,q,r;\n" }{MPLTEXT 1 0 24 "if type(f, list) t hen \n" }{MPLTEXT 1 0 117 "p,q,r:= op(f); [-p/(-p+q+r),q/(-p+q+r),r/( -p+q+r)],[p/(p-q+r),-q/(p-q+r),r/(p-q+r)],[p/(p+q-r),q/(p+q-r),-r/(p+q -r)]\n" }{MPLTEXT 1 0 64 "elif type(f, Vector) then Matrice([procname( convert(f, list))])\n" }{MPLTEXT 1 0 27 "else error \"wrong type\" fi \n" }{MPLTEXT 1 0 30 "end: les_anticevs(Vector(pp));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "intri, les_cevians_red(Vector(pp));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "les_cevians_red(Vector(pp)); testCeva(%);\n" } {MPLTEXT 1 0 72 "intri.Diag(k1,k2,k3)-%%: evalms(%); eli:= eliminate(% , \{k1,k2,k3,p,q\}); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "condi:= select(has, op(eli [2]), \{p2,p3\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "value_ pp:= reduce(subs(eli[1], pp));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 39 "Cela a l'air mieux, mais cela ne va pas" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "tmp:= Adjoint(les_droites); Tr(tmp): more_symmetrical := \n" }{MPLTEXT 1 0 76 " convert(zip(`*`, zip(`*`, Column(%,1), Colu mn(%,2)), Column(%,3)), list);\n" }{MPLTEXT 1 0 33 "map(id^3, value_pp ); zipd(%%,%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "pp_ceva:= proc(m) local p2, \+ p3, q1, q3, r1, r2, sols, resu1:\n" }{MPLTEXT 1 0 141 "evalms(m-Matrix (3, 3, \{(1, 1) = 0, (1, 2) = p2, (1, 3) = p3, (2, 1) = q1, (2, 2) = 0 , (2, 3) = q3, (3, 1) = r1, (3, 2) = r2, (3, 3) = 0\})); \n" }{MPLTEXT 1 0 44 "sols:= solve(%, \{p2, p3, q1, q3, r1, r2\}); \n" }{MPLTEXT 1 0 50 "resu1:= simplify(subs(sols, p2*q3*r1-p3*q1*r2)): \n" }{MPLTEXT 1 0 53 "subs(sols, [r1*p2, q1*r2, r1*r2]); resu1, reduce(%);\n" } {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "les _cevians_red(Vector(pp)); pp_ceva(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 150 "mcev:= Matrice(3, 3, \{(1, 1) = 0, (1, 2) = q[1], (1 , 3) = r[1], (2, 1) = p[2], (2, 2) = 0, (2, 3) = r[2], (3, 1) = p[3], \+ (3, 2) = q[3], (3, 3) = 0\}); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "mcev; pp_ceva(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "subs(p2=p[2],r1=r[1],q1=q[1],r2=r[2], q3=q[3], p3=p[3], more_symme trical):\n" }{MPLTEXT 1 0 17 "map(id^(1/3), %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 156 "matcocev:= unapply(Matrix(3, 3, \{(1, 1) = 0, (1, 2) = p, (1, 3) = -p , (2, 1) = q, (2, 2) = 0, (2, 3) = q, (3, 1) = -r, (3, 2) = -r, (3, 3) = 0\}),p,q,r)@OP:\n" }{MPLTEXT 1 0 13 "matcocev(px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 162 "matcev:= unapply(Matrix(3, 3, \{(1 , 1) = 0, (1, 2) = p, (1, 3) = p, (2, 1) = q, (2, 2) = 0, (2, 3) = q, \+ (3, 1) = r, (3, 2) = r, (3, 3) = 0\}),p,q,r)@OP: matcev(px);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 167 "matacev:= unapply(Matrix(3, 3, \{(1, 1) = -p, (1, 2) = p, (1, 3) = p, (2, 1) = q, (2, 2) = -q, (2 , 3) = q, (3, 1) = r, (3, 2) = r, (3, 3) = -r\}),p,q,r)@OP: matacev(px );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 22 "testpedal, les_pedals " }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "Matrix(3,3,(j,k)-> cat(op(j, [p,q,r]),k)): intri:= %-Matrix(%, shape=diagonal);\n" }{MPLTEXT 1 0 27 "indets(%); lespts:=;" }}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 15 "le point sur BC" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "vecbc := evalm((pc-pb) &* lespts); Column(intri,1): \n" }{MPLTEXT 1 0 57 "ve cpaa:= evalm( (%/add(k,k=%)-pp/add(k,k=pp)) &* lespts);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 9 "origine B" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "subs(B=0,C=BC,A=BA, [vecbc, vecpaa]); collect(convert(%,`*`), \+ BC);\n" }{MPLTEXT 1 0 41 "eq1:= (eval@subs)(BC=a, BA=c*cos(B), %); " } }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 9 "origine C" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "subs(C=0,B=CB,A=CA, [vecbc, vecpaa]); collect(convert (%,`*`), CB);\n" }{MPLTEXT 1 0 41 "eq2:= (eval@subs)(CB=a, CA=b*cos(C) , %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "(factor@solve)(eq 1, \{r1\}): reduce(subs(%, Column(intri,1))):\n" }{MPLTEXT 1 0 28 "col 1:= collect(-%, [a,b,c]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "Les deux donnent pareil" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "(factor@sol ve)(eq2, \{r1\}): col1_2:= reduce(subs(%, Column(intri,1))):\n" } {MPLTEXT 1 0 36 "(FActor@subs)(kashi, -col1 +col1_2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 15 "le point s ur CA" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "vecca:= evalm((pa-p c) &* lespts); Column(intri,2): \n" }{MPLTEXT 1 0 57 "vecpbb:= evalm( \+ (%/add(k,k=%)-pp/add(k,k=pp)) &* lespts);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "subs(A=0,C=AC,B=AB, [vecca, vecpbb]); collect(conver t(%,`*`), AC);\n" }{MPLTEXT 1 0 42 "eq1B:= (eval@subs)(AC=b, AB=c*cos( A), %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "subs(C=0,B=CB,A =CA, [vecca, vecpbb]); collect(convert(%,`*`), CA);\n" }{MPLTEXT 1 0 42 "eq2B:= (eval@subs)(CA=b, CB=a*cos(C), %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "simplify(subs(kashi, eq1B-eq2B));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "(factor@solve)(eq2B, \{p2\}): reduc e(subs(%, Column(intri,2))):\n" }{MPLTEXT 1 0 28 "col2:= collect(-%, [ a,b,c]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 15 "le point sur AB" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "v ecab := evalm((pb-pa) &* lespts); Column(intri,3): \n" }{MPLTEXT 1 0 57 "vecpcc:= evalm( (%/add(k,k=%)-pp/add(k,k=pp)) &* lespts);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "subs(B=0,C=BC,A=BA, [vecab, \+ vecpcc]); collect(convert(%,`*`), BA);\n" }{MPLTEXT 1 0 42 "eq1C:= (ev al@subs)(BA=c, BC=a*cos(B), %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "subs(A=0,C=AC,B=AB, [vecab, vecpcc]); collect(convert(%,`*`), AB);\n" }{MPLTEXT 1 0 42 "eq2C:= (eval@subs)(AB=c, AC=b*cos(A), %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "(factor@solve)(eq2C, \{p3\}): reduce(subs(%, Col umn(intri,3))):\n" }{MPLTEXT 1 0 27 "col3:= collect(%, [a,b,c]);" }}}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 43 "collecte des r\303\251sultats et \+ test de cyclicit\303\251" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "tmp:= M atrix([col1,col2,col3]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "[rot3v] (col1): Matrix(map(Vector,%)): ASSERT(\{Entries\}(%-tmp)=\{0\});" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "les_pedals_cos:='les_pedals_ cos':" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "(reducol@FActor@su bs)(kashi, 2*tmp): \n" }{MPLTEXT 1 0 79 "les_pedals:= unapply(collect( %, pp),p,q,r)@OP: matped:= les_pedals: matped(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "matped(pp): (reducol@factor@subs)(shika,%/2 ): map(sort, %);\n" }{MPLTEXT 1 0 49 "les_cospedals:= unapply(collect( %, pp),p,q,r)@OP:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Condition d e p\303\251dalit\303\251" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "evalms( les_cospedals(pp)-intri.Diag(k1,k2,k3)); eli:= eliminate(%, \{k1, k2, \+ k3, p,q\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "(factor@subs )(kashi, op(eli[2])): condi0, fac:= selectremove(has,%,r1): fac;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "condi:= collect(condi0/(q1+r 1)/(r2+p2)/(p3+q3), [a,b,c], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "(reduce@factor@subs)(eli[1], pp): \n" }{MPLTEXT 1 0 77 "pqr0:= collect(Vector(%), [p1,q1,r1,p2,q2,r2,p3,q3,r3], factor, di stributed);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Avec seulement co s(B)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "2*a*b*cos(C)+2*a*c*cos(B): \+ %=subs(kashi,%): cosc:= solve(%, \{cos(C)\});\n" }{MPLTEXT 1 0 70 "2*c *b*cos(A)+2*a*c*cos(B): %=subs(kashi,%): cosa:= solve(%, \{cos(A)\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "subs(cosa,cosc, pqr0): \n" } {MPLTEXT 1 0 54 "pqrold:= collect(%/(p3+q3)/(q1+r1), [cos(B)], factor) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "pqr:= collect(subs(kas hi, 2*pqr0*a*c/(p3+q3)/(q1+r1)), [a,b,c], factor, distributed);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "isolate(condi, q1-r1): colle ct(subs(%, pqr), [a,b,c], factor, distributed);;\n" }{MPLTEXT 1 0 75 " isolate(condi, q1-r1): collect(subs(%, %%), [a,b,c], factor, distribut ed);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "convert( \n" } {MPLTEXT 1 0 59 "proc(m)local p2, p3, q1, q3, r1, r2, sols: evalms(m-m mm); \n" }{MPLTEXT 1 0 46 " sols:= solve(%, \{p2, p3, q1, q3, r1, r2 \}); \n" }{MPLTEXT 1 0 60 " subs(%, ccoonnddii); if simplify(%)<>0 th en return %; fi;\n" }{MPLTEXT 1 0 26 " subs(sols, ppqqrr); end\n" } {MPLTEXT 1 0 60 ", string): SubstituteAll(%, \"mmm\", convert(intri, s tring)):\n" }{MPLTEXT 1 0 56 "SubstituteAll(%, \"ccoonnddii\", convert (condi, string)):\n" }{MPLTEXT 1 0 50 "SubstituteAll(%, \"ppqqrr\", co nvert(pqr, string)):\n" }{MPLTEXT 1 0 20 "pp_pedal:= parse(%):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "convert( \n" }{MPLTEXT 1 0 59 "proc(m)local p2, p3, q1, q3, r1, r2, sols: evalms(m-mmm); \n" } {MPLTEXT 1 0 46 " sols:= solve(%, \{p2, p3, q1, q3, r1, r2\}); \n" } {MPLTEXT 1 0 60 " subs(%, ccoonnddii); if simplify(%)<>0 then return \+ %; fi;\n" }{MPLTEXT 1 0 26 " subs(sols, ppqqrr); end\n" }{MPLTEXT 1 0 60 ", string): SubstituteAll(%, \"mmm\", convert(intri, string)):\n" }{MPLTEXT 1 0 56 "SubstituteAll(%, \"ccoonnddii\", convert(condi, str ing)):\n" }{MPLTEXT 1 0 53 "SubstituteAll(%, \"ppqqrr\", convert(pqrol d, string)):\n" }{MPLTEXT 1 0 23 "pp_cospedal:= parse(%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "pp_cospedal(intri);#: collect(%, [a ,b,c], factor): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 20 "Joli pour le rapport" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 58 "lesbop:= p2=p[2],r1=r[1],q1=q[1],r2=r[2],p3= p[3],q3=q[3];\n" }{MPLTEXT 1 0 14 "subs(lesbop, \n" }{MPLTEXT 1 0 47 " map(sort,(pqrold), [a,b,c,q1,r1,p2,q2,p3,r3]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "subs(lesbop, pqr);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "subs( lesbop,condi);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 0 {PARA 4 "" 0 "" {TEXT 214 25 "barymul, barydiv, any-yna" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "barymul0:= proc(pp,pu) local p,q,r,u,v,w; \n" }{MPLTEXT 1 0 59 "p,q,r,u,v,w:= op(convert(pp,list)) , op(convert(pu,list)); \n" }{MPLTEXT 1 0 19 "[p*u,q*v,r*w]; end:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "barymul:= proc() if nargs=1 \+ then return args \n" }{MPLTEXT 1 0 41 "elif nargs=2 then return barymu l0(args) \n" }{MPLTEXT 1 0 68 "else return procname(barymul0(args[1], \+ args[2]), args[3..-1])fi end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "barymul(pp); barymul(pp,pu);barymul(pp,pu,px); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "barydiv:= proc(pp,pu); [seq](pp[j]/ pu[j],j=1..3); end: barydiv(pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "any:=proc(); (op@map)(proc(pp) local p,q,r; p,q,r:=op (pp); [xi*p, eta*q, zeta*r] end, [args]); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "yna:=proc(); (op@map)(proc(pp) local p,q,r; p,q ,r:=op(pp); \n" }{MPLTEXT 1 0 47 " [1/xi*p, 1/eta*q, 1/zeta*r] end, [a rgs]); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "any(pp); any (pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "# tests concern ant harmo" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "Determinant(Ma trix([pp1,pp2,pp3]));\n" }{MPLTEXT 1 0 48 "factor(Determinant(Matrix([ any(pp1,pp2,pp3)])));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "(f actor@harmo2@any)(pp1,pp2,pp3,pp4)-harmo2(pp1,pp2,pp3,pp4);\n" } {MPLTEXT 1 0 96 "factor(%): simplify(%, \{Determinant(Matrix([pp1,pp2, pp3])),Determinant(Matrix([pp1,pp2,pp4]))\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 27 "isoc, i sotom, isogon, tokim" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "isoc :=proc(); (op@map)(proc(pu) local u,v,w; u,v,w:=OP(pu); [p/u, q/v, r/w ] end, [args]); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "iso cm:= proc(mm) isoc(Column(mm,1..3)); end: # isocm(matacev(pu));" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 47 "isoc est mappante, involutive et \+ contravariante" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "isoc(pu,px); 'iso c(isoc(pu,px))=(pu,px)'; ASSERT(%);\n" }{MPLTEXT 1 0 49 "'(any@isoc@an y)((pu,px))=isoc(pu,px)'; ASSERT(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "isotom est P =X2 dans isoconjugate" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "isotom0:= \+ unapply([1/p,1/q,1/r],p,q,r)@OP:\n" }{MPLTEXT 1 0 63 "isotom:= proc(); (op@map)(isotom0, [args]); end: isotom(pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "tripolar:= Vector[row]@isotom;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "isogon est P=X6 dans isoconjugate" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "isogon0:= unapply([a^2/p,b^2/q,c^2/ r],p,q,r)@OP:\n" }{MPLTEXT 1 0 51 "isogon:= proc(ma); if nargs=1 and t ype(ma,Matrix) \n" }{MPLTEXT 1 0 49 "then Matrice([procname(Column(ma, 1..3))]) else \n" }{MPLTEXT 1 0 65 "(op@map)(isogon0, [args]); fi; en d: isogon(pp,pu); # isogon(aut);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "tokim:= proc(func); \n" }{MPLTEXT 1 0 76 " (factor@(U->subs( xi=a, eta=b, zeta=c, U))@yna@func@any)(args[2..-1]); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "tokim(isotom,px);tokim(isogon,px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 21 "circu mcevian, matucev" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "eqcircum:= ((u, v, w) ->a^2* v*w+b^2*w*u+c^2*v*u)@OP;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Tria ngle circumcevian" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "for qui in [a ,b,c] do [solve](\{Determinant(Matrix([p||qui,pp,px])),eqcircum(px)\}, \{y,z\}); (op@remove)(has,%,0);\n" }{MPLTEXT 1 0 42 "cc||qui:= Vector( reduce(subs(%, px))); od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "cca, Matrix([cca,ccb,ccc]);; \n" }{MPLTEXT 1 0 39 "# circumcev:= unapply(%[2], p,q,r)@OP:\n" }{MPLTEXT 1 0 37 "# n'est plus utilis\303 \251 sous cette forme" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "Descrip tion as a central triangle" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "Matri x([cca,ccb,ccc]).(1/Diag([rot3](c^2*q+r*b^2)));\n" }{MPLTEXT 1 0 31 "m atucev:= unapply(%,p,q,r)@OP: " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "Le meme en trilinears, comme kim09" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "Diag(pX(75)).matucev(barymul(px,pX(1))): FActor(%);;" }}}} {SECT 0 {PARA 4 "" 0 "" {TEXT 214 26 "circum-anticevian, matwcev" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "matcocev(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "matacev(pp); wedge(Column(%,2),Colu mn(%,3));\n" }{MPLTEXT 1 0 54 "\{ps(%,px), eqcircum(px)\}; eli:= [elim inate](%, \{z,y\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "caa:= (reduc e@subs)(eli[2][1], px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 " matacev(pp): wedge(Column(%,3),Column(%,1)):\n" }{MPLTEXT 1 0 54 "\{ps (%,px), eqcircum(px)\}: eli:= [eliminate](%, \{x,z\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "cab:= (reduce@subs)(eli[2][1], px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "matacev(pp): wedge(Column(%,1),Colu mn(%,2)): \{ps(%,px), eqcircum(px)\}: \n" }{MPLTEXT 1 0 64 "eli:= [eli minate](%, \{y,x\}); cac:= (reduce@subs)(eli[2][1], px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "Matrice([caa,cab,cac]); % .(-1/Diag (rot3(-c^2*q+r*b^2)) );\n" }{MPLTEXT 1 0 30 "matwcev:= unapply(%,p,q,r )@OP:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "Le meme en trilinears, \+ comme kim09" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "Diag(pX(75)).matwcev (barymul(px,pX(1))): FActor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "matucev(pp),matwcev(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "factor(Det(matwcev(pp)));factor(Det(matucev(pp)));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 10 "Reflection" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "reduce(2*bary2norm(pp)-bary2norm(pu)): collect(%[1],u,factor);\n" } {MPLTEXT 1 0 16 "tmp:= [rot3](%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "reflection:= subs(AAA=tmp, proc(pp,pu) local p,q,r,u, v,w;\n" }{MPLTEXT 1 0 42 " p,q,r,u,v,w:= OP(pp),OP(pu); AAA; end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "(reduce@reflection)(px,re flection(px,pp));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Les points \+ \303\240 l'infini" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "# prm_inf(pdr) ;\n" }{MPLTEXT 1 0 49 "forecast_inf:= [sigma-tau, -rho+tau, rho-sigma] ;\n" }{MPLTEXT 1 0 27 "(reduce@reflection)(%,pu);\n" }{MPLTEXT 1 0 27 "-(reduce@reflection)(pp,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 58 "complement, anticomplement, isoconjkim, comcon, anticomc on" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "complem:= proc(pp) loc al p,q,r; p,q,r:= op(convert(pp,list)); \n" }{MPLTEXT 1 0 22 "[r+q, p+ r, p+q]; end:\n" }{MPLTEXT 1 0 67 "anticomplem:= proc(pp) local p,q,r; p,q,r:= op(convert(pp,list)); \n" }{MPLTEXT 1 0 29 "[-p+q+r, p-q+r, p +q-r] ; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "complem(pp) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "'2*bary2norm(complem(pp)) + bary2norm(pp) = 3* bary2norm([1,1,1])'; \n" }{MPLTEXT 1 0 19 "ASSERT(normal(%));;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "'bary2norm(anticomplem(pp)) \+ + 2*bary2norm(pp) = 3*bary2norm([1,1,1])'; \n" }{MPLTEXT 1 0 19 "ASSER T(normal(%));;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "(b^2 /q/( a*u - b*v + c*w) + c^2 /r/(a*u + b*v - c*w))/a:\n" }{MPLTEXT 1 0 80 "[ rot3](%): subs(zipq(pp, barymul(pp,pX(75))), zipq(pu, barymul(pu,pX(75 ))), %):\n" }{MPLTEXT 1 0 26 "ckoi:= barymul(%, pX(1));;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "isoconjkim:= proc(pp,pu) local p,q, r,u,v,w; \n" }{MPLTEXT 1 0 58 "p,q,r,u,v,w:= op(convert(pp,list)), op( convert(pu,list));\n" }{MPLTEXT 1 0 39 "[a^3/(p*u), b^3/(q*v), c^3/(r* w)]; end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 13 "Test avec ETC" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "(reduce@tokim)(isoconjkim,pp,pu): m ap(sort,%);\n" }{MPLTEXT 1 0 66 "isoconjkim(isoconjkim(pp,pu),pu);isoc onjkim(pp,isoconjkim(pp,pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "xres_ini(10, [` P` ,` bary`, ` trili`, ` pole`, ` bar(pole)`, ` fixe`]):\n" }{MPLTEXT 1 0 34 "for j in [1,2,3,4,6,19,31,48] do \n" }{MPLTEXT 1 0 58 "isoconjki m||j:= unapply(isoconjkim(pX(j),pu), u,v,w)@OP: \n" }{MPLTEXT 1 0 58 " [%(pu), tokim(%, pu)]; tmp1:= map(factor,subs(shika, %));\n" }{MPLTEXT 1 0 59 "if j=3 or j=48 then tmp1:=map(U-> evalmm(U*2*a*b*c), %) \n" }{MPLTEXT 1 0 63 "elif j=4 or j=19 then tmp1:= map(U-> evalmm(U/2/a/b /c), %) fi;\n" }{MPLTEXT 1 0 73 "zipq(isoc(pu), isoconjkim(pX(j), pu)) : solve(convert(%, set), \{p,q,r\}): \n" }{MPLTEXT 1 0 49 "tmp2:= subs (%,pp); tmp3:= ency(map(sqrt, tmp2));\n" }{MPLTEXT 1 0 83 "xres_run([X (j), tmp1[1][1], tmp1[2][1], X(ency(tmp2)), factor(tmp2[1]), X(tmp3)]) ;\n" }{MPLTEXT 1 0 50 "od: j:='j': xres_cut(); # latexx(1); latexz(re s);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "evalms(isoc(pu)- iso conjkim||19(pu)); solve(%, \{p,q,r\}): ency(subs(%,pp));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "comcon:= (pp,pu)-> (complem@isoconjkim)(pp,anticomple m(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "anticomcon:= (pp ,pu)-> (anticomplem@isoconjkim)(pp,complem(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "(factor@comcon)(pp, comcon(pp,pu));\n" } {MPLTEXT 1 0 43 "(factor@anticomcon)(pp, anticomcon(pp,pu));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 0 {PARA 4 "" 0 "" {TEXT 214 29 "wedge ... the wedge operator" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "eval(wedge);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 47 "wedge:= proc (pp, pu) local p, q, r, u, \+ v, w; \n" }{TEXT 210 68 "p, q, r := op(convert(pp, list)); u, v, w := \+ op(convert(pu,list)); \n" }{TEXT 210 38 "[q*w-r*v, -p*w+r*u, p*v-u*q] \+ end proc:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "wedge est contravar iante" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "'(wedge@yna)(pp,pu) = (any @wedge)(pp,pu)'; \n" }{MPLTEXT 1 0 25 "map(reduce,%): ASSERT(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "(isoc@wedge)(pu1,pu2);(facto r@yna@isoc@wedge@any)(pu1,pu2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 68 "crossdiff, crosssum, crosssumbar, cevamu l-cevadiv, crossmul-crossdiv" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "'wedge(pp,pu)'=wedge(pp,pu); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "wedge est contravariante" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "'(wedge@yna)(pp,pu) = (any@wedge)(pp,pu)'; \n" }{MPLTEXT 1 0 22 "ASSE RT(map(reduce,%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "cross diff:= proc (pp, pu) local p, q, r, u, v, w; \n" }{MPLTEXT 1 0 39 "p, \+ q, r := OP(pp); u, v, w := OP(pu); \n" }{MPLTEXT 1 0 58 " [a^2*(q*w-r *v), b^2*(-p*w+r*u), c^2*(p*v-u*q)] end proc:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "'crossdiff(pp,pu)'=crossdiff(pp,pu);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 54 "Les points Douillet et Kimberling de la \+ droite d'Euler" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "ency(wedge(pX(2), pX(3))), ency(crossdiff(pX(2),pX(3))); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 8 "Crosssum" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "crosssum:= proc (pp, pu) local p, q, r, u, v, w; \n" }{MPLTEXT 1 0 39 "p, q, r : = OP(pp); u, v, w := OP(pu); \n" }{MPLTEXT 1 0 58 " [a^2*(q*w+r*v), b ^2*(p*w+r*u), c^2*(p*v+u*q)] end proc:\n" }{MPLTEXT 1 0 35 "'crosssum( pp,pu)'=crosssum(pp,pu);\n" }{MPLTEXT 1 0 55 " 'crosssum(pp,pp)=isog on(pp)'; ASSERT(map(reduce,%));" }}{PARA 0 "" 0 "" {TEXT 210 27 "cross sum est contravariante" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "'(crosssu m@yna)(pp,pu) = (any@crosssum)(pp,pu)'; \n" }{MPLTEXT 1 0 22 "ASSERT(m ap(reduce,%));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 11 "Crosssumbar" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "crosssumbar:= proc (pp, pu) local \+ p, q, r, u, v, w; \n" }{MPLTEXT 1 0 39 "p, q, r := OP(pp); u, v, w := \+ OP(pu); \n" }{MPLTEXT 1 0 46 " [(q*w+r*v), (p*w+r*u), (p*v+u*q)] end \+ proc:\n" }{MPLTEXT 1 0 41 "'crosssumbar(pp,pu)'=crosssumbar(pp,pu);\n" }{MPLTEXT 1 0 55 "'crosssumbar(pp,pp)=isotom(pp)'; ASSERT(map(reduce, %));" }}{PARA 0 "" 0 "" {TEXT 210 30 "crosssumbar est contravariante" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "'(crosssumbar@yna)(pp,pu) = (any@ crosssumbar)(pp,pu)'; \n" }{MPLTEXT 1 0 25 "map(reduce,%): ASSERT(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 4 "" 0 "" {TEXT 214 16 "cevamul, cevadiv" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "cevamul:= proc(pp,pu) local p,q,r,u,v,w; \n" }{MPLTEXT 1 0 58 "p,q,r, u,v,w:=op(convert(pp,list)) , op(convert(pu,list));\n" }{MPLTEXT 1 0 77 "[1/(q*w+r*v), 1/(p*w+r*u) , 1/(p*v+q*u)]; end:'cevamul(pp,pu)'=cevamul(pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "cevadiv:= proc(pp,pu) local p,q,r,u,v,w; \+ \n" }{MPLTEXT 1 0 58 "p,q,r, u,v,w:=op(convert(pp,list)), op(convert(p u,list));\n" }{MPLTEXT 1 0 75 "[(-q*r*u+r*p*v+q*p*w)*u, (q*r*u-r*p*v+q *p*w)*v, -(-q*r*u-r*p*v+q*p*w)*w]; \n" }{MPLTEXT 1 0 45 "if type(pp,Ve ctor) then Vector(%) else % fi;\n" }{MPLTEXT 1 0 5 "end:\n" }{MPLTEXT 1 0 56 "'cevadiv(pp,pu)'=cevadiv(pp,pu);;cevadiv(Vector(pp),pu);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "'cevadiv(cevamul(pp,pu),pu)= pp'; ASSERT(map(reduce, %));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 35 " cevamul et cevadiv sont covariantes" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "'(cevamul@any)(pp,pu)=(any@cevamul)(pp,pu)';: map(reduce,%): ASSER T(%);\n" }{MPLTEXT 1 0 71 "'(cevadiv@any)(pp,pu)=(any@cevadiv)(pp,pu)' ;: map(reduce,%): ASSERT(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 22 " Formulation \"atomique\"" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "'(isogo n@crosssum)(pp,pu)=cevamul(pp,pu)';ASSERT(%);\n" }{MPLTEXT 1 0 55 "'(i sotom@crosssumbar)(pp,pu)=cevamul(pp,pu)';ASSERT(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 4 "" 0 "" {TEXT 214 18 "crossmul, crossdiv" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "crossmul:= proc(pp,pu) local p,q,r, u,v,w; \n" }{MPLTEXT 1 0 58 "p,q,r, u,v,w:=op(convert(pp,list)), op(co nvert(pu,list));\n" }{MPLTEXT 1 0 58 "[1/(r*v)+1/(q*w), 1/(r*u)+1/(p*w ), 1/(q*u)+1/(p*v)]; end:\n" }{MPLTEXT 1 0 34 "'crossmul(pp,pu)'=cross mul(pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "crossdiv:= p roc(pp,pu) local p,q,r,u,v,w; \n" }{MPLTEXT 1 0 58 "p,q,r, u,v,w:=op(c onvert(pp,list)), op(convert(pu,list));\n" }{MPLTEXT 1 0 77 "[-u/(v*w* p-u*w*q-u*v*r), v/(v*w*p-u*w*q+u*v*r), w/(v*w*p+u*w*q-u*v*r)]; end:\n" }{MPLTEXT 1 0 35 "'crossdiv(pp,pu)'=crossdiv(pp,pu);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "'crossdiv(crossmul(pp,pu),pu)=pp'; \+ ASSERT(map(reduce@factor, %));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "crossmul est covariante" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "'(cr ossmul@any)(pp,pu)=(any@crossmul)(pp,pu)'; ASSERT(map(reduce,%));\n" } {MPLTEXT 1 0 69 "'(crossdiv@any)(pp,pu)=(any@crossdiv)(pp,pu)'; ASSERT (map(reduce,%));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 22 "Formulation \+ \"atomique\"" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "'crosssum(isogon(pp ),isogon(pu))=crossmul(pp,pu)';ASSERT(map(reduce, %));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Cons\303\251quence imm\303\251diate" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "'(isogon@crossmul@isogon)(pp,pu)=ce vamul (pp,pu)'; ASSERT(map(reduce,%));\n" }{MPLTEXT 1 0 74 "'(isogon@c evamul @isogon)(pp,pu)=crossmul(pp,pu)'; ASSERT(map(reduce,%)); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 36 "La polaire de U wrt la conique CC(P)" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 52 "barydiv(pp,pu); complem(%); (reduce@barydiv)(%,pu); \n" }{MPLTEXT 1 0 20 "crosssumbar(pp,pu); " }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 60 "barymul(pp,(pu)): anticomplem(%): (reduce@barymul)( %,(pu));\n" }{MPLTEXT 1 0 58 "crosssumdiv:= subs(AAA=%, proc(pp,pu) lo cal p,q,r,u,v,w; \n" }{MPLTEXT 1 0 72 "p,q,r,u,v,w:= (op@convert)(pp,l ist), (op@convert)(pu,list); AAA; end): \n" }{MPLTEXT 1 0 34 "(reduce@ cevadiv)(isotom(pp),(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "'crosssumdiv(pp,pu)'=crosssumdiv(pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "'crosssumdiv(crosssumbar(pp,pu),pu)=pp'; ASSERT(m ap(reduce,%)); \n" }{MPLTEXT 1 0 68 "'crosssumdiv(pp,pu)= cevadiv(isot om(pp),pu)';ASSERT(map(reduce,%)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "crossmul(isotom(pu),isotom(px)); (isotom@cevamul)(pu, px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 18 " persp, cevian nest" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "# [seq ](pu||j,j=1..3); map(op,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "persp:= proc(pp1,pp2,pp3,pu1,pu2,pu3) local ttt, P,U;\n" }{MPLTEXT 1 0 38 "if nargs=2 and type(pp2,Matrix) then \n" }{MPLTEXT 1 0 61 "(o p@map)(convert,[Column(pp1,1..3),Column(pp2,1..3)], list);\n" } {MPLTEXT 1 0 43 "else seq(convert(args[j], list), j=1..6); \n" } {MPLTEXT 1 0 40 "fi; P[1],P[2],P[3],U[1],U[2],U[3]:=%; \n" }{MPLTEXT 1 0 40 "ttt:= [seq](wedge(P[j],U[j]),j=1..3); \n" }{MPLTEXT 1 0 74 "i f Rank(Matrix(ttt))<>2 then print(\"not rank 2\"); return Matrix(ttt); fi;\n" }{MPLTEXT 1 0 32 "(factor@wedge)(ttt[1],ttt[2]); \n" }{MPLTEXT 1 0 20 "end: # debug(persp):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "ma:= Matrice(map(r educe,[les_cevians(pp)]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "mb:=Matrice(map(reduce,[les_anticevs(pu)]));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "cevadiv est le perspecteur" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "tmp:= persp(ma,mb); cevadiv(pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "barymul(tmp, isotom(pu)); expand( evalmm( %/p/q/r/2)); (complem)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "isotom(pp); barymul(pu, %): anticomplem(%); (reduce@barymul)(%, pu );\n" }{MPLTEXT 1 0 24 "zipd(%, cevadiv(pp,pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "barymul(px,isotom(pu)); (isotom@complem)(%); \+ barymul(%,(pu)); \n" }{MPLTEXT 1 0 24 "zipd(cevamul(pu,px), %);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "(reduce@cevadiv)(pp,cevadiv( pp,px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 9 "vertexmul" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 203 "forecast_prm_cir := `@`( `@`(proc (rho, sigma, tau) options operator, arrow; [a^2/(sigma-tau), \+ b^2/(tau-rho), c^2/(-sigma+rho)] end proc, op), proc (U) options opera tor, arrow; convert(U, list) end proc);" }}}{EXCHG {PARA 212 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "matuce v(pu),matucev(pp); seq(wedge(Column(%[1],j),Column(%[2],j)), j=1..3): \n" }{MPLTEXT 1 0 24 "<%>; mytri:= Adjoint(%):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "vertexthird est le perspecteur" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "tmp:= (elimifacu@factor@persp)(mytri,mun):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "[rot3](collect(tmp[1], a, factor));\n" } {MPLTEXT 1 0 57 "vertexthird:= subs(AAA=%, proc(pp,pu) local p,q,r,u,v ,w;\n" }{MPLTEXT 1 0 38 "p,q,r,u,v,w:=OP(pp),OP(pu); AAA; end):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "V\303\251rification du Kimberling " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "tokim(vertexthird,px,pu): colle ct(%[1]*rotp(a^2), a, factor);; \n" }{MPLTEXT 1 0 56 "tmpkim:= a/(a^2* v*w*y*z - u*x*(b*w + c*v)*(b*z + c*y));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 25 "Les cas de d\303\251g\303\251n\303\251rescence" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "factor(Det(matucev(pu)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "factor(Det(mytri));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 46 "quand P est sur le cercle, U n'intervien t plus" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "(FActor@subs)(zipq(pp, fo recast_prm_cir(pdr)), mytri):\n" }{MPLTEXT 1 0 39 "reducol(%)/ rotp(rh o-sigma): FActor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "eq2 mm:= proc(eqq_) local eqq; eqq:= numer(eqq_); \n" }{MPLTEXT 1 0 51 " \+ Matrix(3,3,(j,k)-> diff(eqq,px[j],px[k])/2); end:" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 55 "eq2mm:= proc(eqq_) local eqq, vars; eqq:= nu mer(eqq_);\n" }{MPLTEXT 1 0 52 "vars:= sort(convert(indets(%) minus\{a ,b,c\}, list));\n" }{MPLTEXT 1 0 59 "Matrix(nops(vars)$2, (j,k)-> diff (eqq,vars[j],vars[k])/2) \n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "pdr;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 37 "Quand U est sur la Ga mma-polaire de P" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "eqcircum(px); l apol:= Tr(Vector(pp)).(2*eq2mm(%)); uonpolp:= (wedge(%, Vrow(pdr)));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "tmp:= (FActor@subs)(zipq(Vector(p u), %), mytri):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "collect(lapol.Ve ctor(uonpolp), mu, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "(Vector)(vertexthird(pp, uonpolp)): factor(lapol.%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "tmq:= (reduce@FActor@Vector)(vertex third(pp, uonpolp)); \n" }{MPLTEXT 1 0 51 "tmp1:= reducol(tmp): tmp1-t mq.Vector[row]([1,1,1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "factor(vertexthird(tmq, pp)): collect(reduce(%), pdr); zipd(uonpolp, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "evalms(tmq-px): elim inate(%, \{sigma, tau\}): collect(%[2], px);; lapol;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "Det(Matrix([pp, convert(uonpolp, list), c onvert(tmq, list)]));\n" }{MPLTEXT 1 0 10 "factor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "barydiv (Column(tmp1,1),pX(6)): tmq:= collect(Vector(%), pdr, factor, distribu ted);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "Matrix(3,3, (j,k)- > coeff(tmq[j],pdr[k]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "(q*w*a^2+r*v*a^2+p*w*b^2+p*v*c^2+u*q*c^2+r*u*b^ 2); collect(%, pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "eqci rcum(px); Vector[row](pp).(2*eq2mm(%)).Vector(pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "eqs:= evalms(vertexthird(pu,px)-k*pp): eli:= [eliminate](%,\{k,y,z \});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "-elimifacu(subs(eli[1][1], px)): collect(%[ 1], a, factor); \n" }{MPLTEXT 1 0 32 "factor(%/vertexthird(pp,pu)[1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 32 "L'autre solution ne convient pas" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 51 "subs(eli[2][1], px): (factor@subs)(eli[2][1], eqs); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "# vertexthirdA(P,U)=ver texthird(pp,pu)[1]; latexx(1), latexz(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "cas de simplification" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "(factor@vertexthird)(pp,vertexthird(pp,pu)):\n" }{MPLTEXT 1 0 54 " reduce(%); tmp:= factor(%%[1]/%[1]); factor(rot(%)/%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "(factor@vertexthird)(forecast_prm_c ir(pdr), pp); elimifacu(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 213 "forecast_sarag1 := `@`(`@`(proc (u, v, w) options operator, arrow ; [a^2/(u*(w*b^2+c^2*v)), b^2/(v*(w*a^2+c^2*u)), c^2/(w*(v*a^2+u*b^2)) ] end proc, op), proc (U) options operator, arrow; convert(U, list) en d proc):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "vertexthird(pp,pp); (re duce@factor@forecast_sarag1)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 360 "darb0:= 2*c^2* (-b^4-2*a^2*b^2-c^4+2*b^2*c^2-2*a^2*c^2+3*a^4)*q^2*p-2*b^2*(b^4+2*a^2* c^2-3*c^4+2*b^2*c^2+a^4-2*a^2*b^2)*r*p^2+2*a^2*(b^4+2*a^2*c^2-3*c^4+2* b^2*c^2+a^4-2*a^2*b^2)*q^2*r+2*c^2*(-3*b^4-2*a^2*c^2+c^4+2*b^2*c^2+a^4 +2*a^2*b^2)*p^2*q-2*a^2*(-3*b^4-2*a^2*c^2+c^4+2*b^2*c^2+a^4+2*a^2*b^2) *q*r^2-2*b^2*(-b^4-2*a^2*b^2-c^4+2*b^2*c^2-2*a^2*c^2+3*a^4)*r^2*p;" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "(isotom@reduce@isotom@facto r@vertexthird)(pX(3), pp):\n" }{MPLTEXT 1 0 35 "collect(%, pp,factor,d istributed);\n" }{MPLTEXT 1 0 41 "darb1:= (factor@subs)(zipq(pp,%), da rb0):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "Le denom est la r\303\2 51union de trois coniques" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "denom( darb1): op([1,1],%); con1:= collect(%, pp, factor, distributed);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "numer(darb1); factor(%/darb0 );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "tmp:= (elimifacu@fact or@vertexthird)(pX(3), pX(1)); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 " (isogon@reduce@factor@reflection)(pX(3),pX(1)): zipd(%,tmp);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "tmp:= (elimifacu@factor@vert exthird)(pX(3), pX(3346)); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "(reduce@factor@reflection)(pX(3),pX(20)); ency(%);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "forecast_sarag1(pu); (elim ifacu@factor@vertexthird)(pu,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "nnn:= 7: matt:= Matrix(%,%,(j,k)-> ency(vertexthird(pX(j),pX( k))) );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "Vector([$1..nnn] ): <% |%|matt>: < ($2),%>:\n" }{MPLTEXT 1 0 40 " subs(`? `=A, %); # latexx(0), latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 58 "Danneels perspectors (pour m\303\251moire. voir feuille sp\303\251ciale)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 165 "DP1 := `@`(`@`(proc (u, v, w) options operator, arrow; [u^2*(v+w), v^2*(w+u) , w^2*(u+v)] end proc, op), proc (U) options operator, arrow; convert( U, list) end proc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 165 "DP2 := `@`(`@`(proc (u, v, w) options operator, arrow; [u*(v-w)^2, v*(u-w )^2, w*(-v+u)^2] end proc, op), proc (U) options operator, arrow; conv ert(U, list)end proc);" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 8 "hirst mul" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "hirstmul:= proc(pp,pu ) local p,q,r,u,v,w; p,q,r:=op(pp); u,v,w:= op(pu);\n" }{MPLTEXT 1 0 68 "[q*r*u^2 - v*w*p^2 , r*p*v^2 - w*u*q^2 , p*q*w^2 - u*v*r^2]; en d:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "hirstmul(pp,pu)+hirst mul(pu,pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "'hirstmul(pp,pu)=(wedge)(wedge(pp,p u),crosssumbar(pp,pu))';\n" }{MPLTEXT 1 0 23 "ASSERT(map(reduce,%)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "'hirstmul(hirstmul(pp,pu ),pu)=pp'; ASSERT(map(reduce, %));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "hirstmul est covariante" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 " '(hirstmul@any)(pp,pu)=(any@hirstmul)(pp,pu)';: map(reduce,%): ASSERT( %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "hirstmul(pp,pp);" }} }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 45 "eigencenter, lipotri, popotri, eigentransform" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "pu1,pu2:= [u1,v1,w1],[u2,v2,w2]:\n" }{MPLTEXT 1 0 40 "orig:= pu1,pu2,pu3; Orig:= Matrice([%]);" }}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 20 "linpoltri, pn tpoltri" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 39 "Linepolar triangle, po intpolar triangle" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "linpoltri:= pr oc (pa, pb, pc) local pA,pB,pC;\n" }{MPLTEXT 1 0 61 "if type (pa,Matri x) then pA,pB,pC:= Column(pa,1..3); return \n" }{MPLTEXT 1 0 79 " Matr ice([isotom(wedge(pB,pC)), isotom(wedge(pC,pA)), isotom(wedge(pA,pB))] ); \n" }{MPLTEXT 1 0 74 "else isotom(wedge(pb, pc)), isotom(wedge(pc, \+ pa)), isotom(wedge(pa, pb));\n" }{MPLTEXT 1 0 8 "fi; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "pntpoltri:= proc (pa, pb, pc) loca l pA,pB,pC;\n" }{MPLTEXT 1 0 61 "if type (pa,Matrix) then pA,pB,pC:= C olumn(pa,1..3); return \n" }{MPLTEXT 1 0 71 " wedge(isotom(pB, pC)), \+ wedge(isotom(pC, pA)), wedge(isotom(pA, pB))\n" }{MPLTEXT 1 0 77 "els e wedge(isotom(pb, pc)), wedge(isotom(pc, pa)), wedge(isotom(pa, pb ));\n" }{MPLTEXT 1 0 13 "fi; end proc:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "reciprocal of each other" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "'(linpoltri@pntpoltri)(orig)=orig';ASSERT(map(reduce@factor, [ lhs(%)])=[rhs(%)]);\n" }{MPLTEXT 1 0 81 "'(pntpoltri@linpoltri)(orig)= orig';ASSERT(map(reduce@factor, [lhs(%)])=[rhs(%)]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 20 "covariant operations" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "'(linpoltri@any)(orig)=(any@linpoltri)(orig)';\n" } {MPLTEXT 1 0 113 "ASSERT(map(reduce@factor, [lhs(%)])=map(reduce@facto r, [rhs(%)]));'(pntpoltri@any)(orig)=(any@pntpoltri)(orig)';\n" } {MPLTEXT 1 0 66 "ASSERT(map(reduce@factor, [lhs(%)])=map(reduce@factor , [rhs(%)]));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 46 "Discussion sur \+ les vrais et les faux triangles" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " det1:= Det(Orig); det2:= numer(Det(map(1/id, Orig)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "map(reduce, [linpoltri(orig)]): fac tor(Det(Matrix(%))); factor(%/det2/det1^2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "tmp:= map(reduce, [pntpoltri(orig)]); factor(Det(M atrix(%))); factor(%/det2^2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 48 "cocotri, eigencenter, eigentrans, antieigentrans" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "cocotri:= isoc@linpoltri: co cotri(orig)[1];\n" }{MPLTEXT 1 0 30 "cocotri:= proc (pa, pb, pc); \n" }{MPLTEXT 1 0 92 " barymul(pp,wedge(pb, pc)), barymul(pp,wedge(pc, pa )), barymul(pp,wedge(pa, pb)) end proc:\n" }{MPLTEXT 1 0 29 "cocotri6: = isogon@linpoltri;\n" }{MPLTEXT 1 0 28 "cocotri2:= isotom@linpoltri;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 57 "cocotri est involutive et contravariante en pp1,pp2,p p3.\n" }{TEXT 210 52 "Caveat : cocotri est 0-variante sur px, pp1,pp2, pp3." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "'cocotri(cocotri(orig))=(or ig)'; ASSERT(map(reduce, [lhs(%)])=[rhs(%)]);\n" }{MPLTEXT 1 0 44 "'(a ny@cocotri@any)(orig)=(cocotri(orig))'; \n" }{MPLTEXT 1 0 62 " \+ ASSERT(map(reduce, [lhs(%)])= map(reduce, [rhs(%)]));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 29 "Le gag du triangle degenerate" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "Determinant(Matrix([cocotri(orig)])): fact or(%);" }}{PARA 0 "" 0 "" {TEXT 210 63 "Deux sommets-image sont confon dus iff l'original est degenerate" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "cocotri(orig): zipd(%[1],%[2]); numer(%[1]/%[2]-1); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 46 "eigencenter : orig et cocotri sont perspective" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "PU1,PU2,PU3:= cocotri(orig): \n" }{MPLTEXT 1 0 58 "mac:= Matrix([seq](wedge(pu||j,PU||j), j=1..3)): Rank(%);\n" } {MPLTEXT 1 0 90 "qqq:= collect(convert(CrossProduct (Row(%%,1),Row(%%, 2)), list), pp, factor, distributed):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "eigencenter:= subs(AAA=qqq, proc(pu1,pu2,pu3) \n" }{MPLTEXT 1 0 64 "local u1,v1,w1,u2,v2,w2,u3,v3,w3; u1,v1,w1,u2,v2,w2,u3,v3,w3:= \n" }{MPLTEXT 1 0 76 "op(convert(pu1,list)),op(convert(pu2,list)),op(conv ert(pu3,list)); AAA end):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "eigenc enter:= subs(AAA=qqq, proc(pu1,pu2,pu3) local u1,v1,w1,u2,v2,w2,u3,v3, w3;\n" }{MPLTEXT 1 0 74 "if nargs=1 and type(pu1,Matrix) then [Column( pu1,1..3)] else [args] fi; \n" }{MPLTEXT 1 0 59 "u1,v1,w1,u2,v2,w2,u3 ,v3,w3:= (op@map)(op@convert,%, list);\n" }{MPLTEXT 1 0 5 "AAA;\n" } {MPLTEXT 1 0 6 "end): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "e igencenter(pu1, pu2, evalmm(alpha*pu1+beta*pu2)):\n" }{MPLTEXT 1 0 64 "tmp:= factor(%); reduce(%); factor(barymul(pp, wedge(pu1,pu2)));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "# eigencenter0(pp1,pp2,pp3);Matrice([pp1,pp2,pp3]): \+ %, eigencenter0(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "eige ncenter6:= subs(zipq(pp,pX(6)), eval(eigencenter)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "eigencenter2:= subs(zipq(pp,pX(2)), eval(e igencenter)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 94 "On utilise les cevians de P. Eige ntrans est le perspector entre cev(U) et le cocotri de cev(U)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "eigencenter(op(les_cevians_red)(pu) ): tmp:= factor(%);\n" }{MPLTEXT 1 0 36 "eigentrans:= unapply(tmp,u,v, w)@OP: " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Le m\303\252me en dir ect" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "(elimifacu@persp)(les_cevian s(pu), cocotri(les_cevians(pu))):\n" }{MPLTEXT 1 0 13 "zipd(%, tmp);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 46 "On teste sur le cas P=X6... is ogonal transform" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "eigentrans6:= u napply((factor@subs)(zipq(pp,pX(6)), tmp),u,v,w)@OP; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "seq( (ency@eigentrans6)(pX(j)), j=[1, 2, 3, 4, 1 , 88, 162, 92 ]);\n" }{MPLTEXT 1 0 29 "1, 3, 1075, 155, 1, 1, 1, 47;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 " " {TEXT 210 69 "On utilise les anticevians de P. Antieigentrans est le perspecteur..." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "eigencenter(les_ anticevs(pu)): (factor@expand@reduce@factor)(%):\n" }{MPLTEXT 1 0 19 " tmp:= map(sort,%);\n" }{MPLTEXT 1 0 39 "antieigentrans:= unapply(tmp,u ,v,w)@OP:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Le m\303\252me en d irect" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "(elimifacu@persp)(les_anti cevs(pu), cocotri(les_anticevs(pu)) ): zipd(%, tmp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "antieigentrans6:= unapply((factor@subs)(zipq(pp,pX(6)), tmp),u,v ,w)@OP: \n" }{MPLTEXT 1 0 77 "seq( (ency@antieigentrans6)(pX(j)), j=[1 ,2,3,4,1, 44, 513, 6, 523,512,48 ]);\n" }{MPLTEXT 1 0 31 "1,194,155,10 75,1,1,1,3,5,39,47;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "eige ntrans(pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "zipd(eigentr ans(pu), barymul( anticomplem(isoc(barymul(pu,pu))), isoc(pu)) );" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "zipd(eigentrans(pu), cevadiv(pu, is oc(pu)) );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "antieigentran s(pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "anticomplem(barym ul(pu,pu,isotom(pp)) ); reduce(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 31 "La table des U-> eigentrans6(U)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "bling:= [seq](`if`(fdat[j]=\"ohlala\", NULL, \n" }{MPLTEXT 1 0 45 " [j, (ency@eigentrans6)(pX(j))]), j=1..2):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "blang:= Matrix(remove(has, b ling, `?`)): Dimension(blang);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "lon:=10: sep:= Matrix(%,1,U->A): blang; \n" }{TEXT 210 125 "seq((o p@``)(SubMatrix(blang, k*lon+1..min((k+1)*lon,54), 1..2),sep), k=0..fl oor(54/lon)-1): tmp:= Matrix([%]); # latexx(tmp);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 19 "P ropri\303\251t\303\251s de 1 \303\240 7" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "On trouve bien le cas particulier" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "tokim(eigentrans6, pu): reduce(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 10 "p oint n\302\2602 " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "(factor@cevadiv )(pu, isoc(pu)): evalmm(%*rotp(u^2)): eigentrans(pu);\n" }{MPLTEXT 1 0 11 "zipd(%%,%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 9 "point n\302 \2603" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "pfix:= map(sqrt, pp);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "eigentrans(pfix): (zipd)(%, pfix): \+ evalmm(%/%[1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "k:='k': \+ evalms(eigentrans(pu)-k*pfix): subs(p=P^2,q=Q^2,r=R^2, %): \n" } {MPLTEXT 1 0 38 "eqs:=simplify(%) assuming P>0,Q>0,R>0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "eliminate(eqs, \{k,u\}); u-subs(%[1 ], u); \n" }{MPLTEXT 1 0 65 "collect(numer(%)/u/v/w, [P,Q,R]), add(k, \+ k=barydiv([P,Q,R], pu));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 27 "On f abrique conicir(pX(1)) " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "add(k, k =barydiv(pX(1), px)); unapply(%,x,y,z)@OP;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "reduce(tokim(%, px));;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 3 "n\302\2604" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "antieige ntrans(isoc(pu)): eigentrans(pu):\n" }{MPLTEXT 1 0 11 "zipd(%%,%);" }} }{EXCHG {PARA 0 "" 0 "" {TEXT 210 3 "n\302\2605" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "cub2 := -x*(q*z^2-y^2*r)*u+y*(-r*x^2+z^2*p)*v-z*(-q*x ^2+p*y^2)*w;\n" }{MPLTEXT 1 0 28 "fcub2:= unapply(%,x,y,z)@OP;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "eigentrans(pu); simplify(fcub2(%)), simplify(fcub2(isoc(%)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "[les_cevians_red(pu)]; map(fcub2, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "map(reduce@factor, [les_anticevs(isoc(pu))]);map(fac tor@fcub2, %);\n" }{MPLTEXT 1 0 65 "map(reduce@factor, [les_cevians(is oc(pu))]);map(factor@fcub2, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "tmp0:= eigentran s(pu);factor( fcub2(%)); #E\n" }{MPLTEXT 1 0 37 "tmp00:= isoc(tmp0 );factor( fcub2(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "tmp 1:= cevadiv(pu,pfix); factor( fcub2(%)); #D\n" }{MPLTEXT 1 0 35 "tmp2 := isoc(%%); factor( fcub2(%));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 10 "Ckoi ?????" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "tmp3:= 'tmp3': # \+ tmp3:= cevadiv(pu, tmp2);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "# Matr ix([tmp3,tmp1,tmp0]): (simplify@subs)(ici,%); Rank(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "for k in [2,4,5,20,30,98,99,100,110 ] do \n" }{MPLTEXT 1 0 80 "subs(zipq(pp,pX(6)), zipq(pu, pX(k)),[pfix, pu,isoc(pu),tmp0,tmp00,tmp1,tmp2]): \n" }{MPLTEXT 1 0 35 "print(k, map (ency, %)); od: k:='k':" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "alignements F,E,D" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "# Determinant(Matrix([pfix, tmp0,tmp1]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 " " {TEXT 210 14 "n\302\2607, now 5 bis" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "[pu, eigentrans(pu), isoc(eigentrans(pu))]: Determinant(Matrix(% ));;" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 18 "La cubique pK(6,4)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "tmp0:= eigentrans(pu): factor( fcub2(%)); #E\n" } {MPLTEXT 1 0 48 "tmp00:= isoc(tmp0): factor( fcub2(%)); #E*\n" } {MPLTEXT 1 0 47 "tmp1:= cevadiv(pu,pfix): factor( fcub2(%)); #D\n" } {MPLTEXT 1 0 47 "tmp2:= isoc(%%): factor( fcub2(%)); #D*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 110 "ici:= ency_ union cetriangle union subs(ency_, conv ert(zipq(pp,pX(6)),set) union convert(zipq(pu,pX(4)),set));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "bary2proj(subs(z=1-x-y,px)): (evalf@factor@subsop)(3=NULL, subs(ici, %)):\n" }{MPLTEXT 1 0 46 "cha nge:= plottools[transform](unapply(%,x,y)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "subs op(3=NULL, bary2proj(px)): evalms(%-[X,Y])union \{x+y+z=1\}:\n" } {MPLTEXT 1 0 50 "projx:= (expand@subs)(solve(%, \{x,y,z\}), ici, px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "projcub:= (expand@subs)( zipq(px,projx), ici, cub2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 87 "pl1x:= implicitplot(evalf(projcub), X=-2.5..2.2, Y=-3..2, grid=[15 0,150], color=black):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {TEXT 210 75 "subs(zipq(pp,pX(6)), zipq(pu, pX(2)), ency, z=1-x-y, cub2): collect(%, px);\n" }{TEXT 210 58 "pl10:= implicitplot(%, x=-3..3,y=-3..4, grid=[100,100]): \n" }{TEXT 210 19 " pl1:= change(pl10):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "subs (x=0, cub2); factor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "optbla:= [color=black];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "\{solve\}( evalms(barymu l(pu,pu)-pp), \{u,v,w\}): map(subs,%,pu): tmp:= map(reduce,%);\n" } {MPLTEXT 1 0 122 "plf:= drawna(tmp[1],\"F\",3,optbla),drawna(tmp[2],\" Fc\",1,optbla),drawna(tmp[3],\"Fb\",10,optbla),drawna(tmp[4],\"Fa\",1, optbla):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "pl2:= drawna(pa,\"A\",5, optbla),dr awna(pb,\"B\",10, optbla),drawna(pc,\"C\",3, optbla):;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "delt:= [0.05,0.05]*2:\n" }{MPLTEXT 1 0 42 "black: pl3:= drawna(pp,\"P\",6, [color=%]):\n" }{MPLTEXT 1 0 77 "black: pl5:= drawna(pu,\"U\",2, [color=%]), drawna(isoc(pu),\"U*\" ,3, [color=%]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "# tmp00; tmp0;tmp1;tmp2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "optbla: \+ pl4:= drawna(tmp0,\"E\",3, %), drawna(tmp00,\"E*\",10, %), \n" } {MPLTEXT 1 0 47 "drawna(tmp1,\"D\",4, %), drawna(tmp2,\"D*\",1, %): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "[color=black, linestyle=2 ]: # dralinpts(isoc(pu), tmp3, red), \n" }{MPLTEXT 1 0 91 "pl6:= dral inpts(isoc(pu), tmp0, %), dralinpts(isoc(pu), pfix,%), dralinpts(isoc( pu), pb,%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "[color=black , thickness=0]: # dralinpts((pu), isoc(pu), cyan),\n" }{MPLTEXT 1 0 85 "pl7:= dralinpts((pu), tmp1, %), dralinpts((pu), tmp0, %), dralinpt s((pu), tmp[4], %):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "plf0 := textplot([-0.28,0.15,\"Fc\"], font=[TIMES,ROMAN,12]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 96 "[color=cyan, thickness=0]: pl8:= dr alinpts(pa,pfix,%),dralinpts(pb,pfix,%),dralinpts(pc,pfix,%):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "[color=green, thickness=0]: \+ # dralinpts(isoc(pu), tmp3, red), \n" }{MPLTEXT 1 0 47 "pl9:= dralinp ts(pu, pb,%), dralinpts(pa, pc,%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 103 "# pl2=ABC, pl3=P, pl5=U-U*, pl4:= [E,E*,D,D*], pl6= \+ lines from U*, pl7=lines from U, pl9=vert, pl8=cyan" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 58 "Ce dessin va bien. Mise en veille por la teille du fichier" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 162 "# display(pl1x, pl2 , pl3, pl4, pl5, pl6, pl7, plf, plf0, pl8, pl9, scaling=constrained, v iew=[-0.7..1.6,-1.9..0.2], axes=none, labels=[``,``], tickmarks=[[],[] ]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " " 0 "" {TEXT 210 35 "B U* est tangente \303\240 la conique en B" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "wedge(pb,isoc(pu)): ustarb:= numer( evalm(% &* px));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "eliminate(\{cub 2, ustarb\}, \{x\});\n" }{MPLTEXT 1 0 74 "eliminate(\{cub2, ustarb\}, \+ \{x,z\}); (subs)(%[2][1],px): %, zipd(%,isoc(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "hypoth:= fcub2([X,Y,Z]); latan:= add(diff(% ,op(j,[X,Y,Z]))*px[j],j=1..3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "subs(x=X+dx,y=Y+dy,z=Z+dz,latan): \n" }{MPLTEXT 1 0 62 "eqs:= \+ \{collect(%-3*hypoth, [dx,dy,dz], factor), dx+dy+dz=0\}; \n" }{MPLTEXT 1 0 62 "eliminate(%,\{dx,dy\}): vectan:= (reduce@subs)(%[1],[dx,dy,dz ]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 57 "On trouve bien un contact , mais l'expression est horrible" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "#factor(fcub2(evalmm([X,Y,Z]+mu*vectan))-fcub2([X,Y,Z])):\n" } {MPLTEXT 1 0 22 "#somu:= solve(%,\{mu\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "# ohlala:= (reduce@factor@subs)(somu[3], evalmm([X,Y, Z]+mu*vectan)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "#(simplify@subs) (zipq([X,Y,Z], pu), ohlala):; (reduce@factor)(%);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 8 "cyclocev" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "cyclocev: =(isotom@anticomplem@isogon@complem@isotom):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "(cyclocev@cyclocev)(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "tokim(cyclocev,pp): tmp:= elimifacu(%)[1];" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "g(b,c,a) + g(c,a,b) - g(a,b, c); (rot@rot)(%+rot(rot(%)))/2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "denom(tmp);(rot@rot)(%+rot(rot(%)))/2:\n" }{MPLTEXT 1 0 10 "fa ctor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 14 "line conjugate" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "is otom(isogon(pu)): tmp:= (reduce@factor@wedge)(%, wedge(pu,pp)):\n" } {MPLTEXT 1 0 49 "collect(tmp[1], [a,p], factor): tmp:= [rot3](%);\n" } {MPLTEXT 1 0 82 "lincon:= subs(AAA=tmp, proc(pp,pu) local p,q,r,u,v,w; p,q,r,u,v,w:= op(pp),op(pu);\n" }{MPLTEXT 1 0 11 "AAA; end): " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "lincon(barymul(pp,pX1), bary mul(pu,pX1)): (reduce@factor@barymul)(%, isotom(pX1)):\n" }{MPLTEXT 1 0 38 "collect(%[1], [p], factor): [rot3](%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "collect(tmp[1], [a,b,c]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "(factor@wedge)(wedge(pu,pp), pu); collect(%[1], [p], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 12 "About a l ine" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "# bar, kim,pol,a1,a2 \+ sont des nombres \n" }{MPLTEXT 1 0 43 "# xbar,xkim,xpol,xa1,xa2 sont \+ des triplets\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 318 "NN := Ma trix(3, 3, \{(1, 1) = -(a^2-b^2+c^2)*(a^2+b^2-c^2), (1, 2) = -2*a^2*(a ^2-b^2-c^2), (1, 3) = -2*a^2*(a^2-b^2-c^2), (2, 1) = 2*b^2*(a^2-b^2+c^ 2), (2, 2) = (a^2+b^2-c^2)*(a^2-b^2-c^2), (2, 3) = 2*b^2*(a^2-b^2+c^2) , (3, 1) = 2*c^2*(a^2+b^2-c^2), (3, 2) = 2*c^2*(a^2+b^2-c^2), (3, 3) = (a^2-b^2+c^2)*(a^2-b^2-c^2)\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 206 "MM := Matrix(3, 3, \{(1, 1) = -2*a^2, (1, 2) = a^2+b^2-c^2, \+ (1, 3) = a^2-b^2+c^2, (2, 1) = a^2+b^2-c^2, (2, 2) = -2*b^2, (2, 3) = \+ -a^2+b^2+c^2, (3, 1) = a^2-b^2+c^2, (3, 2) = -a^2+b^2+c^2, (3, 3) = -2 *c^2\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "La syntaxe des arguments" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "\"if convert(lhs(quoi),string)=\"\"bar\"\" then bar:= rhs(quoi) fi;\" ;\n" }{MPLTEXT 1 0 95 "lesquoi:= cat(seq(SubstituteAll(%, \"bar\", k), k=[\"xbar\", \"bar\",\"kim\",\"pol\",\"a1\",\"a2\",\"seek\"])):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 114 "aboutlin0:=proc() local quo i, bar, kim,pol,a1,a2,xbar,xkim,xpol,xa1,xa2, vbar,j, inf,xinf,orp,xor p,hor,xhor,seek;\n" }{MPLTEXT 1 0 113 "if args[1]='help' then lprint( \"aboutlin : (nombres) bar=, kim=, pol=, a1=, a2= ... or (triplets) x bar= ... \"); \n" }{MPLTEXT 1 0 38 "return ; fi; Digits:=30: seek:=fal se;\n" }{MPLTEXT 1 0 31 "for quoi in [args] do AAA; od;\n" }{MPLTEXT 1 0 49 "if assigned(a2) then xa1:=pX(a1); xa2:=pX(a2); \n" }{MPLTEXT 1 0 59 " xbar:= (reduce@wedge)(xa1,xa2); xpol:= isotom(xbar) fi;\n" }{MPLTEXT 1 0 47 "if assigned(xbar) then xpol:= isotom(xbar) fi;\n" } {MPLTEXT 1 0 62 "if assigned(bar) then xbar:= pX(bar); xpol:= isotom(x bar) fi;\n" }{MPLTEXT 1 0 62 "if assigned(kim) then xkim:= pX(kim); xp ol:= isogon(xkim) fi;\n" }{MPLTEXT 1 0 41 "if assigned(pol) then xpol: = pX(pol) fi;\n" }{MPLTEXT 1 0 51 "if not assigned(xkim) then xkim:= i sogon(xpol) fi;\n" }{MPLTEXT 1 0 51 "if not assigned(xbar) then xbar:= isotom(xpol) fi;\n" }{MPLTEXT 1 0 27 "if not assigned(xa2) then \n" } {MPLTEXT 1 0 57 " evalf(subs(ency_, xbar)): vbar:= %/sqrt(add(k^2,k=% ));\n" }{MPLTEXT 1 0 21 " for j to jmax do \n" }{MPLTEXT 1 0 81 " \+ if abs(ps(xyz[j], vbar)) < Float(1,-10) then a1:= j; xa1:= pX(a1); br eak; fi\n" }{MPLTEXT 1 0 48 " od; if j>=jmax then a1:=9999; a2:=9999 ; else\n" }{MPLTEXT 1 0 31 " for j from a1+1 to jmax do \n" } {MPLTEXT 1 0 81 " if abs(ps(xyz[j], vbar)) < Float(1,-10) then a2:= j; xa2:= pX(a2); break; fi\n" }{MPLTEXT 1 0 37 " od; if j>=jmax the n a2:=9999; fi;\n" }{MPLTEXT 1 0 6 " fi;\n" }{MPLTEXT 1 0 4 "fi;\n" } {MPLTEXT 1 0 29 "xinf:= wedge([1,1,1],xbar); \n" }{MPLTEXT 1 0 71 "if \+ xinf=[0,0,0] then inf:= infinity; xorp:= xinf; orp:=inf; hor:=inf; \n" }{MPLTEXT 1 0 40 "else inf:=ency(%); Vector[row](xbar); \n" } {MPLTEXT 1 0 54 " xorp:= (reduce@barymul)(%.NN, %.MM); orp:= ency(%); \n" }{MPLTEXT 1 0 55 " xhor:= (reduce)(Orth.Vector(xinf)); hor:= en cy(%);\n" }{MPLTEXT 1 0 5 "fi; \n" }{MPLTEXT 1 0 53 "bar:=ency(xbar); \+ pol:=ency(xpol); kim:= ency(xkim);\n" }{MPLTEXT 1 0 73 "if seek=true \+ then print(\"nombre de points\"=nops(seekonline(a1,a2))) fi;\n" } {MPLTEXT 1 0 65 "Tr(<<` a1`, ` a2`, ` pol`,` bar`,` kim`,` inf`, ` hor `, ` orp`>|\n" }{MPLTEXT 1 0 36 " >);\n " }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "SubstituteAll(convert(ev al(aboutlin0),string),\"AAA\", lesquoi):\n" }{MPLTEXT 1 0 38 "parse(ca t(\"aboutlin:=\",%), statement):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 19 "aboutlin2:= proc()\n" }{TEXT 210 78 "loc al quoi, bar, kim, pol, a1, a2, xbar, xkim, xpol, xa1, xa2, vbar, j, i nf, \n" }{TEXT 210 19 " xinf, orp, xorp;\n" }{TEXT 210 27 " if args[ 1] = 'help' then\n" }{TEXT 210 69 " lprint(\"aboutlin : (nombres) b ar=, kim=, pol=, a1=, a2= ... or \n" }{TEXT 210 30 " (triplets) x bar= ... \");\n" }{TEXT 210 13 " return ;\n" }{TEXT 210 22 " end i f; Digits:=30:\n" }{TEXT 210 68 " for quoi in [args] do if convert(lh s(quoi), string) = \"xbar\" then\n" }{TEXT 210 24 " xbar := rhs(q uoi)\n" }{TEXT 210 12 " end if;\n" }{TEXT 210 72 " if convert(lh s(quoi), string) = \"bar\" then bar := rhs(quoi) end if;\n" }{TEXT 210 72 " if convert(lhs(quoi), string) = \"kim\" then kim := rhs(qu oi) end if;\n" }{TEXT 210 72 " if convert(lhs(quoi), string) = \"po l\" then pol := rhs(quoi) end if;\n" }{TEXT 210 70 " if convert(lhs (quoi), string) = \"a1\" then a1 := rhs(quoi) end if;\n" }{TEXT 210 70 " if convert(lhs(quoi), string) = \"a2\" then a2 := rhs(quoi) en d if;\n" }{TEXT 210 10 " end do;\n" }{TEXT 210 23 " if assigned(a2) \+ then\n" }{TEXT 210 19 " xa1 := pX(a1);\n" }{TEXT 210 19 " xa2 := pX(a2);\n" }{TEXT 210 44 " xbar := (`@`(reduce, wedge))(xa1, xa2); \n" }{TEXT 210 26 " xpol := isotom(xbar);\n" }{TEXT 210 10 " end i f;\n" }{TEXT 210 54 " if assigned(xbar) then xpol := isotom(xbar) end if;\n" }{TEXT 210 71 " if assigned(bar) then xbar := pX(bar); xpol : = isotom(xbar); end if;\n" }{TEXT 210 71 " if assigned(kim) then xkim := pX(kim); xpol := isogon(xkim); end if;\n" }{TEXT 210 48 " if assi gned(pol) then xpol := pX(pol) end if;\n" }{TEXT 210 58 " if not assi gned(xkim) then xkim := isogon(xpol) end if;\n" }{TEXT 210 58 " if no t assigned(xbar) then xbar := isotom(xpol) end if;\n" }{TEXT 210 28 " \+ if not assigned(xa2) then\n" }{TEXT 210 59 " evalf(subs(ency_, xba r)): vbar:= %/sqrt(add(k^2,k=%));\n" }{TEXT 210 66 " for j to jmax \+ do if abs(ps(xyz[j], vbar)) < Float(1,-10) then\n" }{TEXT 210 17 " \+ a1 := j;\n" }{TEXT 210 23 " xa1 := pX(a1);\n" }{TEXT 210 15 " break;\n" }{TEXT 210 14 " end if;\n" }{TEXT 210 12 " \+ end do;\n" }{TEXT 210 22 " if jmax <= j then\n" }{TEXT 210 18 " \+ a1 := 9999;\n" }{TEXT 210 18 " a2 := 9999;\n" }{TEXT 210 9 " else\n" }{TEXT 210 80 " for j from 1 + a1 to jmax do if abs(p s(xyz[j], vbar)) < Float(1,-10) then\n" }{TEXT 210 19 " a2 := j;\n" }{TEXT 210 25 " xa2 := pX(a2);\n" }{TEXT 210 17 " \+ break;\n" }{TEXT 210 16 " end if;\n" }{TEXT 210 14 " \+ end do;\n" }{TEXT 210 43 " if jmax <= j then a2 := 9999 end if;\n " }{TEXT 210 12 " end if;\n" }{TEXT 210 10 " end if;\n" }{TEXT 210 34 " xinf := wedge([1, 1, 1], xbar);\n" }{TEXT 210 27 " if xinf \+ = [0, 0, 0] then\n" }{TEXT 210 21 " inf := infinity;\n" }{TEXT 210 18 " xorp := xinf;\n" }{TEXT 210 16 " orp := inf;\n" }{TEXT 210 7 " else\n" }{TEXT 210 23 " inf := ency(xinf);\n" }{TEXT 210 23 " \+ Vector[row](xbar);\n" }{TEXT 210 60 " xorp := (`@`(reduce, barym ul))(`.`(%, NN), `.`(%, MM));\n" }{TEXT 210 20 " orp := ency(%);\n" }{TEXT 210 10 " end if;\n" }{TEXT 210 21 " bar := ency(xbar);\n" } {TEXT 210 21 " pol := ency(xpol);\n" }{TEXT 210 21 " kim := ency(xki m);\n" }{TEXT 210 64 " Tr(<<` a1`, ` a2`, ` pol`, ` bar`, ` kim`, ` i nf`, ` orp`> | \n" }{TEXT 210 39 " > );\n" }{TEXT 210 9 "end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "seekonline:= proc( a1,a2) global lespoints; local tmp, tmq, tmq2; \n" }{MPLTEXT 1 0 13 "D igits:=30: \n" }{MPLTEXT 1 0 31 "tmp:= wedge(xyz[a1],xyz[a2]): \n" } {MPLTEXT 1 0 69 "tmq:= seq(`if`(abs(ps(tmp,xyz[j]))0 then print(\"there were false positives\",%); fi;\n" }{MPLTEXT 1 0 20 "lespoints:= [tmq2];\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "aboutlin(help);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "# my lig(pX(1)); aboutlin(xbar= reduce(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "# aboutlin(a1=2,a2=3);aboutlin(a1=3,a2=6);aboutlin(a1 =3,a2=8);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "# aboutlin(a1= 1,a2=2);aboutlin(pol=7);" }}}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 59 "Les formules de base f_R, f_r, insc, g rav, circ, orth, symm" }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 34 "Le cerc le inscrit, centr\303\251 sur X(1)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "f_insc:= (a,b,c)->a; encyclo(f_insc(a,b,c));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "bary2proj([a,b,c]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "subsop(3=r, bary2proj([a,b,c ])); eqc:= (xyr2pol@op)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "eqd:= Det(Matrix([za,zb,zx])); eli:= eliminate(\{eqc,eqd\},Y):" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "factor(discrim(op(eli[2]), \+ X)): sor:= solve(%, r)[1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "simplify(sor, rule123 union \{defS\}): simplify(%) assuming c>0;\n " }{MPLTEXT 1 0 91 "(sqrt@subs)(valS2, %^2); f_r:= unapply((1/2)*sqrt( (a+b-c)*(a-b+c)*(-a+b+c)/(a+b+c)),a,b,c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "evalms(bary2proj(px)- [X,Y,1]); solve(%,\{X,Y\}):\n" }{MPLTEXT 1 0 29 "subs(%, r=f_r(a,b,c), eqc): \n" }{MPLTEXT 1 0 59 "c ollect(numer(%), px, factor@(U-> simplify(U, rule123))): \n" }{MPLTEXT 1 0 77 "select(has, factor(%), x): eqincircle:= collect(%, px, factor , distributed);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 29 "Le centre de gravit\303\251 (2) grav" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "f_grav:= unapply(1,a,b,c); encyclo(f_grav(a ,b,c));" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 30 "Le cercle circonscrit (3) circ" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "Det(Matrix(map(circ@op, [za,zb,zc,zx]))): \n" } {MPLTEXT 1 0 45 "xcs( collect(%/coeff(%, X,2), [X,Y]), X, Y):\n" } {MPLTEXT 1 0 60 "eqcir:= select(has,%, \{X,Y\})+(factor@remove)(has,%, \{X,Y\}) ;;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 16 "Formule du rayon" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "-remove(has, eqcir,\{X,Y\}): sim plify(%, rule123): f_R2:= unapply(%, a,b,c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "simplify(sqrt(f_R2(a,b,c))) assuming a>0, b>0, c> 0:\n" }{MPLTEXT 1 0 24 "f_R:= unapply(%, a,b,c);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "Les pond\303\251rations sont proportionnelles aux \+ aires." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "R*sin(2*A); subs(kashi,ex pand(%))*2*a*b*c: \n" }{MPLTEXT 1 0 51 "f_circ:= unapply(%, a,b,c); en cyclo(f_circ(a,b,c));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 "\n" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 15 "Orthocentre (4)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "f_orth:= (a,b,c)->1/(b^2+c^2-a^2); \+ encyclo(f_orth(a,b,c));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 22 "Lemoine (6) symm et \n" } {TEXT 214 65 "Gergonne (7) gerg : centre c\303\251vien des contacts d u cercle inscrit" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "f_symm:= unapply(a^2,a,b,c); encyclo(f_symm(a,b,c));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "f_gerg:= unapply(1/(b + c - a),a,b,c) ; encyclo(f _gerg(a,b,c));" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 27 "orthogonalit\30 3\251 --r\303\251sultats--" }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 24 "Sy ntaxe (conway, waycon)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "\{ -a^2+b^2+c^2=AA,a^2-b^2+c^2=BB,a^2+b^2-c^2=CC\}:\n" }{MPLTEXT 1 0 37 " a2toAA:= % union (eval@map)(-id, %);\n" }{MPLTEXT 1 0 51 "AAtoa2:= map (rhs=lhs, remove(has,%,\{-AA,-BB,-CC\}));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "\{AA+BB=2*c^2,AA+CC=2*b^2,BB+CC=2*a^2\}: AABBtoa2:= \+ % union map((eval@(-id)),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "conway0:= \{AA=2*S[a],BB=2*S[b],CC=2*S[c]\};\n" }{MPLTEXT 1 0 26 "conway:= a2toAA, conway0;\n" }{MPLTEXT 1 0 43 "waycon:= map(rhs/2= lhs/2, conway0), AAtoa2;" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 35 "Ce rcle circonscrit prm_inf, prm_cir" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "Les bonnes notations d\303\250s le d\303\251but" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "_Q1: = wedge(pdr,pX(2)); \n" }{MPLTEXT 1 0 33 "prm_inf:= unapply(%,op(pdr)) @OP;\n" }{MPLTEXT 1 0 19 "AQ2:= prm_inf(PDR);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "_U1:= isogon(_Q1);\n" }{MPLTEXT 1 0 33 "prm_cir: = unapply(%,op(pdr))@OP;\n" }{MPLTEXT 1 0 19 "AU2:= prm_cir(PDR);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 64 "u2prm est le substituant qui perm et de repasser du pdr au cercle" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " evalmm(prm_cir(pdr)-pu): tmp:= \n" }{MPLTEXT 1 0 75 "isolate(%[1], sig ma-tau),isolate(%[2], tau-rho),isolate(%[3], rho-sigma):;\n" }{MPLTEXT 1 0 48 "u2prm:=\{tmp\} union map(eval@(-id), \{tmp\}) union\n" } {MPLTEXT 1 0 53 "\{seq\}(seq(tmp[j]-tmp[k],j=1..3),k=1..3) minus \{0=0 \};\n" }{MPLTEXT 1 0 26 "subs(u2prm, prm_cir(pdr));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "eqcircum:= unapply(numer(ps(pX(6),isotom(pu))), u,v,w)@OP;\n" } {MPLTEXT 1 0 25 "(simplify@eqcircum)(_U1);" }}}}{SECT 0 {PARA 4 "" 0 " " {TEXT 214 21 "Embedded vector,WEDGE" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 15 "Embedded vector" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "veci:=pr oc(u,v) bary2norm(v)-bary2norm(u) end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "vp,vu,vx:=Vector(pp),Vector(pu),Vector(px): linf:= Ve ctor[row]([1,1,1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "Wedg e:= Vector@wedge:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 22 "WEDGE et mo de d'emploi" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "WEDGE:= Matrix@unapp ly([[0, -r, q], [r, 0, -p], [-q, p, 0]], pp)@OP;\n" }{MPLTEXT 1 0 32 " wedge(vp,vu); Tr(vp).WEDGE(vu); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 20 "matrice de pythagore" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 103 "Pyth:= Matrix([[0, -(1/2)*c^2, -(1/2)*b^2], [-(1/2)*c^2, 0, -(1/2)*a^2], [-(1/2)*b^2, -(1/2)*a^2, 0]]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "veci(pa,pb); Vector[row](%). Pyth.Vector(%);\n" }{MPLTEXT 1 0 72 "Vector[row](veci(pa,pb)).Pyth.Vec tor(veci(pa,pc)):%= subs(shika, 2*%)/2;" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 27 "Orthopoint et normalisation" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "mz:= Matrix(3,3,(j,k)->z||j||k);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 44 "eq1:= evalms(mz.vp); eq2:= evalms(linf.mz); \n" }{MPLTEXT 1 0 68 "Vector(prm_inf(pdr)): collect(2*Tr(mz.%).Pyth.%, pdr, distributed):\n" }{MPLTEXT 1 0 22 "eq3:= \{coeffs\}(%,pdr):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "eqs:= eq1 union eq2 union eq 3: nops(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 15 "general formula" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "eliminate(eqs, indets(mz)): mz0:= subs(%[1], mz): evalms(map(denom, %)) minus \{1\};\n" }{MPLTEXT 1 0 71 "mz0*op(%)/z33: mz1:= collect(%, pp); mzC:= -subs(a2toAA, conway, % )/2; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "Orthp:= Matrix@una pply(convert(mzC,listlist), pp)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "mza,mzb,mzc:= Orthp(pa),Orthp(pb),Orthp(pc);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 38 "Ils donnent tous pareil ... \303 \240 l'infini" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "Vector(prm_inf(pdr )):Orthp(pp).%, Orthp(pu).%: (reduce@FActor@subs)(waycon, zipd(%));" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "pX(4): 2*subs(conway, %); \+ Orthp(%); (FActor@subs)(waycon,%*rotp(S[a])):\n" }{MPLTEXT 1 0 47 "sub s(sapbpc, %)/2/S^2; OrtH:= subs(conway,%)/2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "# latexx(mzC), latexy([mza,mzb,mzc]), latexz(OrtH );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "vecV:= Vector(prm_inf (pdr)); subs(waycon, mzC.vecV): factor(Tr(%).Pyth.%)/\n" }{MPLTEXT 1 0 44 "factor(Tr(vecV).Pyth.vecV); subs(sapbpc, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "vecV:= Vector(prm_inf(pdr)); subs(waycon, O rtH.vecV): factor(Tr(%).Pyth.%)/\n" }{MPLTEXT 1 0 74 "factor(Tr(vecV). Pyth.vecV); subs(sapbpc, %); simplify(sqrt(%), symbolic):\n" }{MPLTEXT 1 0 14 "OrtH:= OrtH/%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 " Orth:=subs(waycon, OrtH); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "orthopoint:= proc (U) wedge(pX(2), barydiv(U, pX(4))) end proc;" } }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 48 "Orthopoint of a line, MMH, or tho_proj, ortho_sym" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "WEDGE (pp).vu, (Vector@wedge)(pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "OrtH.WEDGE(linf )*2*S: (FActor@subs)(waycon, %): MMH:= -subs(conway, 2*%)/2;\n" } {MPLTEXT 1 0 23 "MM:= subs(waycon,MMH); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "CharacteristicPolynomial(Orth, mu); charpoly(Orth_)=s ubs(sapbpc, map(factor,%));;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "CharacteristicPolynomial(MMH, mu): collect(subs(waycon, %), mu, \+ factor):\n" }{MPLTEXT 1 0 67 "eqmu:= subs(sapbpc,%); collect(discrim(f actor(%/mu), mu),S,factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "subs(ency_,eqmu); solve(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "PAS vp !!!!!!!!!!!!!!!!" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "subs (ency_, MM); vps, mp:= Eigenvectors(%):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "Quel serait le sens de ces vecteurs propres ?????" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "(reduce@FActor)(Column(mp,2));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "ortho_proj:= proc (pdr) Vect or[row](pdr); %.MM.Tr(%)*Diag(1$3)- MM.Tr(%).% end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "ortho_sym:= proc(pdr): Vector[row](pdr); %.MM.Tr(%)*Diag(1$3)-2*MM.Tr(%).% end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 58 "Lemme : h omothetie de centre pp agissant sur une droite pu" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "mun:= Diag(1$3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "pi[0]:=Vector(pp).Vector[row](pX(2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "mun+((1-k)/k/(p+q+r))*pi[0];\n" } {MPLTEXT 1 0 46 "homot:= unapply(%,p,q,r,k)@((P,k)->(OP(P),k)):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 82 "Un test : un cot\303\251 va sur u ne droite des milieux en utilisant le facteur ***DEUX***" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "2*Vector[row](pa).homot(pa,2);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 15 "Umbilic fo rmula" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "Pyth:= -Matrix([[ 0 , c^2 , b^2 ], [ c^2 , 0 , a^2 ], [ b^2 , a^2 , 0 ]])/2;\n" }{MPLTEXT 1 0 53 "# Vector(px): collect(Tr(%).Pyth.%, px, distributed);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 31 "test de la formule de Pythagore" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "tmp:= pytha(pp,pu): Vector(bary2n orm(pu)-bary2norm(pp)):\n" }{MPLTEXT 1 0 28 "factor( (Tr(%).Pyth.%)/tm p);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "pinf:= 4*S*Vector(pr m_inf(pdr)); pinfo:= Orth.pinf;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "expand(linf.pinf), expand(linf.pinfo);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "factor((Tr(pinfo).Pyth.pinfo)/(Tr(pinf).Pyth.pi nf)): subs(apbpc, defR, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "convert(pinf+I*pinfo, list); umbi:= unapply(%, op(pdr))@OP;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 48 "Le coup des angles (new) tanpts, taninf, tand rs" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "vecpu,vecpx:= bary2pro j(pu)-bary2proj(pp), bary2proj(px)-bary2proj(pp);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 8 "rule123;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 13 "Les pythagore" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "mypu2:= fa ctor(vecpu[1]*vecpu[1]+vecpu[2]*vecpu[2]):\n" }{MPLTEXT 1 0 53 "mypx2: = factor(vecpx[1]*vecpx[1]+vecpx[2]*vecpx[2]): " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 18 "Formule inattendue" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "mypu2_x:= (factor@simplify)(mypu2, rule123):\n" }{MPLTEXT 1 0 62 "collect(numer(mypu2_x), [p,q,r,u,v,w], factor, distributed): \n" } {MPLTEXT 1 0 58 "collect(subs(conway, %), [S[a],S[b],S[c],a,b,c], fact or):\n" }{MPLTEXT 1 0 80 "subs(zipq(wedge(pu,pp), px), zipq(-wedge(pu, pp), -px), %): eq2mm(%):; -MMH*2*S:;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "'wedge(vp,vu).MMH.Tr(wedge(vp,vu))/(p+q+r)^2/(u+v+w)^2*2*S'; \n" }{MPLTEXT 1 0 33 "(factor@subs)(waycon, %/mypu2_x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 16 "Formule attendue" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "Vector(veci(pp,pu)): Tr(%).Pyth.%: factor(%/mypu2_x);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 20 "sin, cos, pythagore" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 52 "mysin:= factor(vecpu[1]*vecpx[2]-vecpu[2]*ve cpx[1]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "mycos:= factor(vecpu[1] *vecpx[1]+vecpu[2]*vecpx[2]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "no rmal(mysin^2+mycos^2-mypu2*mypx2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Test sur B,C,A" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "subs(zipq (pp,pb),zipq(pu,pc),zipq(px,pa), defS, -defS, mysin); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "tmp:= simplify(mycos, rule123): ind ets(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 18 "caveat : facteur 2" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "collect(numer(tmp), [p,q,r,u,v,w,x ,y,z], factor, distributed): subs(conway, %):\n" }{MPLTEXT 1 0 72 "col lect(%/2, [p,q,r,u,v,w,x,y,z], factor, distributed):subs(conway, %);\n " }{MPLTEXT 1 0 59 "tmq1:= collect(%, [S[a],S[b],S[c],a^2,b^2,c^2], %, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "(op@zipq)(wedg e(pp,pu),[A,B,C]),(op@zipq)(wedge(pp,px),[E,F,G]);\n" }{MPLTEXT 1 0 79 "tmq2:= simplify(tmq1, \{%\});collect(%, [S[a],S[b],S[c],a^2,b^2,c^ 2], %, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "Vector[r ow]([A,B,C]).MMH.Vector([E,F,G]); factor(%/tmq2);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "\"mycos\"='(Wedge(vp,v u).MMH.Tr(Wedge(vp,vx)))/((q+p+r)^2*(x+y+z)*(u+v+w))'; \n" }{MPLTEXT 1 0 55 "latexx(eval(%,1)); factor( subs(waycon, rhs(%))/tmp); \n" } {MPLTEXT 1 0 74 "Matrix([vp,vu,vx]): \"mysin\"= subs(defS, Det(%)=Det_ (%), mysin); latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 " tanpts:= proc(pp,pu,px) local vp,vu,vx, tmp; \n" }{MPLTEXT 1 0 45 "vp, vu,vx:= Vector(pp),Vector(pu),Vector(px);\n" }{MPLTEXT 1 0 81 "tmp:= ( wedge(vp, vu).MMH.Tr(wedge(vp, vx))); if tmp=0 then return infinity fi ; \n" }{MPLTEXT 1 0 45 "2*S*Det(Matrix([vp,vu,vx]))*add(k,k=pp)/tmp; \n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 25 "Tes t global de la formule" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "(factor@s implify)( mysin/mycos, rule123): \n" }{MPLTEXT 1 0 55 "factor(subs(def S, %) / subs(waycon, tanpts(pp,pu,px)));" }}{PARA 0 "" 0 "" {TEXT 210 11 "Deux essais" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "tanpts(2*pa,pb,p c): subs(waycon, shika, isolate(defR,S), a=sin(A)*2*R, %);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "matcev(pX(4)): tanpts(Column(%,1), pa, pb): subs(conway, 1/%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "tanp ts(pa,pp,pu): 2*numer(%)/subs(waycon, 2*collect(denom(%), [S[a]])); \+ \n" }{MPLTEXT 1 0 56 "taninf:= unapply(%, p,q,r,u,v,w)@((U,V)->(OP(U), OP(V))):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "taninf([u[1],v[ 1],w[1]],[u[2],v[2],w[2]]): \n" }{MPLTEXT 1 0 66 "collect((normal@subs )(conway,%), [S[a]]); # latexx(%), latexz(0);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "tanpts(wedge(pp,pu),wedge(pp,linf),wedge(pu,li nf)):\n" }{MPLTEXT 1 0 50 "factor(%): tmp:= map(collect,%, [S[a],S[b], S[c]]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "2*collect( -nume r(tmp)/2, [S,u,v,w]): \n" }{MPLTEXT 1 0 43 "%/ collect(-denom(tmp), [S [a],S[b],S[c]]);\n" }{MPLTEXT 1 0 56 "tandrs:= unapply(%, p,q,r,u,v,w) @((U,V)->(OP(U),OP(V))):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 19 "Form ule des droites" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "_pp,_pu:= Tr(vp) ,Tr(vu): tandrs(_pp,_pu); \n" }{MPLTEXT 1 0 48 "'2*S*(_pp.wedge(_pu,li nf))/(_pp.MMH.Tr(_pu))'; \n" }{MPLTEXT 1 0 16 "factor(%/(%%)); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "tandrs(wedge(pa,pb),wedge(pa ,pc)); tanpts(pa,pb,pc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "# lquolen(G,Y,G,P);\" \\overrightarrow\{GY\}\\div\\overrightarrow\{GP\}=\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 28 "Steiner -> gone to \"steiner\"" }}{PARA 0 "" 0 "" {TEXT 210 0 "" } }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 18 "aire d'un triangle" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "aire:= proc(mm); Det(mm)*S/mul(k,k= linf.mm) end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 38 "orth opole (il y avait m\303\252me un dessin)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 322 "NN := Matrix(3, 3, \{(1, 1) = -(c^2+a^2-b^2)*(a^2+b^ 2-c^2), (1, 2) = -2*a^2*(-b^2-c^2+a^2), (1, 3) = -2*a^2*(-b^2-c^2+a^2) , (2, 1) = 2*b^2*(c^2+a^2-b^2), (2, 2) = (a^2+b^2-c^2)*(-b^2-c^2+a^2), (2, 3) = 2*b^2*(c^2+a^2-b^2), (3, 1) = 2*c^2*(a^2+b^2-c^2), (3, 2) = \+ 2*c^2*(a^2+b^2-c^2), (3, 3) = (c^2+a^2-b^2)*(-b^2-c^2+a^2)\});" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "orthopole:= proc(pdr); Vecto r[row](pdr); barymul(%.MM,%.NN) end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 63 "Et un tr\3 03\250s beau dessin avec circumcircle antipodes et orthopole" }}} {SECT 0 {PARA 4 "" 0 "" {TEXT 214 12 "Rigby-Simson" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 233 "prm_sim :=unapply([(sigma-tau)/((2*rho-sigm a-tau)*a^2+(-sigma+tau)*b^2+c^2*(sigma-tau)), (rho-tau)/(a^2*(rho-tau) +(rho-2*sigma+tau)*b^2+(-rho+tau)*c^2), -(rho-sigma)/((rho-sigma)*a^2+ (-rho+sigma)*b^2+(sigma-2*tau+rho)*c^2)], pdr)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 132 "prm_stn := (proc (rho, sigma, tau); [(-b^2 -c^2+a^2)*(sigma-tau), (c^2+a^2-b^2)*(rho-tau), -(-sigma+rho)*(a^2+b^2 -c^2)] end proc)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "pdr; \n" }{MPLTEXT 1 0 111 " nineq:= unapply((b^2+c^2-a^2)*x^2-2*b^2*x*z-2*c^2*x*y+(c^2+a^2-b^2)*y^ 2-2*a^2*y*z+z^2*(a^2+b^2-c^2),x,y,z)@OP:\n" }{MPLTEXT 1 0 10 "nineq(px );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "_Q1:= wedge(pdr, pX(2 ));\n" }{MPLTEXT 1 0 55 "_U1:= isogon(_Q1); _St1:= (reduce@barydiv)(_Q 1, pX(4));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "_Q2:= (wedge) (_St1, pX(2)): \n" }{MPLTEXT 1 0 55 "_U2:= isogon(_Q2); _St2:= (reduce @barydiv)(_Q2, pX(4));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "les _Q sont orthopoints, les _U sont antipodaires" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "zipd(orthopoint(_Q1), _Q2); \n" }{MPLTEXT 1 0 43 "zip d(bary2norm(_U1)+bary2norm(_U2), pX(3));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "_Si1:= (reduce@factor@evalmm)(_St1 &* homot(_U1,2)); \n" }{MPLTEXT 1 0 52 "_Si2:= (reduce@factor@evalmm)(_St2 &* homot(_U2, 2));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "zipd(prm_sim(pdr), _Si1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "Le milieu M de UH est sur Sim son1 et sur le nine" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "_M1:= (reduc e@factor)(bary2norm(pX(4))+bary2norm(_U1)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "(simplify@ps)(_Si1, _M1), (simplify@nineq)(_M1);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 64 "L'intersection des deux Simson es t l'orthopole de la droite U1U2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " (factor@wedge)(_Si1, _Si2):\n" }{MPLTEXT 1 0 40 "(orthopole@wedge)(_U1 , _U2): zipd(%%,%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 92 "une droit e de Simson contient les orthopoles de toutes les droites qui lui sont orthogonales" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "map(orthopole, [pd r,_Si2,_St2]): map(simplify@ps, %, _Si1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "#(elimifacu@wedge)(pdr,_Si1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 53 "L'ort hopole de Simson1 est sur Steiner1 inter Simson2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "zipd(orthopole(_Si1), wedge(_Si2, _St1));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 46 "L'intersection des deux Simson est sur l e nine" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "wedge(_Si1,_Si2): (simpli fy@nineq)(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 63 "Si2 est le Sims on parall\303\250le \303\240 pdr, Si1 est le Simson orthogonal" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "(reduce@factor@wedge)(pdr, _Si2); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 47 "A2 est \+ un autre, pas n\303\251cessairement l'antipodal" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "AU2:= prm_cir(PDR);\n" }{MPLTEXT 1 0 22 "ASi2:= prm_s im(PDR); \n" }{MPLTEXT 1 0 53 "subs(sigma=Sigma, tau=Tau,rho=Rho, _Si1 ): zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 48 "L'orthopole de PU est l'intersec tion des Simson" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "zipd(orthopole(w edge(_U1,AU2)), wedge(_Si1,ASi2));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "RS:= (P,U)->orthopole(wedge(P,U));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "Le troisieme point du triangle" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "SR:= (P,U)->isogon(wedge(wedge(P,U),pX(2)));" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "SR(pp,pu):; [rot3](xcollect(%[1],[u ,-p])); # latexx(1), latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 40 "Le SR_kim est UP* int er PU* = SM (6,P,U)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 12 "Simson Mo ses" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 106 "tmq:= [(v1*w2-w1*v2)/(q*w1* w2-r*v1*v2), (u1*w2-w1*u2)/(p*w1*w2-r*u1*u2), (u1*v2-v1*u2)/(p*v1*v2-q *u1*u2)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "SM:= subs(AAA=tmq, pro c(pp,pu1,pu2) local p,q,r,u1,v1,w1,u2,v2,w2;\n" }{MPLTEXT 1 0 59 "p,q, r,u1,v1,w1,u2,v2,w2:= OP(pp),OP(pu1),OP(pu2); AAA end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "SM(pX(6),pX(74),pX(98)): ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "[a^2/(u^2*(c*v+b*w)*(-c*v+b*w)), -b^2/(v^2*(-c*u+ a*w)*(c*u+a*w)), c^2/(w^2*(b*u+a*v)*(-b*u+a*v))];\n" }{MPLTEXT 1 0 28 "third:= unapply(%,u,v,w)@OP:" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }} {SECT 0 {PARA 4 "" 0 "" {TEXT 214 19 "duality point-lines" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "aboutlin(a1=2,a2=3); Leulr:= expand (pX(525)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "aboutlin(a1= 3,a2=6); Lbroc:= (expand@reduce)(pX(850));" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 65 "aboutlin(a1=3,a2=8); Lqqqq:= (reduce@expand@wedge)( pX(3),pX(8)):;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "aboutlin( a1=1,a2=2); Lnagel:= (expand@reduce)(pX(514));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "aboutlin(a1=514,a2=650); Lgergon:= (expand@redu ce)(pX(8));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 53 "Cevia n nest - Utiliser isoconjkim, anticomcon, comcon" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "isoconjkim(pp,pu); isoconjkim(isoconjkim(pp,pu ), pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "Un point est une colonne" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "lespoints:= Matrice([pp1,pp2,pp3]); (op@map)(op , convert(%, listlist));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "vp,vu,vx:= Vector(pp),Vector(pu), Vector(px);\n" }}}{SECT 0 {PARA 5 " " 0 "" {TEXT 215 35 "mkcev : les cevians (mattri, point)" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 47 "Cevian triangle from ( matrixofcolumns, \+ point )" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "tmpp:= [(wedge)(wedge(pp 1,pp), wedge(pp2,pp3)),\n" }{MPLTEXT 1 0 40 "(wedge)(wedge(pp2,pp), we dge(pp3,pp1)),\n" }{MPLTEXT 1 0 40 "(wedge)(wedge(pp3,pp), wedge(pp1,p p2))]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "mkcev:= subs(AAA=tmpp, \n " }{MPLTEXT 1 0 61 "proc(ma,pp) local p,q,r, p1, q1, r1, p2, q2, r2, p 3, q3, r3;\n" }{MPLTEXT 1 0 75 "p1, p2, p3, q1, q2, q3, r1, r2, r3:= \+ (op@map)(op, convert(ma, listlist));\n" }{MPLTEXT 1 0 33 "p,q,r:= (op@ convert)(pp, list); \n" }{MPLTEXT 1 0 19 "Matrice(AAA); end):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 43 "mkanticev : les anticevians (mattri, point)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "map( (Determinant@Matrix), \{[pp4,p p1,pp],[pp5,pp2,pp],[pp6,pp3,pp],\n" }{MPLTEXT 1 0 44 "[pp2,pp4,pp6],[ pp3,pp5,pp4],[pp1,pp6,pp5]\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "e li:= [eliminate](%, \{p4,q4,p5,q5,p6,q6\}): map(length, %), map2(op,2, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 47 "eli[1][1]: map(reduce, subs(%, [pp4,pp5,pp6] ));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "eli[2][1]: tmpq:= ma p(reduce, subs(%, [-pp4,pp5,-pp6])):\n" }{MPLTEXT 1 0 25 "mkacev:= sub s(AAA=tmpq, \n" }{MPLTEXT 1 0 61 "proc(ma,pp) local p,q,r, p1, q1, r1, p2, q2, r2, p3, q3, r3;\n" }{MPLTEXT 1 0 32 "p,q,r:= (op@convert)(pp, list);\n" }{MPLTEXT 1 0 74 "p1, p2, p3, q1, q2, q3, r1, r2, r3:= (op@ map)(op, convert(ma, listlist));\n" }{MPLTEXT 1 0 19 "Matrice(AAA); en d):" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 22 "Tests mkcev, mkanticev" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "matcev(pp), mkcev(mun,pp) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "matacev(pp), mkacev(mu n,pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "mkcev(mkacev(lesp oints,pp),pp): reducol(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "mkacev(mkcev(lespoints,pp),pp): reducol(%);" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "matp:= Diag@(U-> convert(U,list)):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "sqrtmul:= unapply( map(sqrt, barymul(pu,px)),u,v,w,x,y,z)@\n" }{MPLTEXT 1 0 24 "((U,Y)->(OP(U),OP(Y )));\n" }{MPLTEXT 1 0 59 "sqrtdiv:= unapply( barymul(pu,pu,isotom(px)) ,u,v,w,x,y,z)@\n" }{MPLTEXT 1 0 23 "((U,Y)->(OP(U),OP(Y)));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 36 "Les formule s en complem, anticomplem" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "barymu l(( isotom@complem@barydiv)(px,pu),pu): zipd(%, cevamul(pu,px));\n" }{MPLTEXT 1 0 73 "barymul((anticomplem@isotom@barydiv)(pp,pu),pu): zi pd(%, cevadiv(pp,pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "b arymul(( complem@isotom@barydiv)(px,pu),pu): zipd(%, crossmul(pu,px ));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "barymul((isotom@anticomplem@ barydiv)(pp,pu),pu): zipd(%, crossdiv(pp,pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "'(isotom@cevamul)(isotom(pu),isotom(px))=crossm ul(pu,px)'; ASSERT(%);" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 36 "Les coniques --resultats-- (lesbom)" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "eq2mm:= proc(eqq_) local eqq ; eqq:= numer(eqq_); \n" }{MPLTEXT 1 0 51 " Matrix(3,3,(j,k)-> diff(e qq,px[j],px[k])/2); end:" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 57 "Per specteur d'une conique. mm2persp donne le perspecteur" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "mun:= Diag(1$3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "mm:= Matrix(3,3,(j,k)->m||j||k, shape=symm etric); Vector(pu);\n" }{MPLTEXT 1 0 36 "fun:= unapply(Tr(%).%%.%, u,v ,w)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "eq2mm(fun(px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "lesbom:= seq(seq(m||j||k =m[j*10+k], j=1..3),k=1..3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 70 " Adjoint donne vraiment coM, la matrice des cofacteurs \303\240 la bonn e place" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "mmt:= Adjoint(mm); EXpan d(mmt.mm): xjoli(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 63 "Les somm ets du triangle polaire sont les colonnes de l'adjointe" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "<1|0|0>.mm;<0|1|0>.mm; (Tr@Matrix@wedge)(%%,%) ;" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 60 "mun est le triangle de base; mmt est le triangle polaire; \n" }{TEXT 210 60 "Pour que mun soit autopolaire, il faut une conique dia gonale" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "mmt-Matrix(mmt, shape=dia gonal): \{Entries\}(%);eliminate(%, \{m12,m13\});\n" }{MPLTEXT 1 0 22 "subs(m23=0, %[1], mm);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 51 "Si mu n n'est pas autopolaire, il y a un perspecteur" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "(isotom@reduce@isotom@persp)(mmt, mun):\n" }{MPLTEXT 1 0 44 "tmp:= map(sort, factor(-%), [m11,m22,m33]);\n" }{MPLTEXT 1 0 117 "proc(mm); map(op, convert(mm,listlist)); [m11, m12, m13, m12, m2 2, m23, m13, m23, m33]; subs(zipq(%,%%), AA); end: \n" }{MPLTEXT 1 0 27 "mm2persp:= subs(AA=tmp, %):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "subs(lesbom, mm2persp(mm));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 35 "Le perspecteur de la conique duale " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "(isotom@reduce@isotom@FActor@mm2persp@Adjoint)(mm);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 45 "Le centre est le pole de la li gne de l'infini" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "A completed li ne is ... quite a parabola" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "(x+y +z)*(u*x+v*y+w*z): mm0:= eq2mm(%); Det(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "(FActor@Adjoint)(mm0): %, EXpand(%.Vector([1,1,1]));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "Two parallel lines are a para bola" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "prm_inf(pdr): ps(wedge(pp,% ), px)*ps(wedge(pu,%), px): \n" }{MPLTEXT 1 0 34 "mm0:= (eq2mm(%)): (f actor@Det)(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Adjoint(mm0).Vect or([1,1,1]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 91 "Deux droites for ment une parabole lorsque le point \303\240 l'infini de l'une appartie nt \303\240 l'autre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "ps(pp, px)*p s(pu, px): \n" }{MPLTEXT 1 0 34 "mm0:= (eq2mm(%)): (factor@Det)(%);" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "FActor(Adjoint(mm0).Vector([1,1,1] )): \n" }{MPLTEXT 1 0 38 "\{Entries\}(%); sol:= solve(%, \{u,v,w\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "(reduce@subs)(sol[2], pu); numer( subs(sol[1],u)-u): collect(%, pu);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "Adjoin t(mm).Vector([1,1,1]): cen:= FActor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 ";\n" }{MPLTEXT 1 0 38 "subs(lesbom, %); latexx(0), latexz(% );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "Vector(reflection(cen, px)): tmp:= factor(Tr(%).mm.%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "Vector(px): tmpe:= factor(Tr(%).mm. %); tmq:= tmp/%:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "eqq:= s ubs(z=-x-y, tmpe): discrim(%, x)/(-4*y^2);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 50 "Vector[row]([1,1,1]).Adjoint(mm).Vector([1,1,1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "x=-coeff(eqq,x,1)/2/coeff(eqq,x,2); (reduce@subs )(%, [x,y,-x-y]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "op(1, tmq): xcs(%,m11,m22,m33, gere_xy);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 45 "conicir, coni_in (par rapport au perspector)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "conicir:= unapply(p/x+q/y +r/z,p,q,r)@OP;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "funcc:= unapply( conicir(pp),x,y,z)@OP;\n" }{MPLTEXT 1 0 25 "(` conicir`=conicir)(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "(numer@conicir)(pX(6)): \+ eqcircum:= unapply(%,x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "eqc:= (numer@conicir)(pp); mcc:= 2*(eq2mm@conicir)(pp);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 58 "Le quatri\303\250me point commun \+ \303\240 deux conicir est le pole de PU" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "\{conicir(pp), conicir(pu)\}; eliminate(%, \{x,y\});\n" } {MPLTEXT 1 0 54 "(subs)(%[1], px): elimifacu(%); (isotom@wedge)(pp,pu) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "(reduce@mm2persp)(mcc); (reduce@mm2persp@Adjoi nt)(mcc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "Adjoint(mcc): \+ mic:= map(-1/id, %); Tr(Vector(px)).mic.Vector(px):\n" }{MPLTEXT 1 0 35 "eqi:= collect(%, px, distributed);\n" }{MPLTEXT 1 0 30 "coni_in:= \+ unapply(%,p,q,r)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "Adj oint(mic): map(U->`if`(U=0,0,1/U), %)*2/p/q/r;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "reduce(mm2persp(mcc)); reduce(mm2persp(mic)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "k:='k': eqc;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 46 "Centre d'une circumconic = P * anticomplem(P)\n" }{TEXT 210 37 "Centre d'une inconic = P * complem(P)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "center_of_cc := [-(p-q-r)*p, (p-q+r)*q, (p+q-r)*r];\n " }{MPLTEXT 1 0 45 "center_of_ic := [p*(q+r), q*(p+r), (p+q)*r];\n" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 59 "Construire un point de con_in \303\240 partir d'un point de con_cc" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "[rot3](p*(v/q+w/r)); \+ (factor@subs)(zipq(px,%), eqi);" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 32 "Incircle, utilisant ortho_sym.\n" }{TEXT 214 40 "On ne retrou ve pas la formule Kimberling" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 212 "IT := `@`(`@`(proc (u, v, w) options operator, arrow; [a^2*(-c*v+ b*w)^2/(-b-c+a), -b^2*(-c*u+a*w)^2/(c+a-b), -c^2*(-b*u+a*v)^2/(b+a-c)] end proc, op), proc (U) options operator, arrow; convert(U, list) end proc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 251 "IT2 := `@`(`@`( proc (u, v, w) options operator, arrow; [-a^2*(w*b^2-c^2*v)^2/(b^2*c^2 *(-b-c+a)), b^2*(w*a^2-c^2*u)^2/(c^2*a^2*(c+a-b)), c^2*(v*a^2-u*b^2)^2 /(a^2*b^2*(b+a-c))] end proc, op), proc (U) options operator, arrow; c onvert(U, list) end proc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 7 "conicev" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "\{le s_cevians\}(pp) union \{les_cevians\}(pu): map(factor@numer@fun, %);\n " }{MPLTEXT 1 0 58 "eliminate(%, \{m11,m22,m33,m12,m13\}); mm1:= subs( %[1], mm);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "mm1*(q*w+r*v) *p*u/m23/p/q/r/u/v/w: mm11:= EXpand(%); \n" }{MPLTEXT 1 0 76 "evalm (p x &* mm11 &* px): conicev0:= collect(-%/2, px, expand, distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "conicev:= subs(AA=conicev 0, proc(pp,pu) local p,q,r,u,v,w; \n" }{MPLTEXT 1 0 39 "p,q,r,u,v,w:= \+ OP(pp), OP(pu); AA; end):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "Le \+ lien avec les coni_in" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "conicev(pp ,pp); coni_in(pp);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "subs(x=0, %); factor(%); [solve](%, \{z\}): map(reduce@subs,%,x=0, [x,y,z]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 25 "perspecteur d'une conicev" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "conicev(pp,pu); eq2mm(%); (factor@mm2persp)(%): elimifacu(%); \n" }{MPLTEXT 1 0 69 "# (elimifacu@factor@subs)(zipq(pp,pX(2)),zipq(pu ,pX(4)) ,%); ency(%);" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 39 "Centre d'une conicev : c'est pas facile" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 37 "Quatrieme point commun \303\240 deux conicev" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 64 "Condition pour qu'une conique soit une c onique cevienne : mm2cvc" }}{SECT 0 {PARA 5 "" 0 "" {TEXT 215 63 "cond icev: cette \303\251limination donne la condition, pas le r\303\251sul tat" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "2*k*(eq2mm@conicev)(p p,pu)-mm: eqs:= evalms(%);\n" }{MPLTEXT 1 0 34 "# eli:= eliminate(%, \+ \{k,p,q,u,v\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "fun(px); mm:= Matrix(eq2mm(%), shape=symmetric); ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "condiconcev:= m22*m11*m33 -m33*m12^2-m22*m13^2-m11*m23^2-2*m13*m12*m23; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "pppp := [\n" }{MPLTEXT 1 0 69 "((m12^2-m11*m22) *m13+sqrt(m12^2-m22*m11)*(m11*m23+m13*m12))*m22*m33,\n" }{MPLTEXT 1 0 69 "((m12^2-m11*m22)*m23-sqrt(m12^2-m22*m11)*(m22*m13+m23*m12))*m11*m3 3,\n" }{MPLTEXT 1 0 56 "m22*m11*(m11*m23^2+2*m13*m23*m12+m13^2*m22)]: \+ Vector(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "mm2cvc:= subs (AAA=condiconcev, BBB=pppp, \n" }{MPLTEXT 1 0 63 " CCC= subs(sqrt(-m1 1*m22+m12^2)=-sqrt(-m11*m22+m12^2), pppp),\n" }{MPLTEXT 1 0 216 "proc( mm_) local mm, mymm; mm:= Matrix(3, 3, \{(1, 1) = m11, (1, 2) = m12, ( 1, 3) = m13, (2, 1) = m12, (2, 2) = m22, (2, 3) = m23, (3, 1) = m13, ( 3, 2) = m23, (3, 3) = m33\}); mymm:= solve(evalms(mm_-mm), indets(mm)) ; \n" }{MPLTEXT 1 0 67 "subs(mymm, AAA), subs(mymm, Vector(BBB)), subs (mymm, Vector(CCC));\n" }{MPLTEXT 1 0 5 "end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "conicev(pp,pu); tmpmat:= eq2mm(%); tmpa, tmpb, \+ tmpc:= mm2cvc(%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "la_con dition_est_realis\303\251e=factor(tmpa);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Matrix([tmpb, tmpc, Vector([1,1,1])]): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "simplify(%) assuming (w*r*(p*v-u*q)) >0: redu col(%);" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "normacir:= proc (cir_) local funci, cir; cir:= numer(cir_);\n" }{MPLTEXT 1 0 77 "[seq] (subs(k=1, cir), k=[x,y,z]); funci:= Vector[row](subs(x=0,y=0,z=0, %)) ;\n" }{MPLTEXT 1 0 45 "factor( (rots(x)*(%.vx)-cir)/eqcircum(px)); \n" }{MPLTEXT 1 0 61 "funci:= map(U-> numer(U)/expand(denom(U)), FActor(f unci/%));\n" }{MPLTEXT 1 0 33 "eqcircum(px)-rots(x)*(funci.vx);\n" } {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "col lineate:= proc(p1,p2,p3,p4,q1,q2,q3,q4) global DDg, Mg; local P_,PP,DD ; \n" }{MPLTEXT 1 0 57 "P_, PP:= Matrice([p1,p2,p3,p4]), Matrice([q1,q 2,q3,q4]);\n" }{MPLTEXT 1 0 76 "DDg:= Diag(seq(Det(DeleteColumn(PP, j) )/Det(DeleteColumn(P_, j)), j=1..4));\n" }{MPLTEXT 1 0 79 "Mg:= Delete Column(PP,4).SubMatrix(DDg,1..3,1..3).(1/DeleteColumn(P_,4)); NULL;\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }} {PAGEBK }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 0 {PARA 3 "" 0 "" {TEXT 213 25 "orthogonalit\3 03\251 --le tout--" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 7 "Syntaxe" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "\{-a^2+b^2+c^2=AA,a^2-b^2+c^ 2=BB,a^2+b^2-c^2=CC\}:\n" }{MPLTEXT 1 0 37 "a2toAA:= % union (eval@map )(-id, %);\n" }{MPLTEXT 1 0 25 "AAtoa2:= map(rhs=lhs, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "\{AA+BB=2*c^2,AA+CC=2*b^2,BB+CC=2*a ^2\}: AABBtoa2:= % union map((eval@(-id)),%);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 18 "Cercle circonscrit" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "bary2proj(px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "[pa,pb,pc,px]; map(circ@op@bary2proj, %):\n" }{MPLTEXT 1 0 51 "Determinant(Matrix(%)); tmp:= simplify(%, rule123):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "factor(tmp); #latexx(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "pdr:= [rho,sigma,tau]; PDR:= [Rho,S igma,Tau];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "Les bonnes notatio ns d\303\250s le d\303\251but" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "_Q 1:= wedge(pdr,pX(2)); \n" }{MPLTEXT 1 0 33 "prm_inf:= unapply(%,op(pdr ))@OP;\n" }{MPLTEXT 1 0 19 "AQ2:= prm_inf(PDR);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "_U1:= isogon(_Q1);\n" }{MPLTEXT 1 0 33 "prm_ci r:= unapply(%,op(pdr))@OP;\n" }{MPLTEXT 1 0 19 "AU2:= prm_cir(PDR);" } }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 64 "u2prm est le substituant qui pe rmet de repasser du pdr au cercle" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "evalmm(prm_cir(pdr)-pu): tmp:= \n" }{MPLTEXT 1 0 75 "isolate(%[1], sigma-tau),isolate(%[2], tau-rho),isolate(%[3], rho-sigma):;\n" } {MPLTEXT 1 0 48 "u2prm:=\{tmp\} union map(eval@(-id), \{tmp\}) union\n " }{MPLTEXT 1 0 53 "\{seq\}(seq(tmp[j]-tmp[k],j=1..3),k=1..3) minus \{ 0=0\};\n" }{MPLTEXT 1 0 26 "subs(u2prm, prm_cir(pdr));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "eqcircum:= unapply(numer(ps(pX(6),isotom(pu))), u,v,w )@OP;\n" }{MPLTEXT 1 0 25 "(simplify@eqcircum)(_U1);" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 58 "Lemme : homothetie de centre pp agissant sur une droite pu" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 43 "La formule \+ ... pour les coordonn\303\251es affines" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "(px-pp)-k*(pu-pp); solve(evalms(%), \{x,y,z\}): collect(subs(% , px), pp, factor);\n" }{MPLTEXT 1 0 31 "'k*pu+(1-k)*pp'; evalmm(%)-%% ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "evalmm(k*bary2norm(pu )+(1-k)*bary2norm(pp));\n" }{MPLTEXT 1 0 37 "evalmm(%*(u+v+w));xcollec t(%, [1-k]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "image='pu'+ (1-k)/k*(u+v+w)/(p+q+r)*'pp'; latexx(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "tmp1:= evalmm((u+v+w)*pp); pi[0]:=Matrix(3,3,(j,k)-> \+ coeff(tmp1[j], pu[k])); \n" }{MPLTEXT 1 0 23 "latexy('pi[0]'= pi[0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "tmp:= mun+((1-k)/k/(p+q+ r)).pi[0];\n" }{MPLTEXT 1 0 71 "(eval@subs)(`.`=`*`, %); homot:= unapp ly(%,p,q,r,k)@((P,k)->(OP(P),k)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "'h'(P,k)=tmp; latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "CharacteristicPolynomial(pi[0],mu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "(reduce@FActor)(homot(pp,k).Vector( pp));\n" }{MPLTEXT 1 0 35 "(reduce@evalmm)(pX(2).homot(pp,k));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "Vector(_Q1): %,FActor(homot( pp,k).%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "FActor(homot(p p,k).homot(pp,1/k));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "2*V ector[row](pa).homot(pa,2);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 82 "Un test : un cot\303\25 1 va sur une droite des milieux en utilisant le facteur ***DEUX***" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "2*Vector[row](pa).homot(pa,2);;" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 36 "Simson a nd Steiner lines, orthopoint" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 80 "E quation 1 de \"the Simpson cubic\"... ils ne sont pedals que si U est \+ sur Simpson" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "mma:= Matrice(matrix (3,3,[0,v,-w,-u,0,w,u,-v,0])); pp_pedal(%):;\n" }{MPLTEXT 1 0 37 "coll ect(numer(%), pu, distributed): \n" }{MPLTEXT 1 0 77 "xcollect(%/2, [- a^2+b^2+c^2,a^2-b^2+c^2,a^2+b^2-c^2], factor): subs(shika,%);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 43 "Le m\303\252me avec les inverses \+ : m\303\252me conclusion" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "mmb:= M atrice(matrix(3,3,[0,1/v,-1/w,-1/u,0,1/w,1/u,-1/v,0])); pp_pedal(%):; \n" }{MPLTEXT 1 0 53 "collect( numer(factor(-%/u/v/w)), pu, distribute d): \n" }{MPLTEXT 1 0 77 "xcollect(%/2, [-a^2+b^2+c^2,a^2-b^2+c^2,a^2+ b^2-c^2], factor): subs(shika,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 31 "Colinearit\3 03\251 des pedals (Simson)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "les_p edals(pp); factor(Det(%));\n" }{MPLTEXT 1 0 45 "subs(isolate(defS2,(a+ b+c)), %); # latexy(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Steiner : cas g\303\251n\303 \251ral" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "[Column](les_pedals(pp), 1..3); map(reduce@reflection,%,pp): \n" }{MPLTEXT 1 0 37 "les_stein0:= collect(Matrice(%), pp);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "factor (Det(les_stein0)): subs(apbpc, defR, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "les_pedals(_U1); (factor@wedge)(Column(%,1),Column(%, 2)): \n" }{MPLTEXT 1 0 45 "simson_line:= collect(elimifacu(%), [a,b,c] );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "# isotom(simson_line) : Vector(collect(%, pdr)); # latexx(1), latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 60 "La ligne de Steiner est l'homothetique de la ligne de Simson" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "Vector[row](simson_line).homot(_U1,1/2): \n " }{MPLTEXT 1 0 34 "steiner_line:= (reduce@FActor)(%);" }}{PARA 0 "" 0 "" {TEXT 210 36 "Steiner line St1 is barydiv(Q1, X4);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "subs(zipq(_Q1,pu1), zipq(-_Q1,-pu1), steiner_li ne);\n" }{MPLTEXT 1 0 32 "barydiv(pu1, pX(4)); zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "prm_sim:= unapply(simson_line, op(p dr))@OP;\n" }{MPLTEXT 1 0 59 "prm_stn:= unapply(convert(steiner_line, \+ list), op(pdr))@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 54 "Q2 est le point \303\240 l'infini de la droite de Steine r St1" }}{PARA 0 "" 0 "" {TEXT 210 24 "U2 est l'isogonale de Q2" }} {PARA 0 "" 0 "" {TEXT 210 23 "U1 et U2 sont antipodes" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "'_U1'= _U1; '_Q1'= _Q1; \n" }{MPLTEXT 1 0 35 "_Q 2:= wedge(steiner_line, pX(2)):;\n" }{MPLTEXT 1 0 18 "_U2:= isogon(_Q2 ):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "FActor(bary2norm(_U1)+bary2no rm(_U2)); reduce(%): encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "tmq:= wedge(pp,pu); Matrix(3,3,(j,k)-> coeff(tmq[j], pu[k])); \n" }{MPLTEXT 1 0 29 "WEDGE:= unapply(%, p,q,r)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "HH:= WEDGE(pX(2)).Diag(pX(69));\n" } {MPLTEXT 1 0 22 "HH0:= subs(a2toAA,%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "orthopoint:= U -> wedge(pX(2), barydiv(U, pX(4)));" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "On v\303\251rifie X(4) dans le kernel" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "(op(NullSpace(HH))): ency(%);\n" }{MPLTEXT 1 0 30 "map(normal, HH.Vector(pX(4)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "CharacteristicPolynomial(HH0,x); collect(%,x,factor); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "vp,mp:= Eigenvectors(HH 0):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "subs(sqrt(-(AA*CC+CC *BB+AA*BB))=4*I*S, 1/sqrt(-(AA*CC+CC*BB+AA*BB))=1/(4*I*S), mp):\n" } {MPLTEXT 1 0 59 "map(simplify,%,\{AA*CC+CC*BB+AA*BB=16*S^2\}): map(fac tor,%);\n" }{MPLTEXT 1 0 116 "mbo:= FActor(%.Diag(1/CC,-(BB+AA),-(BB+A A))); subs(a2toAA, AA=S[a], BB=S[b], CC=S[c], %): convert(Column(%,2), list);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "map(normal, 1/mbo .HH0.mbo): map(simplify,%,\{AA*CC+CC*BB+AA*BB=16*S^2\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 22 "Product of orthopoints" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "barymul(pu, orthopoint(pu)); \n" }{MPLTEXT 1 0 69 "map(collect, \+ factor(-%[1]), [a,b,c]); Vector([rot3](%)); zipd(%,%%%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "prm_inf(pdr); barymul(%, orthopoint (%)):\n" }{MPLTEXT 1 0 36 "eliminate(evalms(%-k*px), \{k,rho\});\n" } {MPLTEXT 1 0 49 "select(has, op(%[2]), \{x,y,z\}); collect(-%, px); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "Adjoint(matcocev(px)); en cy(1/(a^2-b^2-c^2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "inf line:= [seq](`if`(ff[j]=1,j,NULL), j=1..jmax):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "nops(infline);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 109 "lesprod:= seq([ (op@sort)([j,ency(orthopoint(pX(j))) ]), ency(barymul(pX(j),orthopoint(pX(j)))) ], j=infline):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "remove(has,\{lesprod\},`?`); Matrix (convert(%, list)); #latexx(0); latexz(%);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 55 "ortho_proj est le projecteur sur la dr oite px+qy+rz=0" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "HH.WEDGE( pX(2));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "On obtient l'orthopoi nt d'une droite....." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "pp; tmp:= w edge(pp,pX(2)); MW:= Matrix(3,3,(j,k)-> coeff(tmp[j],pp[k]));\n" } {MPLTEXT 1 0 48 "MW.Vector(pp); MM:= HH.MW; MM0:= subs(a2toAA,%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "CharacteristicPolynomial (HH , mu): collect(%, mu, factor);\n" }{MPLTEXT 1 0 21 "subs(apbpc, defR, \+ %);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "On arrive sur la ligne de l'infini" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "CharacteristicPolynomi al (MM, mu): collect(%, mu, factor);\n" }{MPLTEXT 1 0 21 "subs(apbpc, \+ defR, %);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "NullSpace(MM);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "Delta:= Vector[row](pp);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "ckoi:= Tr(Delta).Delta;\n" }{MPLTEXT 1 0 51 "CharacteristicPolynomial(%,X): collect(%,x,factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "collect(Delta.MM.Tr(Delt a)/2, pp, distributed): tmp1:= 2*subs(a2toAA,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "collect(MM.Tr(Delta).Delta, pp, factor, distr ibuted):\n" }{MPLTEXT 1 0 23 "tmp2:= subs(a2toAA, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "tmq:= Matrix(evalm(tmp1-tmp2));" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "CharacteristicPolynomial(tm q, mu): subs(AAtoa2, %): factor(%):\n" }{MPLTEXT 1 0 48 "applyop(colle ct,[2,1],%,pp,factor,distributed):\n" }{MPLTEXT 1 0 37 "subs(map(expan d@(2*id), a2toAA), %);\n" }{MPLTEXT 1 0 35 "fac:= op(\{solve\}(%, mu) \+ minus \{0\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "convert(pr oc(pp_) local pp,MM: pp:=Vector[column](pp_); \n" }{MPLTEXT 1 0 67 "M M:= MMM; Matrix(evalmm(Tr(pp).MM.pp-MM.pp.Tr(pp))); end, string):\n" } {MPLTEXT 1 0 45 "SubstituteAll(%, \"MMM\", convert(MM,string)):\n" } {MPLTEXT 1 0 22 "ortho_proj:= parse(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "EXpand(Vector[row](pp).ortho_proj(pp));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "Vector[row](pp).ortho_proj(pp): sim plify(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "'(op@NullSpace@ortho_proj)(pp), MM.Vector(pp)'; zipd( %);" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 31 "test d'ortho_proj : orthocentre" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "ortho_proj(pa).Vector(pa): tmp1:= wedge(%,pa);\n" } {MPLTEXT 1 0 47 "ortho_proj(pb).Vector(pb): tmp2:= wedge(%,pb);\n" } {MPLTEXT 1 0 26 "wedge(tmp1,tmp2); ency(%);" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 33 "test d'ortho_proj : Darboux cubic" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 47 "ortho_proj(pa).Vector(pp): tmp1:= wedge(%,pa );\n" }{MPLTEXT 1 0 48 "ortho_proj(pb).Vector(pp): tmp2:= wedge(%,pb); \n" }{MPLTEXT 1 0 47 "ortho_proj(pc).Vector(pp): tmp3:= wedge(%,pc); \n" }{MPLTEXT 1 0 51 "Matrix([tmp1,tmp2,tmp3]); factor(Determinant(%)) : \n" }{MPLTEXT 1 0 45 "darb:= collect(%, pp, factor, distributed); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "darb/Determinant(Matrix( [pX(20), pp, isogon(pp)])): factor(%);;" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT 214 9 "ortho_sym" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "ortho_sym, la th\303\251orie" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "Vector[row](pdr); %.MM.Tr(%)*Diag(1$3)-2*MM.Tr(%).%: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "ortho_sym:= proc(pdr);Vector[ro w](pdr); %.MM.Tr(%)*Diag(1$3)-2*MM.Tr(%).%; end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 22 "test utilisant Steiner" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "[seq( ortho_sym(k).Vector(pu), k=[pa,pb,pc])]; factor (Det(Matrix(%)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 9 "orthopole" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "pa a:= ortho_proj(pp).Vector(pa): qqa:=ortho_proj(pa).paa: tmpa:= wedge(% , paa):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "pbb:= ortho_proj(pp).Vec tor(pb): qqb:=ortho_proj(pb).pbb: tmpb:= wedge(%, pbb):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "pcc:= ortho_proj(pp).Vector(pc): qqc:=ortho_pr oj(pc).pcc: tmpc:= wedge(%, pcc):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "Determinant(Matrix([tmpa,tmpb,tmpc]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "topol:= (reduce@factor@wedge)(tmpa,tmpb);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "fact:= Diag(-1,1,1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 44 "Le premier facteur est un point \303\240 l'infini.\n" }{TEXT 210 49 "D'ailleurs c'est le directionneur perpend iculaire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "map2(select, U->evalb(d egree(U,\{a,b,c\})=2), topol):\n" }{MPLTEXT 1 0 67 "map(collect,%,pp, \+ factor); vec1:= map(collect, fact.Vector(%), pp);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "vec1-MM.Vector(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "Le deuxi\303 \250me facteur ..." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "map2(remove, \+ U->evalb(degree(U,\{a,b,c\})=2), topol):\n" }{MPLTEXT 1 0 67 "map(coll ect,%,pp, factor): vec2:= map(collect, fact.Vector(%), pp);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "NN:= -Matrix(3,3,(k,j)-> coe ff(vec2[j],pp[k]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "NN0: =subs(a2toAA,NN);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 373 "ortho pole:= proc(pp) local MM,NN; NN := Matrix(3, 3, \{(1, 1) = -(a^2+b^2-c ^2)*(c^2+a^2-b^2), (1, 2) = -2*a^2*(-c^2+a^2-b^2), (1, 3) = -2*a^2*(-c ^2+a^2-b^2), (2, 1) = (2*c^2+2*a^2-2*b^2)*b^2, (2, 2) = (a^2+b^2-c^2)* (-c^2+a^2-b^2), (2, 3) = (2*c^2+2*a^2-2*b^2)*b^2, (3, 1) = (2*a^2+2*b^ 2-2*c^2)*c^2, (3, 2) = (2*a^2+2*b^2-2*c^2)*c^2, (3, 3) = (-c^2+a^2-b^2 )*(c^2+a^2-b^2)\});\n" }{MPLTEXT 1 0 204 "MM:= Matrix(3, 3, \{(1, 1) = -2*a^2, (1, 2) = a^2+b^2-c^2, (1, 3) = c^2+a^2-b^2, (2, 1) = a^2+b^2- c^2, (2, 2) = -2*b^2, (2, 3) = b^2+c^2-a^2, (3, 1) = c^2+a^2-b^2, (3, \+ 2) = b^2+c^2-a^2, (3, 3) = -2*c^2\});\n" }{MPLTEXT 1 0 76 "zip(`*`, Ve ctor[row](pp).NN, Vector[row](pp).MM): reduce(convert(%, list)):\n" } {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 39 "On v\303 \251rifie que la fonction est la bonne" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "orthopole(pp); zipd(%, topol);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "NN0:= s ubs(a2toAA, NN):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "zip(`*` , Vector[row](pp).NN, Vector[row](pp).MM): convert(%, list): zipd(%, t opol);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "subs(a2toAA, AA=S [a], BB=S[b], CC=S[c], MM);\n" }{MPLTEXT 1 0 44 "subs(a2toAA, AA=S[a], BB=S[b], CC=S[c], NN);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 " CharacteristicPolynomial(NN0,X): subs(AAtoa2,%):\n" }{MPLTEXT 1 0 63 " collect(%,X,factor): subs(isolate(defS2, a+b+c), %): factor(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "defS2; vp:= -lhs(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "NullSpace((NN)+vp);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "NullSpace(NN-vp); reduce(con vert(op(%), list)); encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "op(NullSpace(Tr(NN)+vp)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "op(NullSpace(Tr(NN)-vp)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "aboutlin(a1=2, a2=3);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "tmp:= (normal@wedge)(pX(2), pX(3)): (factor@orthopole )(%): ency(%%), ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "aboutlin(a1=8, a2=3);\n" }{MPLTEXT 1 0 77 "tmp:= (normal@wedge)(pX(8) , pX(3)): (factor@orthopole)(%): ency(%%), ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "Vector[row](tmp): (reduce@factor@barymul)(convert(%.MM, list),tmp) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "conicev(pX(2),pX(4));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 99 "Quand P est vp de NN, i.e. qu and P passe par X3, alors orthopole est sur le cercle des neuf points. " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "Vector[row](pp): (reduce@factor @barymul)(convert(%.MM, list),pp):\n" }{MPLTEXT 1 0 49 "(factor@subs)( zipq(px,%), conicev(pX(2),pX(4))):\n" }{MPLTEXT 1 0 31 "tmq:= map(coll ect,%,pp,factor);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "simplify(tmq, \+ \{Vector[row](pp).Vector(pX(3))=0\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "dralinpts_was:= proc(qqa,paa, couleur); \n" }{MPLTEXT 1 0 59 "(factor@evalmm)(bary2proj(qqa)*mu+bary2proj(paa)*(1-mu)): \n" }{MPLTEXT 1 0 61 "plot(subsop(3=(mu=-15..10), subs(ici,%)), color=cou leur) end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "ici:= ency_ union cetriangle union \{p=1,q=-2,r=3\}: \n" }{MPLTEXT 1 0 81 "icii:= proc(U); bary2proj(convert(U,list)); subs op(3=NULL,%): subs(ici, %); end; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "[color=black]: pl1:= dralinpts(pa,pb,%),dralinpts(pb, pc,%), dralinpts(pc,pa,%): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "pl2:= dralinpts(paa,pbb,[color=magenta]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "pl3:= seq(pointplot(map(icii, [p||k,p||k||k]), s tyle=line, color=red), k=[a,b,c]): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "[color=blue]: pl4:= dralinpts(qqa,paa,%),dralinpts(qq b,pbb,%),dralinpts(qqc,pcc,%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "subsop(3=NULL, subs(ici,bary2proj(topol))); evalf(%); \n" } {MPLTEXT 1 0 31 "pl5:= pointplot(%, color=navy):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 9 "dessin OK" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "# d isplay(pl1, pl2, pl3, pl4, pl5, scaling=constrained, view=[-1..1.5, -2 ..0.5]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 59 "topdr : d\303\251terminer le param\303\2 50tre qui va bien pour un U donn\303\251" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "isogon(barymul(pu,pX(4))); ency(subs(zipq(pu,pX(110)) ,%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "barydiv(orthopoint (isogon(pu)),pX(4)): \n" }{MPLTEXT 1 0 50 "(reduce@factor)(%): evalmm( %/rotp(a^2+b^2-c^2)): \n" }{MPLTEXT 1 0 37 "collect(%, pu, factor, dis tributed);\n" }{MPLTEXT 1 0 28 "topdr:= unapply(%,u,v,w)@OP:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "ency(topdr(pX(74)));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 47 "circumcircle antipod es, et orthopole, le dessin" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "# On utilise Q,U,St,Si,K li\303\251s \303\240 _Q1 et AQ2" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "_St1:= prm_stn(pdr);ASt2:= p rm_stn(PDR);\n" }{MPLTEXT 1 0 36 "_St2:= (reduce@barydiv)(_Q2, pX(4)): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "_Si1:= prm_sim(pdr);ASi 2:= prm_sim(PDR):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "_Si2:= (reduce @factor@evalmm)(_St2 &* homot(_U2,2) ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "_Peds1:= Column(les_pedals(_U1),1..3):_Peds2:= Column (les_pedals(_U2),1..3):\n" }{MPLTEXT 1 0 31 "map(factor@ps, [_Peds1], \+ _Si1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "_K1,_K2:= _Si2,_S i1: AK2:= _K1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "\{cocotri2(_Peds1 )\}: _Coc1:= op(map(elimifacu@factor, %)): zipd(%, _K2);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "(reduce@factor@barymul)(_K1,_K2); " }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 76 "_U3 est le troisi\303\250me point du triangle.... SR est SimsonRigby, later defined" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 54 "forecast_SR:= (P,U)->isogon(wedge(wedge(P,U),pX(2)) );\n" }{MPLTEXT 1 0 32 "(factor)(forecast_SR(_U1,AU2)):\n" }{MPLTEXT 1 0 142 "evalmm(%/((sigma-tau)*(Rho-Sigma)*(rho-sigma)*(Sigma-Tau)*(Rh o-Tau)*(rho-tau)) *(-Rho*tau-sigma*Tau+rho*Tau-rho*Sigma+Rho*sigma+Sig ma*tau) );\n" }{MPLTEXT 1 0 66 "_U3:= collect(Vector(%), [a,b,c], fact or); _U3:= convert(%, list):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 22 " _Si3 est la sim de _U3" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 252 "forecast _gs:= `@`(`@`(proc (u, v, w) options operator, arrow; [-c^2*v*u^2+b^2* w*u^2+(b^2-c^2)*w*v*u, c^2*u*v^2+(c^2-a^2)*w*v*u-w*a^2*v^2, (a^2-b^2)* w*v*u-w^2*b^2*u+w^2*a^2*v] end proc, op), proc (U) options operator, a rrow; convert(U, list) end proc):\n" }{MPLTEXT 1 0 48 "_Si3:= (reduce@ factor@isotom)(forecast_gs(_U3)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "evalms( isotom(simson_line)-k*px): eli:= eliminate(%, \{k,rho\}):\n" }{MPLTEXT 1 0 52 "select(has, op(eli[2]), x): collect(%, px, factor):\n" } {MPLTEXT 1 0 69 "simcub:= xcollect(%, [c^2+a^2-b^2,a^2+b^2-c^2, b^2+c^ 2-a^2], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "tmp:= 9 9: icipdr:= \n" }{MPLTEXT 1 0 67 "convert(zipq(pdr,(reduce@subs)(ency _, topdr(pX(tmp))) ),set) union\n" }{MPLTEXT 1 0 80 "convert(zipq(PDR, (reduce@subs)(ency_, topdr(reflection(pX(3), pX(tmp)))) ),set);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "icipdr:= \n" }{MPLTEXT 1 0 68 "convert(zipq(pdr,(reduce@subs)(ency_, topdr(pX(1379))) ),set) unio n\n" }{MPLTEXT 1 0 62 "convert(zipq(PDR,(reduce@subs)(ency_, topdr(pX( 99))) ),set);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "ici:= ency_ union cetriangle union icipdr; #\{rho=2,sigma=1.1,tau=1\};\n" }{MPLTEXT 1 0 81 "icii:= proc(U); bary2proj(convert(U,list)); subsop(3=NULL,%): subs(ici, %); \+ end: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "subsop(3=NULL, bar y2proj(px)): evalms(%-[X,Y])union \{x+y+z=1\}:\n" }{MPLTEXT 1 0 50 "pr ojx:= (expand@subs)(solve(%, \{x,y,z\}), ici, px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 128 "collect(subs(zipq(px, projx), ici, simcub) , [X,Y]): pl0:= implicitplot(evalf(%), X=-2..2, Y=-2..2, grid=[150,150 ], color= plum):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 36 "Le triangle \+ et le cercle circonscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "[color= black]: \n" }{MPLTEXT 1 0 68 "pl1:= dralinpts(pa,pb, %),dralinpts(pb,p c, %),dralinpts(pc,pa, %), \n" }{MPLTEXT 1 0 46 "plot([cos(t),sin(t),t =-Pi..+Pi], color=cyan),\n" }{MPLTEXT 1 0 79 "drawna(pa,\"A\",4,%),dra wna(pb,\"B\",0,%),drawna(pc,\"C\",2,%),drawna(pX(4),\"H\",7,%):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Le nine points" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "nineq:= unapply((b^2+c^2-a^2)*x^2-2*b^2*x*z-2*c^2 *x*y+(c^2+a^2-b^2)*y^2-2*a^2*y*z+z^2*(a^2+b^2-c^2),x,y,z)@OP:\n" } {MPLTEXT 1 0 80 "pl6:= implicitplot( subs(ici,nineq(projx)), X=-0.5..1 , Y=-1.5..0.5, color=cyan):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 27 "L es points U et les Steiner" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "[colo r=red]: \n" }{MPLTEXT 1 0 71 "pl2:= drawna(_U1,\"U1\",3,%), drawna(AU2 ,\"U2\",1,%),drawna(_U3,\"U3\",1,%),\n" }{MPLTEXT 1 0 39 "dralinbar(_S t1, %),dralinbar(ASt2, %):;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "L es pedals et la Simson" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "[color=bl ue]:\n" }{MPLTEXT 1 0 83 "pl3:= dralinbar(_Si1,%), dralinbar(ASi2,%), \+ dralinbar(_Si3,%):#,draptn([_Peds1],%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "[color=blue]: pl4:= drawna(_K1,\"K1\",3,%), drawna(AK 2,\"K2\",6,%):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "les milieux de UH" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "[color=green]: pl7:= drawna( bary2norm(pX(4))+bary2norm(_U1), \"m1\", 5, %),\n" }{MPLTEXT 1 0 52 "d rawna(bary2norm(pX(4))+bary2norm(AU2), \"m2\", 5, %):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 16 "orthopole de Si2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "[color=orange]: pl8:= drawna(orthopole(ASi2), \"oi2\" , 2, %),\n" }{MPLTEXT 1 0 81 "drawna(orthopole(_Si1), \"oi1\", 6, %), \+ drawna(orthopole(wedge(_U1,AU2)), \"q\",1,%):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 32 "Le cas o\303\271 U3=SR(U1,U2) vaut U1" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 187 "forecast_droitlouch:= [(rho-sigma)*b^2/(rho- tau)-(rho-tau)*c^2/(rho-sigma), (rho-sigma)*a^2/(sigma-tau)-(sigma-tau )*c^2/(rho-sigma), (rho-tau)*a^2/(sigma-tau)-(sigma-tau)*b^2/(rho-tau) ];\n" }{MPLTEXT 1 0 63 "_DL:= (factor@subs)(zipq(pu, _U1), ici, foreca st_droitlouch): \n" }{MPLTEXT 1 0 33 "pl9:= dralinbar(%,[thickness=2]) :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 118 "# display(pl0, pl1, p l2, pl3, pl4, pl6, pl7, pl8, pl9, view=[-1.9..2,-2.2..1.2], scaling=co nstrained, labels=[``,``]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "map(ency, subs(ici, \+ [_U1,AU2,_U3,_Q1,AQ2]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "# display(pl1, pl2, pl3 , pl4, pl5, pl6, view=[-0.6..0.5,-1..0], scaling=constrained);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "(factor@subs)(ici, wedge(wed ge(_U1,_U3), _Si1));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "(we dge)(wedge(_U2,_U3), _Si2): (factor@simplify@subs)(ici, %): ency(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 12 "Rigby-Simson" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "pdr;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "_Q 1:= wedge(pdr, pX(2));\n" }{MPLTEXT 1 0 55 "_U1:= isogon(_Q1); _St1:= \+ (reduce@barydiv)(_Q1, pX(4));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "_Q2:= (wedge)(_St1, pX(2)): \n" }{MPLTEXT 1 0 55 "_U2:= isogon(_ Q2); _St2:= (reduce@barydiv)(_Q2, pX(4));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "les _Q sont orthopoints, les _U sont antipodaires" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "zipd(orthopoint(_Q1), _Q2); \n" } {MPLTEXT 1 0 43 "zipd(bary2norm(_U1)+bary2norm(_U2), pX(3));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "_Si1:= (reduce@factor@evalmm )(_St1 &* homot(_U1,2)):\n" }{MPLTEXT 1 0 52 "_Si2:= (reduce@factor@ev almm)(_St2 &* homot(_U2,2)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "zip d(prm_sim(pdr), _Si1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "Le milieu M de UH est sur Sim son1 et sur le nine" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "_M1:= (reduc e@factor)(bary2norm(pX(4))+bary2norm(_U1)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "(simplify@ps)(_Si1, _M1), (simplify@nineq)(_M1);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 64 "L'intersection des deux Simson es t l'orthopole de la droite U1U2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " (factor@wedge)(_Si1, _Si2):\n" }{MPLTEXT 1 0 40 "(orthopole@wedge)(_U1 , _U2): zipd(%%,%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 92 "une droit e de Simson contient les orthopoles de toutes les droites qui lui sont orthogonales" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "map(orthopole, [pd r,_Si2,_St2]): map(simplify@ps, %, _Si1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "#(elimifacu@wedge)(pdr,_Si1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 53 "L'ort hopole de Simson1 est sur Steiner1 inter Simson2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "zipd(orthopole(_Si1), wedge(_Si2, _St1));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 46 "L'intersection des deux Simson est sur l e nine" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "wedge(_Si1,_Si2): (simpli fy@nineq)(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 63 "Si2 est le Sims on parall\303\250le \303\240 pdr, Si1 est le Simson orthogonal" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "(reduce@factor@wedge)(pdr, _Si2); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 47 "A2 est \+ un autre, pas n\303\251cessairement l'antipodal" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "AU2:= prm_cir(PDR);\n" }{MPLTEXT 1 0 22 "ASi2:= prm_s im(PDR); \n" }{MPLTEXT 1 0 53 "subs(sigma=Sigma, tau=Tau,rho=Rho, _Si1 ): zipd(%%,%);" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 37 "Intersection \+ de deux Simson sur nineq" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 " # (reduce@factor@wedge)(ASi2, _Si1): tmp:= factor(nineq(%));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "select(has,tmp,sigma): nops( %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "tmq1:= (reduce@facto r@wedge)(ASi2,pX(2));\n" }{MPLTEXT 1 0 41 "tmq2:= (reduce@factor@wedge )(_Si1,pX(2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "evalms(or thopoint(tmq1)-k* tmq2): eli:= eliminate(%, \{k\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "nops(eli[2]); tmq:= factor(op(eli[2]));" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "select(has,tmq,sigma); mem ber(%, convert(tmp, list));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "fac:= tmp/tmq/(-4); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "collect(op(1,fac), [a,b,c], factor, distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "collect(op(1,fac), [op(pdr),op(PDR)], facto r, distributed):\n" }{MPLTEXT 1 0 57 "subs(a2toAA,%): collect(%, [AA,B B,CC, op(pdr)], factor);\n" }{MPLTEXT 1 0 31 "(factor@subs)(zipq(PDR,p dr),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 48 "L'orthopole \+ de PU est l'intersection des Simson" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "zipd(orthopole(wedge(_U1,AU2)), wedge(_Si1,ASi2));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "RS:= (P,U)->orthopole(wedge(P,U));" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 4 "test" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "RS(pX(74), pX(100)): ency(%); #2677" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "1/(a^2 *r^2 *v^2* (q *cos( A) - p* cos( B))*(w *c os (A) - u *cos (C))) - \n" }{MPLTEXT 1 0 73 "1/(a^2 *q^2 *w^2* (r *co s (A) - p* cos( C))*(v *cos (A) - u *cos (B))): \n" }{MPLTEXT 1 0 10 " tmpkim:= \n" }{MPLTEXT 1 0 72 "a*subs(zipq(pp, barydiv(pp,[a,b,c])), z ipq(pu, barydiv(pu,[a,b,c])), %);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "#latexx(1): latexz(tmp2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 38 "Les deux expressions so nt \303\251quivalentes" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "zipd([rot 3](subs(kashi,tmpkim)), RS(pp,pu)): \n" }{MPLTEXT 1 0 51 "(factor@redu ce@subs)(zipq(pu,_U1), zipq(pp,AU2),%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "Le troisieme point du triangle" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "SR:= (P,U)->isogon(wedge(wedge(P,U),pX(2)));" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "SR(pp,pu):; [rot3](xcollect(%[1],[u ,-p])); # latexx(1), latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "subs(zipq(pp,pX(74)), zipq(pu, pX(100)), tmpkim): ency(%);\n" }{MPLTEXT 1 0 30 "RS(pX(74), pX(100)): ency(%);\n" }{MPLTEXT 1 0 30 "S R(pX(74), pX(100)): ency(%);\n" }{MPLTEXT 1 0 30 "RS(pX(74), pX(101)): ency(%);\n" }{MPLTEXT 1 0 29 "SR(pX(74), pX(101)): ency(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 27 "Le SR_kim est UP* inter PU*" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "tmp:= (elimifacu@factor@wedge)(wedge(pu, isogon(pp)), wedge(pp, isogon(pu)));\n" }{MPLTEXT 1 0 23 "#latexx(1), latexz(%);\n " }{MPLTEXT 1 0 84 "subs(AAA=tmp, proc(pp,pu) local p,q,r,u,v,w;p,q,r, u,v,w:= OP(pp),OP(pu); AAA; end):\n" }{MPLTEXT 1 0 31 " tokim(%, pp,pu ): elimifacu(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "wedge(w edge(AU2,isoc(_U1)),wedge(_U1,isoc(AU2)));\n" }{MPLTEXT 1 0 21 "(facto r@eqcircum)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "(reduce@ factor@wedge)(wedge(pu1,isoc(pu2)),wedge(pu2,isoc(pu1)));\n" }{MPLTEXT 1 0 16 "tmp:= Vector(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "Vector(evalmm(tmp /(-u1*r*u2+w1*p*w2) /(-u2*q*u1+p*v2*v1)/(-v1*r*v 2+w1*q*w2)) ):\n" }{MPLTEXT 1 0 43 "tmq:= map(sort,%, [p,q,r,op(pu1),o p(pu2)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "SM:= subs(AAA= convert(tmq,list), proc(pp,pu1,pu2) local p,q,r,u1,v1,w1,u2,v2,w2;\n" }{MPLTEXT 1 0 59 "p,q,r,u1,v1,w1,u2,v2,w2:= OP(pp),OP(pu1),OP(pu2); AA A end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "SM(pX(6),pX(74), pX(98)): ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "SM(pp, [u[1],v[1],w[1]], [u[2],v[2],w[2]]); #latexx(0), latexz(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 23 "Reprise du tableau dutu" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 73 "li:= [74,98,691 74,99,842 74,110,477 74,1113,125 7 4,1114,125\n" }{TEXT 210 1 "\n" }{TEXT 210 26 "98,1379,115 98,1380, 115" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 10 " 99,110,691" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 42 "100,101,1308 100,104,953 100,110,1290" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 28 "101,109,1521 101,929 ,1521" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 26 "104,1381,11 104,1382,11" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }} {PARA 0 "" 0 "" {TEXT 210 44 "110,112,1554 110,476,1553 110,935, 1554" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 12 "112,935,1554" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 13 "1113,1114,125" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 13 "1379,1380,115" }}{PARA 0 "" 0 "" {TEXT 210 0 " " }}{PARA 0 "" 0 "" {TEXT 210 15 "1381,1382,11]\":" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 69 "RegSubs(Char(10)=\" \" , li): RegSubs(\" *\"=\"],[\",%): li1:= [parse(%)];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 19 "li:= \"[74,1294,1304" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 41 "98,110,842 98,843,1296 \+ 98,1379,1380" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 72 "99,110,691 99,111,843 99,1379,1379 99,1380,1380 9 9,2378,2379" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 108 "100,101,1308 100,104,953 100,105,840 100,109,2222 \+ 100,110,1290 100,1381,1381 100,1382,1382" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 11 "101,109,929" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 43 "102,103,929 \+ 102,104,2222 103,104,1308" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }} {PARA 0 "" 0 "" {TEXT 210 29 "104,840,1292 104,1381,1382" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 12 "107,110,1304" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 80 "110,1 12,935 110,827,1287 110,930,1291 110,1113,1113 110,1114,11 14]\":" }}{PARA 0 "" 0 "" {TEXT 210 69 "RegSubs(Char(10)=\" \", li): \+ RegSubs(\" *\"=\"],[\",%): li2:= [parse(%)];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 86 "lesp:= convert(convert(map2(op,1,li1),set) union conv ert(map2(op,1,li2), set), list);\n" }{TEXT 210 86 "lesu:= convert(conv ert(map2(op,2,li1),set) union convert(map2(op,2,li2), set), list);\n" }{TEXT 210 52 "lesSR:= convert(convert(map2(op,3,li2),set), list);\n" }{TEXT 210 51 "lesRS:= convert(convert(map2(op,3,li1),set), list);" }} }{EXCHG {PARA 0 "" 0 "" {TEXT 210 54 "map(U-> (expand@subs)(ency_, (eq circum@pX)(U)), lesp);" }}{PARA 0 "" 0 "" {TEXT 210 65 "map(U-> (simpl ify@expand@subs)(ency_, (eqcircum@pX)(U)), lesu);;\n" }{TEXT 210 66 "m ap(U-> (simplify@expand@subs)(ency_, (eqcircum@pX)(U)), lesSR);;\n" } {TEXT 210 83 "map(U-> (simplify@expand@subs)(ency_, (eqcircum@pX)(U)), lesRS):map(abs@signum, %);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 65 "k is:= proc(Q) option remember; ency(RS(pX(Q[1]),pX(Q[2]))); end:\n" } {TEXT 210 64 "sik:= proc(Q) option remember; ency(SR(pX(Q[1]),pX(Q[2]) )); end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "[110,476]; sik(%), k is(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 56 "res1:= map(T->[sort([T[1],T[2], sik(T)]), kis(T)], \+ li1);" }}{PARA 0 "" 0 "" {TEXT 210 56 "res2:= map(T->[sort([T[1],T[2], sik(T)]), kis(T)], li2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 102 "tr i:= proc(j,k) evalb ((j[1][1] [op(U[1]),U[2]], litri)):;" }}{PARA 0 " " 0 "" {TEXT 210 84 "interface(rtablesize=30): ddd:= RowDimension(blan g); lon:=11: nol:= ceil(ddd/lon); \n" }{TEXT 210 73 "# blang:= : # division exacte\n" }{TEXT 210 34 "sep:= Matrix(lon,1,U->A): blang: \n" }{TEXT 210 86 "seq((op@``)(Su bMatrix(blang,k*lon+1..(k+1)*lon, 1..-1),sep), k=0..floor(ddd/lon)-1): \n" }{TEXT 210 43 "tmp:= Matrix([%]); #latexx(1); latexz(tmp);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 20 "on se demand e u3=u1\n" }{TEXT 210 41 "condition d'\303\251limination : U sur le ce rcle" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "evalms(SR(pp,pu)-k*pu); eli := eliminate(%, \{k,p\}): op(eli[2]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "On utilise donc la parametrization" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "evalms(SR(pp,_U1)-k*_U1): eli:= eliminate(%, \{k,p\}) : eli[2];;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "numer(subs(eli[1], p) -p): collect(%, [p,q,r,a,b,c], factor);\n" }{MPLTEXT 1 0 53 "[seq](coe ff(%,k), k=pp): evalmm(%/rotp(rho-sigma)): \n" }{MPLTEXT 1 0 47 "droit louch:= collect(%, [p,q,r,a,b,c], factor);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 62 "Et cette droite est l'orthogonale \303\240 Simson(U) iss ue du point U" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "wedge(_U1, isogon( _U1)): zipd(%, droitlouch);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "\{ps(droitlouch, pp), eqcircum(pp)\}: eli:= [eliminate](%, \{p,q\} ): map2(op,2,eli);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "tmp:= map(elimifacu@subs, map2(op,1,eli), pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "collect(tmp[1], [a,b,c]); (elimifacu@factor@subs)(u2 prm,%);\n" }{MPLTEXT 1 0 28 "third:= unapply(%,u,v,w)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "#latexx(1); third(pu); latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "third(pu); factor( rot(%[ 1])-%[2]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "third(pX(1379)): (isotom@expand@eli mifacu@factor@expand@isotom)(%); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "(elimifacu@factor@SR)(_U1, third(_U1));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 19 "duality po int-lines" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "aboutlin(a1=2,a 2=3); Leulr:= expand(pX(525)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "aboutlin(a1=3,a2=6); Lbroc:= (expand@reduce)(pX(850));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "aboutlin(a1=3,a2=8); Lqqqq:= (reduce@expand@wedge)(pX(3),pX(8)):;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "aboutlin(a1=1,a2=2); Lnagel:= (expand@reduce)(pX(514) );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "aboutlin(a1=514,a2=65 0); Lgergon:= (expand@reduce)(pX(8));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 39 "Utiliser i soconjkim, anticomcon, comcon" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "isoconjkim(pp,pu); isoconjkim(isoconjkim(pp,pu), pu);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "Un point est une colonne" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "lespoints:= Matrice([pp1,pp2,pp3]); (op@map)(op, convert(%, li stlist));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 "\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "Cevian matrixofcolumns, point" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "tmpp:= [(wedge)(wedge(pp1,pp), wedge(pp2, pp3)),\n" }{MPLTEXT 1 0 40 "(wedge)(wedge(pp2,pp), wedge(pp3,pp1)),\n" }{MPLTEXT 1 0 40 "(wedge)(wedge(pp3,pp), wedge(pp1,pp2))]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "mkcev:= subs(AAA=tmpp, \n" }{MPLTEXT 1 0 61 "proc(ma,pp) local p,q,r, p1, q1, r1, p2, q2, r2, p3, q3, r3;\n" } {MPLTEXT 1 0 75 "p1, p2, p3, q1, q2, q3, r1, r2, r3:= (op@map)(op, co nvert(ma, listlist));\n" }{MPLTEXT 1 0 33 "p,q,r:= (op@convert)(pp, li st); \n" }{MPLTEXT 1 0 19 "Matrice(AAA); end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 28 "Crossd iv est reli\303\251 \303\240 cev-cev" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "mun:= Diag(1$3); mkcev(Diag(1$3),pp); tmp:= map(factor, mkcev(%, pu));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "tmq:= Tr(Matrix([seq](wed ge(Column(tmp,j), Column(mun,j)), j=1..3))): rang=Rank(%);\n" } {MPLTEXT 1 0 63 "wedge(Column(tmq,1),Column(tmq,2)): isotom(reduce(iso tom(%)));\n" }{MPLTEXT 1 0 25 "zipd(crossdiv(pu,pp), %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 15 "Les anticevians" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "map( (De terminant@Matrix), \{[pp4,pp1,pp],[pp5,pp2,pp],[pp6,pp3,pp],\n" } {MPLTEXT 1 0 44 "[pp2,pp4,pp6],[pp3,pp5,pp4],[pp1,pp6,pp5]\}):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "eli:= [eliminate](%, \{p4,q4,p5,q5, p6,q6\}): map(length, %), map2(op,2,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "eli[1][ 1]: map(reduce, subs(%, [pp4,pp5,pp6]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "eli[2][1]: tmpq:= map(reduce, subs(%, [-pp4,pp5,-pp6] )):\n" }{MPLTEXT 1 0 25 "mkacev:= subs(AAA=tmpq, \n" }{MPLTEXT 1 0 61 "proc(ma,pp) local p,q,r, p1, q1, r1, p2, q2, r2, p3, q3, r3;\n" } {MPLTEXT 1 0 32 "p,q,r:= (op@convert)(pp, list);\n" }{MPLTEXT 1 0 74 " p1, p2, p3, q1, q2, q3, r1, r2, r3:= (op@map)(op, convert(ma, listlist ));\n" }{MPLTEXT 1 0 19 "Matrice(AAA); end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "mkacev(mun,pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "mkcev(mkacev(lespoints,pp),pp): reducol(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "mkacev(mkcev(lespoints,pp),p p): reducol(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 9 "acev-acev" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "tr1:= mun; tr2:= mkacev(tr1,pp): tr 3:= mkacev(tr2,pu):\n" }{MPLTEXT 1 0 67 "tmq0:= Matrice([seq](wedge(Co lumn(tr1,j), Column(tr3,j)), j=1..3)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "tmq:= reducol(%); Determinant(tmq); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "ppx:= (reduce@wedge)(Column(tmq,1),Column(tmq,2));\n" }{MPLTEXT 1 0 48 "'pp^2=barymul(pu,ppx)'; #lhs(%)=reduce(rhs(%)); " } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "evalmm(ppx/u/v/w);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "sqrtmul:= proc(pu,px); map(s qrt, barymul(pu,px)); end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "sqrtdiv:= proc(pp,pu); barymul(barymul(pp,pp), isotom(pu)); end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 " " {TEXT 210 7 "cev-cev" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "tr3:= mun ; tr2:= mkcev(tr3,pu): tr1:= mkcev(tr2,pp):\n" }{MPLTEXT 1 0 67 "tmq0: = Matrice([seq](wedge(Column(tr1,j), Column(tr3,j)), j=1..3)):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "tmq:= reducol(%); Determinant(tmq); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "ppx:= (isotom@reduce@isotom@w edge)(Column(tmq,1),Column(tmq,2));\n" }{MPLTEXT 1 0 55 "'px=crossdiv( pp,pu)'; ASSERT(zipd(%%,rhs(%))=[1,1,1]);\n" }{MPLTEXT 1 0 61 "'pp=cro ssmul(pu,ppx)'; ASSERT(zipd(rhs(%), lhs(%))=[1,1,1]);\n" }{MPLTEXT 1 0 20 "pp=crossmul(pu,px); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 8 "ace v-cev" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "tr2:= mun; tr3:= mkacev(tr 2,pu): tr1:= mkcev(tr2,pp):\n" }{MPLTEXT 1 0 67 "tmq0:= Matrice([seq]( wedge(Column(tr1,j), Column(tr3,j)), j=1..3)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "tmq:= reducol(%); Determinant(tmq); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "ppx:= (factor@reduce@wedge)(Column(tmq,1),Colum n(tmq,2));\n" }{MPLTEXT 1 0 54 "'px=cevadiv(pp,pu)'; ASSERT(zipd(%%,rh s(%))=[1,1,1]);\n" }{MPLTEXT 1 0 60 "'pp=cevamul(pu,ppx)'; ASSERT(zipd (rhs(%), lhs(%))=[1,1,1]);\n" }{MPLTEXT 1 0 19 "pp=cevamul(pu,px); " } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "(isotom@complem@barymul)(p x, isotom(pu)) :barymul(%,pu): zipd(%, cevamul(pu,px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "(complem@isotom@barymul)(px, isotom (pu)) :barymul(%,pu): zipd(%, crossmul(pu,px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 36 "Les formules en complem, anticomplem" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "(e xpand@evalmm)(barymul(ppx, isotom(pu))/p/q/r);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "barymul(anticomplem(barymul(pu, isotom(pp))), p u);\n" }{MPLTEXT 1 0 13 "zipd(%, ppx);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "px=barymul(anticomplem(barymul(pu, isotom(pp))), pu); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "barymul(isotom(pu), (co mplem@barymul)(isotom(pu),px))= isotom(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "pp= barymul(pu, (isotom@complem@barymul)(isotom(pu ),px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "barymul(pu, (iso tom@complem@barymul)(isotom(pu),px));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "cevamul(pu,px); zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "'(isoto m@cevamul)(isotom(pu),isotom(px))=crossmul(pu,px)'; ASSERT(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 24 "Les coniques --le tou t--" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "hq:='q';" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "eq2mm:= proc(eqq); Matrix(3,3,(j,k) -> diff(eqq,px[j],px[k])/2); end:" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 57 "Perspecteur d'une conique. mm2persp donne le perspecteur" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "mm:= Matrix(3,3,(j,k)->m||j| |k, shape=symmetric); Vector(pu);\n" }{MPLTEXT 1 0 36 "fun:= unapply(T r(%).%%.%, u,v,w)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "eq 2mm(fun(px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "lesbom:= s eq(seq(m||j||k=m[j*10+k], j=1..3),k=1..3);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 23 "<1|0|0>.mm;<0|1|0>.mm; " }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 18 "mmt:= Adjoint(mm);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 70 "Adjoint donne vraiment coM, la matrice des cofacteurs \303\24 0 la bonne place" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "EXpand(mmt.mm): xjoli(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 31 "Les sommets du tri angle polaire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "<1|0|0>.mm;<0|1|0> .mm; (Tr@Matrix@wedge)(%%,%);" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 87 "unun est le triagle de base; mmt est le triangle polaire; Ou bien unun est autopolaire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "mmt-Matrix(mmt, shape=diagonal): \{Entries\}(%) ;eliminate(%, \{m12,m13\});\n" }{MPLTEXT 1 0 22 "subs(m23=0, %[1], mm) ;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 43 "ou bien les deux triangles \+ sont perspective" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "unun:= Diag(1$3 ); [seq](wedge(Column(mmt,j), Row(unun,j)), j=1..3):\n" }{MPLTEXT 1 0 61 "Matrix(%); Rank(%); Adjoint(%%): convert(Column(%,1), list);\n" } {MPLTEXT 1 0 81 "mul(k, k=convert(map(op,%), set)); tmp:= map(sort, ev almm(%%/%), [m11,m22,m33]):\n" }{MPLTEXT 1 0 46 "tmp:= applyop((-numer )/(expand@(-denom)),2,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 117 "proc(mm); map(op, convert(mm,listlist)); [m11, m12, m13, m12, m2 2, m23, m13, m23, m33]; subs(zipq(%,%%), AA); end: \n" }{MPLTEXT 1 0 27 "mm2persp:= subs(AA=tmp, %):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "subs(lesbom, mm2persp(mm));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 45 "conicir, coni_in (par rapport au perspector)" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "conicir:= proc(pp) local p,q ,r; p,q,r:= op(pp); p/x+q/y+r/z; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "(numer@conicir)(pX(6)): eqcircum:= unapply(%,x,y,z)@o p;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "eqq:= conicir(pp); eqc:= expand(eqq*x*y*z); \+ \n" }{MPLTEXT 1 0 50 "mcc:= Matrix(3,3,(j,k)-> diff(eqc, px[j], px[k]) );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "Adjoint(mcc): mic:= m ap(1/id, %); Tr(Vector(px)).mic.Vector(px):\n" }{MPLTEXT 1 0 36 "eqi:= collect(-%, px, distributed);\n" }{MPLTEXT 1 0 30 "coni_in:= unapply( %,p,q,r)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "Adjoint(mic ): map(U->`if`(U=0,0,1/U), %)*2/p/q/r;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "reduce(mm2persp(mcc)); reduce(mm2persp(mic)); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "k:='k': eqc;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 45 "Centre d'une circumconic = P * anticomplem(P)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "zipq(px, reflection(pu,px)); eqq3:= (factor@subs )(%, eqc): #eqq3:= select(has,%,q);\n" }{MPLTEXT 1 0 21 "degree(eqq3, \{x,y,z\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "\{coeffs\}( expand(e qq3-k*eqc), \{x,y,z\}): eli:= [eliminate](%, \{k,u,v\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "remove(has,eli,k=0): op([1,1],%): center_of_c c=(reduce@subs)(%,pu);\n" }{MPLTEXT 1 0 45 "barymul(anticomplem(pp),pp ); zipd(rhs(%%),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "unap ply(barymul(anticomplem(pp),pp), pp)@op; (reduce@%@%)(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "barymul(anticomplem(pp),pp): evalms (%-k*pu);\n" }{MPLTEXT 1 0 37 "eliminate(% union \{k <>0\}, \{k,p,q\}) ;\n" }{MPLTEXT 1 0 24 "(reduce@subs)(%[1], pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "barymul(complem(pp),pp): evalms(%-k*pu);\n" } {MPLTEXT 1 0 37 "eliminate(% union \{k <>0\}, \{k,p,q\});\n" }{MPLTEXT 1 0 39 "(isotom@reduce@isotom@subs)(%[1], pp);\n" }{MPLTEXT 1 0 26 "( isotom@anticomplem)(pu); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 37 "Centre d'une inconic = P * \+ complem(P)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "zipq(px, reflection(p u,px)); (factor@subs)(%, eqi): eqq4:= select(has,%,q):\n" }{MPLTEXT 1 0 21 "degree(eqq4,\{x,y,z\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "\{ coeffs\}( expand(eqq4-k*eqi), \{x,y,z\}): eli:= [eliminate](%, \{k,u,v \}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "remove(has,eli, \{k=0, u=0, v=0\});op([1,1],%): center_of_ic=(reduce@subs)(%,pu);\n" }{MPLTEXT 1 0 41 "barymul(complem(pp),pp); zipd(rhs(%%),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "On teste sur le cercle inscri t" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "coni_in(pX(7)); expand(%-eqinc ircle); \n" }{MPLTEXT 1 0 51 "reduce(barymul(complem(pX(7)), pX(7))); \+ encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "interface(rt ablesize=17):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "qqq:= proc (U_) local aa,bb, U; U:= pX(U_);\n" }{MPLTEXT 1 0 67 "aa,bb:= reduce(b arymul(U, complem(U))), barymul(U,anticomplem(U));\n" }{MPLTEXT 1 0 40 "[X(U_), X(ency(aa)), X(ency(bb)) ] end: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 122 "ma_conics:= <,Mat rix( [ seq(qqq(j), j=[1,2,3,4,5,6,7,8,99,190,264,523,598,647,650])])>; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 " \+ [p*(v/q+w/r),q*(w/r+u/p), r*(u/p+v/q)]; zipq(px,%): \n" }{MPLTEXT 1 0 22 "(factor@subs)(%, eqi);" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 46 "F abriquer un triangle inscrit dans circumconic" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "pF:= [f,g,h]; pG:= [p*g/q,q*h/r,r*f/p]; pH:= [p*h /r,q*f/p,r*g/q];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "hypo:= \+ subs(zipq(px,pF), eqc);;\n" }{MPLTEXT 1 0 46 "subs(zipq(px,pG), eqc);s ubs(zipq(px,pH), eqc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "c r(pG,pH): Tr(%).Adjoint(mic).% : factor(%);;\n" }{MPLTEXT 1 0 45 "cr(p F,pH): Tr(%).Adjoint(mic).% : factor(%);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "encyclo((-a+b+c)*(3*a-b-c));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "U->barymul(U,anticomplem(U)); (reduce@%@%)(pp); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "eval(cyclocev);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 58 "l'isogonal du cercle circonscrit est la droite de l'infi ni" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "(normal@eqcircum@isogon)(px); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "zipq(pX6,pp); (factor@ subs)(%, eqcircum( barymul(pp,isotom(px))));" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 18 "Conique de Steiner" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "tmp6:= add(k, k=barydiv(pX(6), px)); # conicir(pX(6)) ; \n" }{MPLTEXT 1 0 55 "tmp2:= add(k, k=barydiv(pX(2), px)); # conicir (pX(2)); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 15 "Le point commun" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "qqq:= isotom(wedge(pX(6),pX(2))); e ncy(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "(expand@subs)(zi pq(px, qqq), [tmp6, tmp2]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "Matrix([qqq, pu, (isogon@isotom)(pu)]); -Determinant(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 9 "Paraboles" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "m a_conics;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 103 "les_para_out: = seq(`if`(ma_conics[j,3]=X(`?`), op(ma_conics[j,1]),NULL), j=2..RowDi mension(ma_conics));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "1: \+ pX(%), anticomplem(pX(%)); reduce(barymul(%)); ency(%), simplify(add(k ,k=%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "px,anticomplem(p x); tmp:= expand(-add(k, k=barymul(%)) ); \n" }{MPLTEXT 1 0 30 "eq2mm( %): reduce(mm2persp(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "fstein1:= unapply(tmp,x,y,z)@op; factor(fstein1(pX(190)));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 102 "les_para_in:= seq(`if`(ma_conics[j,2]=X(`?`), op(ma _conics[j,1]),NULL), j=2..RowDimension(ma_conics));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "px,complem(px); tmp:= expand(add(k, k=bary mul(%)) ); \n" }{MPLTEXT 1 0 32 "eq2mm(%): -reduce(mm2persp(%));\n" } {MPLTEXT 1 0 58 "fstein2:= unapply(tmp,x,y,z)@op; factor(fstein2(pX(19 0)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 33 "circumconic et cercle circonscrit" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "laconicir:= (unapply(conicir(pp),x,y,z))@op;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "barymul(pp, anticomplem(pp)) ;\n" }{MPLTEXT 1 0 46 "unapply(%, p,q,r)@op; (reduce@factor@%@%)(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "\{seq\}((laconicir@refle ction)(pu,k), k=[pa,pb,pc]):\n" }{MPLTEXT 1 0 45 "eliminate(%, \{p,q\} ); (reduce@subs)(%[1], pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "\{conicir(pp), conicir(pu)\}; eliminate(%, \{x,y\});\n" }{MPLTEXT 1 0 58 "(subs)(%[1], px): isotom(reduce(isotom(%))); wedge(pp,pu);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 " " {TEXT 214 46 "IT transforms (incircle, utilisant ortho_sym)" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "FActor(ortho_proj(pdr)): FAc tor(reflection(%.Vector(pu),pu)):\n" }{MPLTEXT 1 0 53 "elimifacu(%): t mp:= collect(%, [u,v,w], distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "Matrix(3,3,(j,k)->coeff(tmp[j],pu[k])): mymat:= colle ct(%, [a,b,c], factor);;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 19 "On passe \303\240 la suite" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "coni_in(pX(7)); eqincir:= unapply(%,x,y,z)@OP: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "eqincir(px); Sum(select(has,%,x^2), j) +Sum( coeff(coeff(%,y),z)*y*z,j);\n" }{MPLTEXT 1 0 10 "latexx(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "mytri:= matcev(pX(7)); ma p(eqincir, [Column(%, 1..3)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "mylin6:= wedge(pX(6),pu);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "ortho_sym(mylin6): [seq]((reduce@FActor)(%.Column(mytri,j)),j=1..3 ):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "mytri6:= collect(Matrix(%), [ a,b,c]):;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "mylin:= wedge(pX(1),pu); latexy(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "ortho_sym(mylin): mytri3:= [seq]((reduce@FActor)(%.Column(mytri, j)),j=1..3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "mytri4:= Ma trix(mytri3); Column(%,1)-mytri3[1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "(reduce@persp)(mytri4, mun); elimifacu(%);\n" } {MPLTEXT 1 0 27 "tmpz:= unapply(%,u,v,w)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "isogon(tmpz(pu)); latexy(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "(simplify@eqincir@isogon@tmpz)(pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "isogon(tmpz(pu)); IT:= unapply(%,u, v,w)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "elimifacu(tokim (tmpz, pu));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "tmpkim:= a*(b*w - c *v)^2 /(b + c - a) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 118 "[r ot3](tmpkim): tmqq:= (factor@barymul)(subs(zipq(pu, barydiv(pu,pX(1))) ,%),pX(1)); (simplify@eqincir)(%); latexz(%%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "IT2:= unapply(tmqq,u,v,w)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "(reduce@factor@reflection)(pX(1),IT(pu)); (factor@eqincir)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "IT2(pX(6));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 44 "Essai avec le cevian, anticevian : ne va pas" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "# persp( mytri4, matacev(pu));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 62 "Evidemm ent, les points ayant la m\303\252me image sont align\303\251s sur X1" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "evalms(tmpz(pu)-k*tmpz(px)): eli minate(%, \{k,x\});\n" }{MPLTEXT 1 0 62 "numer(x-subs(%[1],x)): collec t(%, px); ps(wedge(pX(1),pu),px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "evalms(IT2(pu)-k*IT2(px)): eliminate(%, \{k,x\});\n" }{MPLTEXT 1 0 62 "numer(x-subs(%[1],x)): collect(%, px); ps(wedge(pX(6 ),pu),px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "ici:= c onvert(zipq(pu, (reduce@subs)(ency_, pX(654))),set) \n" }{MPLTEXT 1 0 29 "union ency_ union cetriangle:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 36 "Le triangle et le cercle circonscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "[color=black]: \n" }{MPLTEXT 1 0 68 "pl1:= dralinpts( pa,pb, %),dralinpts(pb,pc, %),dralinpts(pc,pa, %), \n" }{MPLTEXT 1 0 46 "plot([cos(t),sin(t),t=-Pi..+Pi], color=cyan),\n" }{MPLTEXT 1 0 79 "drawna(pa,\"A\",6,%),drawna(pb,\"B\",9,%),drawna(pc,\"C\",3,%),drawna (pX(4),\"H\",7,%):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Le cercle \+ inscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "pl2:= implicitplot( subs (ici,eqincir(projx)), X=-0.2..0.5, Y=-1..-0.45, color=cyan):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "_it1,_it2,_it3:= seq(convert(Column(mytri ,j),list),j=1..3): \n" }{MPLTEXT 1 0 49 "pl3:= draptn([%,%[1]], [color =blue, style=line]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "_mt 1,_mt2,_mt3:= seq(convert(Column(mytri4,j),list),j=1..3): \n" } {MPLTEXT 1 0 51 "pl4:= draptn([%,%[1]], [color=blue, style=line]), \n" }{MPLTEXT 1 0 75 "dralinpts(pX(1),pu,[color=red]), draptn([pX(1), pu, tmpz(pu)],[color=red]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "[color=green]: \n" }{MPLTEXT 1 0 69 "pl5:= dralinpts(pa,_mt1,%),drali npts(pb,_mt2,%),dralinpts(pc,_mt3,%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "_it2:= IT2(pu): [color=magenta]: pl6:= draptn([_it2], %), \n" }{MPLTEXT 1 0 72 "dralinpts(_it2, _mt1,%),dralinpts(_it2, _mt2 ,%),dralinpts(_it2, _mt3,%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 66 "pl7:= draptn([seq(pX(j), j=[603,654,656,663 ,665])], [color=navy]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "# display(pl1,pl2,pl3, p l4, pl5, pl6, view=[-1 .. 1.1, -1.2.. -0.2], scaling=constrained);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "# 3: display(pl1,pl2,pl4,pl 5,pl6, pl7, view=[-%..%,-%..%]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 7 "conicev" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "\{les_cevians\}(pp) union \+ \{les_cevians\}(pu): map(factor@numer@fun, %);\n" }{MPLTEXT 1 0 58 "el iminate(%, \{m11,m22,m33,m12,m13\}); mm1:= subs(%[1], mm);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "mm1*(q*w+r*v)*p*u/m23/p/q/r/u/v/w: \+ mm11:= EXpand(%); Vector(px):\n" }{MPLTEXT 1 0 62 "-Tr(%).%%.%/2: coni cev0:= collect(%, px, expand, distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "conicev:= subs(AA=conicev0, proc(pp,pu) local p,q, r,u,v,w; \n" }{MPLTEXT 1 0 67 "p,q,r,u,v,w:= op(convert(pp,list)), op( convert(pu,list)); AA; end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "incircle= conicev(X7,X7)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "pX(7); zipd(cyclocev(%), %); conicev(pX(7), pX(7));\n " }{MPLTEXT 1 0 9 "eq2mm(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 " nine_points_circle=conicev(X2, X4)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "zipq(pp,pX(2)),zipq(pu, normal(cyclocev(pX(2))/2)): \n" }{MPLTEXT 1 0 28 "tmp:= conicev(pX(2),pX(4));\n" }{MPLTEXT 1 0 9 "eq2mm(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "eqi; conicev(pp,pp);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "subs(x=0, eqi); factor(%); [ solve](%, \{z\}); map(reduce@subs,%,x=0, [x,y,z]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 25 "pe rspecteur d'une conicev" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "conicev( pp,pu); eq2mm(%); (factor@mm2persp)(%): elimifacu(%);\n" }{MPLTEXT 1 0 69 "# (elimifacu@factor@subs)(zipq(pp,pX(2)),zipq(pu,pX(4)) ,%); enc y(%);" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 39 "Centre d'une conicev : c'est pas facile" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {SECT 1 {PARA 5 "" 0 "" {TEXT 215 37 "Quatrieme point commun \303\240 \+ deux conicev" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "\{conicev(pj ,pp), conicev(pj,pu)\}: eliminate(%, \{x,y\}):\n" }{MPLTEXT 1 0 58 "re duce(subs(%[3][1], px)): evalmm(%/i/j/k/rotp(p^2*u^2)): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "tmp:= collect(%, pj, factor, distributed);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "fac1:= wedge(isotom(pp),is otom(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "# anticomplem (barymul(fac1, isotom(pj)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "anticomplem(barymul(fac1, isotom(pj))): barymul(%, (fac1)): (zip d)(%, tmp); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "barymul(tmp , isotom(wedge(pp,pu))): evalmm(%*rotp(p*u)):\n" }{MPLTEXT 1 0 35 "tmq 1:= collect(%, [i,j,k], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "anticomplem(barymul(wedge(pp,pu),pp,pu, isotom(pj)));\n" } {MPLTEXT 1 0 32 "barymul(%, wedge(pp,pu),pp,pu);\n" }{MPLTEXT 1 0 14 " zipd(%, tmp); " }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT 214 8 "MacBeath" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "macb0:= u^2* x^2 + v^2* y^2 + w^2* z^2 - 2*w*v *y*z - 2*w*u*z*x - 2*u*v*x*y;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "eq2mm(macb0); coni cev(isotom(pu)$2); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "macb := unapply(conicev(isotom(pX(3))$2), x,y,z)@OP:\n" }{MPLTEXT 1 0 37 "c oni_in(pX(264)): factor(%/macb(px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "macb(px); collect(%/rotp(a^2+b^2-c^2), px, distribute d);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 133 "Sum(a^4*(-a^2+b^2+c^2)*x^2/((a^2+b^2-c^2)*( c^2+a^2-b^2)),J)-2*Sum(z*b^2*c^2*y/(-a^2+b^2+c^2),J); latexx(0), latex y(%), latexz([li]);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "# 3 39, 1312, 1313, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "li:= NULL: for j from 9999 t o 2980 do if fdat[j]=\"ohlala\" then next fi; \n" }{MPLTEXT 1 0 80 "su bs(ency_, macb(pX(j))); if simplify(%)=0 then print(\"--\", j); li:= l i,j; fi; \n" }{MPLTEXT 1 0 33 "if j mod 100=0 then print(j) fi;\n" } {MPLTEXT 1 0 15 "od: j:='j': li;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "macb(px); Vecto r[row](px).Adjoint(eq2mm(%)).Vector(px);\n" }{MPLTEXT 1 0 71 "factor(% ); select(has,%,\{x,y,z\}); collect(%, px, factor, distributed);\n" } {MPLTEXT 1 0 29 "macout:= unapply(%,x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "# 110, 287, 648, 651, 677, 895, 1331, 1332, 179 7, 1813, 1814, 1815;\n" }{MPLTEXT 1 0 73 "li:= NULL: for j from 9999 t o 2980 do if fdat[j]=\"ohlala\" then next fi; \n" }{MPLTEXT 1 0 82 "su bs(ency_, macout(pX(j))); if simplify(%)=0 then print(\"--\", j); li:= li,j; fi; \n" }{MPLTEXT 1 0 33 "if j mod 100=0 then print(j) fi;\n" } {MPLTEXT 1 0 15 "od: j:='j': li;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 21 "conipedal = ne va pas" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 61 "On tente la m\303\252me affaire avec les pedals... et c ela ne va pas" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 134 "convert(convert(l es_pedals(pp), listlist), set) union convert(convert(les_pedals(pu), l istlist), set): eqs:= map(factor@numer@fun, %):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "# eli:= eliminate(eqs, \{m11,m22,m33,m12,m13\} ): map(length,%); [50667, 81585];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "# op(eli[2]): tmf:= factor(%):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 57 "whattype(tmf), nops(tmf), map(length, convert(tmf,l ist));" }}{PARA 0 "" 0 "" {TEXT 210 34 "seq(op(k,tmf), k=[1,9,8,2,3,4, 5]);" }}}{EXCHG {PARA 0 "> " 0 "" {TEXT 210 34 "op(6,tmf): collect(%, \+ pu, factor);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Et il y a une cu bique" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "# op(7,tmf): degree(%, \{p ,q,r\});" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 59 "Qui est une conice v ... cette \303\251limination ne donne pas P, U" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "zipq(mm, (k*mm11)): eqs:= \{Entries(%)\}; eli: = eliminate(%, \{p,q,r,u,v\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "condiconcev:= op(eli[2]); ## ancien condiconcev" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "reduce(subs(eli[1], pp)): lepp:= Ve ctor(%);\n" }{MPLTEXT 1 0 43 "reduce(subs(eli[1], pu)): lepu:= Vector( %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "(factor@subs)(eqs, c ondiconcev), (reduce@FActor@subs)(eqs, lepu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "tmq:= conicev(pX(2),pX(4)) ;\n" }{MPLTEXT 1 0 76 "ici:= (Entries@zipq)(mm, Matrix(3,3,(j,k)-> dif f(tmq,op(j,px),op(k,px))/2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "(factor@subs)(ici, condiconcev);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 12 "Pourquoi ???" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "reduc e(subs(ici, lepu));reduce(subs(ici, lepp));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} }{SECT 1 {PARA 4 "" 0 "" {TEXT 214 64 "Condition pour qu'une conique s oit une conique cevienne : mm2cvc" }}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 58 "Pour tester les calculs ... qui sont justes, aren't they !" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "tmpco:= conicev(pp,pu);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "mmm:= Matrix(3,3,(j,k)->diff (tmpco,px[j],px[k])/2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 " map(op, convert(mmm,listlist)): map(op, convert(mm,listlist)):\n" } {MPLTEXT 1 0 21 "icicon:= zipq(%,%%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "Matrice([les_cevians_red(pp)]):(\{Entries\}@zipq)(mc, %): icipts:= remove(has,%,0);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "su bs(icipts, mc);" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "fun(px); mm:= Matrix(eq2mm(% ), shape=symmetric); ;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 82 "Ce ser ont, en colonne, les six points d'intersection de la conique avec les \+ c\303\264t\303\251s." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "Matrix(3,3, (j,k)->c||j||k): mc:= %-Matrix(%, shape=diagonal);\n" }{MPLTEXT 1 0 62 "Matrix(3,3, (j,k)->d||j||k): md:= %-Matrix(%, shape=diagonal);" }} }{EXCHG {PARA 0 "" 0 "" {TEXT 210 94 "On \303\251crit donc que les tro is points sont sur la conique et qu'ils sont les ceviens de quelqu'un" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "eqs:= seq(Tr(Column(mc,j)).mm.Co lumn(mc,j), j=1..3), -testCeva(mc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 67 "Digression \+ : r\303\251cup\303\251rer les m(jk) non diagonaux connaissant les c(j) " }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 90 "On peut d\303\251terminer les coefficients non diagonaux de la matrice \303\240 partir du fait que \+ les \n" }{TEXT 210 32 "cevians de C sont sur la conique" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "eliminate(\{eqs\}, \{m12,m13,m23\}); eqq1:= su bs(%[1], fun(px));" }}{PARA 0 "" 0 "" {TEXT 210 4 "Test" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "(simplify@subs)(icicon, icipts, eqq1): \n" } {MPLTEXT 1 0 62 "simplify(%*coeff(tmpco,x,2)-tmpco*coeff(%,x,2)): ASSE RTa(%=0);" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 47 "Digression : obte nir les d(j) \303\240 partir des c(j)" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 56 "On r\303\251cup\303\250re la SECONDE racine en fonction de la \+ premi\303\250re" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "subs(x=0, y=d21, z=d31, eqq1): \n" }{MPLTEXT 1 0 45 "vald21:= solve(\{%, d21<>d31*c21/ c31\}, \{d21\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "subs(y=0, z=d32 , x=d12, eqq1): \n" }{MPLTEXT 1 0 45 "vald32:= solve(\{%, d32<>d12*c32 /c12\}, \{d32\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "subs(z=0, x=d1 3, y=d23, eqq1): \n" }{MPLTEXT 1 0 45 "vald13:= solve(\{%, d13<>d23*c1 3/c23\}, \{d13\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "subs(vald13,v ald21,vald32, md); \n" }{MPLTEXT 1 0 60 "(factor@subs)(vald13,vald21,v ald32,d21*d32*d13-d31*d12*d23);" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "eli:= eliminate(\{eqs\}, \{c12\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "# (normal@subs)(icipts, icicon, eli);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "indets(eli[2]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "(factor@subs)(eli[1], [eqs]): eqs2:= conver t(map(numer,%), set) minus \{0\};\n" }{MPLTEXT 1 0 72 "nops(%); elj:= \+ eliminate(eqs2, c21); (normal@subs)(icipts, icicon, elj);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "indets(elj[2]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "(factor@subs)(elj[1],eqs2): ratio:=%[1]/%[2 ]; eqs3:= \{%%[1],%%[3]\};\n" }{MPLTEXT 1 0 75 "(normal@subs)(icipts, \+ icicon, ratio), (normal@subs)(icipts, icicon, eqs3); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "select(has, eqs3[1], m33)/m33: eqs3 3:= \{%, eqs3[2]\}; \n" }{MPLTEXT 1 0 52 "map(length,%), (normal@subs) (icipts, icicon, eqs33);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "indets(eqs33);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "eqs33[2] : rem(%, eqs33[1], c23): factor(%): select(has,%,m33); \n" }{MPLTEXT 1 0 68 "condicon := m33*m22*m11-m11*m23^2-m13^2*m22-m33*m12^2-2*m13*m2 3*m12;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "tmp:= sqrt((p*v-u *q)^2/(u^2*q^2*v^2*p^2)): \n" }{MPLTEXT 1 0 74 "monsigne1:= tmp=simpli fy(tmp) assuming r>0,v>0,q>0,w>0,u>0,p>0,p*v-u*q>0;\n" }{MPLTEXT 1 0 73 "monsigne2:= tmp=simplify(tmp) assuming r>0,v>0,q>0,w>0,u>0,p>0,p*v -u*q<0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eqs33[1];" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "elik:= [solve](eqs33[1], \{c 13\}); (factor@subs)(icicon, icipts, %):\n" }{MPLTEXT 1 0 19 "subs(mon signe1, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "(simplify@su bs)(eli[1],elj[1],elik[1], mc): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "mcc:= map(factor@expand@rationalize@simplify, %);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "WW:= op(indets(mcc, sqrt));\n" } {MPLTEXT 1 0 44 "autre:= op(\{m11,m22,m33\} minus indets(WW));\n" } {MPLTEXT 1 0 62 "rule:= -remove(has,condicon,autre)=select(has,condico n,autre);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "EXpand(pp_ceva (mcc)[2]): pppp0:= map(xcollect,%, [WW], factor); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "subs(WW=W, -WW^2=-W^ 2, rule, pppp0); subs(-WW^2=-W^2, factor(%)); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "(EXpand@evalmm)(%/W/m33/m11/m22);\n" }{MPLTEXT 1 0 51 "bilan:= map(collect, subs(W^2=WW^2, %), W, normal);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "indets(bilan);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 73 "(simplify@subs)(W=WW, icicon, bilan): (reduc e@factor@subs)(monsigne1, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "condiconcev; " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "pppp : = [\n" }{MPLTEXT 1 0 69 "((m12^2-m11*m22)*m13+sqrt(m12^2-m22*m11)*(m11 *m23+m13*m12))*m22*m33,\n" }{MPLTEXT 1 0 69 "((m12^2-m11*m22)*m23-sqrt (m12^2-m22*m11)*(m22*m13+m23*m12))*m11*m33,\n" }{MPLTEXT 1 0 56 "m22*m 11*(m11*m23^2+2*m13*m23*m12+m13^2*m22)]: Vector(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "coni:= conicev(pX(3),pX(4));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "indets(mm);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 257 "mm2cvc:= subs(AAA=condiconcev, BBB=pppp, proc( mm_) local mm, mymm; mm:= Matrix(3, 3, \{(1, 1) = m11, (1, 2) = m12, ( 1, 3) = m13, (2, 1) = m12, (2, 2) = m22, (2, 3) = m23, (3, 1) = m13, ( 3, 2) = m23, (3, 3) = m33\}); mymm:= solve(evalms(mm_-mm), indets(mm)) ; \n" }{MPLTEXT 1 0 42 "subs(mymm, AAA), subs(mymm, Vector(BBB));\n" } {MPLTEXT 1 0 5 "end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "my con, mypp:= mm2cvc(eq2mm(coni)): simplify(mycon); # (mypp);\n" } {MPLTEXT 1 0 56 "# map(simplify, mypp) assuming p>0, q>0, r>0: reduce( %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 18 "Det(mm)-condicon; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "sub s(lesbom, mm); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "subs(les bom, condicon);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "subs(les bom, pppp): Vector(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "V ector(pppp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "pp44:= pppp : pp44[3]+condicon*m22*m11: pp44[3]:= factor(%);;" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 107 "pp44: evalmm(%/sqrt(m12^2-m22*m11)/m11/m22/ m33): xcollect(%, sqrt(m12^2-m22*m11), simplify): factor(%):;;\n" } {MPLTEXT 1 0 10 "Vector(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 77 "condicon; subs(m11=m12^2/m33, m22=m23^2/m33, %); factor(%); solve(%, \{m33\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "subs(m11=m12^2/m33, m22=m23^2/m33, m33 = -m13*m23/m12 , mm); Det(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 14 "Test de daleth" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "tmp:= subs(zipq(pu,px), u^2/ p^2-2*v*u/(p*q)-2*w*u/(p*r)+v^2/q^2-2*w*v/(r*q)+w^2/r^2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "mmm:= Matrix(3,3,(j,k)->diff(tmp,px [j],px[k])/2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "map(op, c onvert(mmm,listlist));map(op, convert(mm,listlist));\n" }{MPLTEXT 1 0 21 "icicon:= zipq(%,%%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "(factor@subs)(icicon,condiconcev);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "pppp; subs(icicon, %), subs(icicon, sqrt(m12^2-m22*m1 1));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "eli[1], (factor@sub s)(icicon, elj[1]), subs(icicon, elik[1]);\n" }{MPLTEXT 1 0 25 "subs(% , mc); pp_ceva(%);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 " " {TEXT 214 10 "Test de he" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "tmp:= subs(zipq(pu,px), \n" }{MPLTEXT 1 0 103 "b*c*u^2/p+(c^2/r+b* c/q+a*c/p)*v*u+(b*c/r+b^2/q+a*b/p)*w*u+c*a*v^2/q+(a*c/r+a*b/q+a^2/p)*w *v+w^2*b*a/r);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "mmm:= Matrix(3,3,(j,k)->diff (tmp,px[j],px[k])/2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "ma p(op, convert(mmm,listlist)): map(op, convert(mm,listlist)):\n" } {MPLTEXT 1 0 21 "icicon:= zipq(%,%%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "(factor@subs)(icicon,condicon);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "# pppp; subs(icicon, %), subs(icicon, sqrt(m1 2^2-m22*m11));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "# eli[1], (factor@subs)(icicon, elj[1]), subs(icicon, elik[1]); subs(%, mc); pp _ceva(%);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 42 "Simpson Cubic (\303\251tait noy\303\251 dans orthogonal)" }}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 37 "Equation de la cubique depuis prm_sim" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "isosim:= (Vector@isotom@p rm_sim)(pdr);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "evalms(iso sim-k*px): eliminate(%, \{rho,k\}): op(%[2]);\n" }{MPLTEXT 1 0 51 "sim cub0, fac:= selectremove(has,%, \{x,y,z\}): fac;;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "collect(simcub0, px): \n" }{MPLTEXT 1 0 69 "simcub:= xcollect(%, [c^2+a^2-b^2,a^2+b^2-c^2,b^2+c^2-a^2], factor); \n" }{MPLTEXT 1 0 30 "fsimcub:= unapply(%,x,y,z)@OP:" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 20 "Fonction gs ... mygs" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "(simplify@subs)(u2prm, -isosim*u*v*w): collect(%, pu, distributed) ;\n" }{MPLTEXT 1 0 39 "gs:= unapply(convert(%,list),u,v,w)@OP:" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 15 "Kim value de gs" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "gs(pu): tmp1:= %[1]; eqcircum(pu): isolate(%, a^2 *v*w)*u/a^2*(b^2-c^2); \n" }{MPLTEXT 1 0 45 "subs(%, tmp1): collect(%/ u/v/w, pu, factor);\n" }{MPLTEXT 1 0 46 "unapply([rot3](%),u,v,w)@OP: \+ tokim(%, pu)[1];\n" }{MPLTEXT 1 0 62 "collect(%, pu, factor); subs(shi ka,%/2*rotp(u/a)); factor(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 88 "Lorsque GS(U) est sur K010, U est sur le circonscrit... ou sur une courbe de degr\303\251 7 ...." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "(factor@fsimcub@gs)(pu): op (1,%);\n" }{MPLTEXT 1 0 55 "courbe_de_degre_7:= collect(op(2,%%), pu, \+ distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 1 {PARA 5 "" 0 "" {TEXT 215 15 "Points speciaux" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "subs(x=0, simcub); [solve](%,\{y,z\}); ma p(reduce@subs,%,x=0,px);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "matcocev(pX(69)); [Column](%,1..3); map(expand@fsimcub,%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "subs(z=-y, simcub);[solve](% ,\{x,y\}); map(reduce@subs,%,[x,y,-y]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "(factor@fsimcub)([b+c, b-c, -b+c]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "[x,y,-y]; wedge(%, isotom(%)); (reduce@fa ctor)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "any(pp);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 29 "Diagramme orthopoint compl\303\251t\303 \251" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "Qp :=pX(525); ency(% );\n" }{MPLTEXT 1 0 16 "lprint(\"----\");\n" }{MPLTEXT 1 0 68 "Qq1:=(r educe@wedge)(%%, pX(2)): ency(%); Qu1:=(isogon)(%%):ency(%);\n" } {MPLTEXT 1 0 73 "Qst1:=barydiv(Qq1,pX(4)): ency(%); Qk1:=(reduce @gs)(Qu1): ency(%);\n" }{MPLTEXT 1 0 16 "lprint(\"----\");\n" } {MPLTEXT 1 0 68 "Qq2:=(reduce@orthopoint)(Qq1): ency(%); Qu2:=(isogon )(%%):ency(%);\n" }{MPLTEXT 1 0 72 "Qst2:=barydiv(Qq2,pX(4)): en cy(%); Qk2:=(reduce@gs)(Qu2): ency(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 29 "test de la reflection dans X3" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "bary2norm(Qu1)+bary2norm(Qu2): ency(%);" }}{PARA 0 "" 0 "" {TEXT 210 22 "test des deux formules" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "isogon(barymul(Qu1,pX(4))): zipd(%,Qst1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "subs(zipq(pdr, pX(525)), isosim): e ncy(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "gs(pX(74)): ency(%);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "tril ipoP:= isotom(px); trilipoQ:= (px);\n" }{MPLTEXT 1 0 58 "infP:=wedge(p X(2), trilipoP);infQ:=wedge(pX(2), trilipoQ);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 39 "L'\303\251limination ne se fait pas totalement" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "(evalms)(orthopoint(infP)-k*infQ) ; eli:= eliminate(%,\{k\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "if no ps(eli[2])>1 then elimine_quand_meme:= eli[2][1]+eli[2][2] fi;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 31 "Dans tous les cas, cela marche " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "collect(eli[2][1], px, factor, di stributed);\n" }{MPLTEXT 1 0 17 "factor(%/simcub);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 25 "G= X(2) est un point isol\303\251" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "s ubs(zipq(px,pX(2)), simcub); pf:= [f,g,h];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 52 "condition pour que le point fixe soit sur la cubique" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "cub1 := x*(q*z^2+y^2*r)*u+y*(z^2*p+ r*x^2)*v+z*(p*y^2+q*x^2)*w+k*z*y*x;\n" }{MPLTEXT 1 0 62 "subs(zipq(px, pfix), cub1); (factor@expand@op@solve)(%, \{k\});\n" }{MPLTEXT 1 0 37 "condik:= sort(subs(zipq(pfix,pf),%));" }}{PARA 0 "" 0 "" {TEXT 210 31 "La belle \303\251quation de la cubique" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "cubcp:= collect(subs(condik, zipq(pp, barymul(pf,pf)) , cub1), pu, factor);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "D\303\2 51termination de root" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "subs(zipq( pf,pX(2)), cubcp)-simcub: collect(%, px, distributed):\n" }{MPLTEXT 1 0 61 "\{coeffs\}(%, \{x,y,z\}): solve(%, \{u,v,w\}): subs(%,pu); ency( %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " " 0 "" {TEXT 210 51 "On cherche la conique duale, exprimant les contac ts" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "mun,matcev(pf),matacev(pf), m atcocev(pu);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "li:= seq(Vector(wed ge(Column(mun,j), Column(matcocev(pu),j))), j=1..3);; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "Column(matacev(pf),2),Column(matacev(pf),3); we dge(%); \n" }{MPLTEXT 1 0 56 "li:= li, seq(Tr(Row(Adjoint(matacev(pf)) ,j))/2, j=1..3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "Et on voit b ien que la duale est conicev(1/F,1/U)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "map(reduce, [li]);" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 19 "Ava nc\303\251 des coniques" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 111 " conicev0 := x^2/(p*u)+(-1/(r*u)-1/(p*w))*z*x+(-1/(u*q)-1/(p*v))*y*x+y^ 2/(q*v)+(-1/(r*v)-1/(q*w))*z*y+z^2/(r*w);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "conicev:= subs(AAA=conicev0, proc(pp,pu) local p,q,r, u,v,w; \n" }{MPLTEXT 1 0 68 "p,q,r,u,v,w:= op(convert(pp,list)), op(co nvert(pu,list)); AAA; end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "eq2mm:= proc(eqq); Matrix(3,3,(j,k)-> diff(eqq,px[j],px[k])/2); en d:" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 34 "conicev(isotom(pf), isotom(pu)); \n" } {MPLTEXT 1 0 52 "tmpdu:= -eq2mm(%)*2; evalm(px &* Adjoint(%) &* px):\n " }{MPLTEXT 1 0 46 "pivcon:= collect(-%, px, factor, distributed);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "cen:= [rot3](u*(g+h-2*f)+f* (u+w));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "evalm(pf &* Adjo int(tmpdu) &* px): \n" }{MPLTEXT 1 0 46 "polarf:= collect(%/u/v/w/4/f/ g/h, px, expand);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "subs(z ipq(px,isoc(px)), zipq(pp, barymul(pf,pf)), polarf):\n" }{MPLTEXT 1 0 54 "concon:= collect((%)*x*y*z, px, expand, distributed);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "INtersection des trilipo sur nineq" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "nineq:= u napply(conicev(pX(2), pX(4)),x,y,z)@op;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "wedge(trilipoP,trilipoQ): tmp:= factor(%); nineq(%):; factor(% /simcub);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "subs(z=-y, [trilipoP, \+ trilipoQ]); (reduce@factor@wedge@op)(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "condition d'\303\251gale image" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "wedge(trilipoP,trilipoQ); eqs:= evalms(%-k*subs(zipq( px,pp),%));\n" }{MPLTEXT 1 0 29 "eli:= [eliminate](%,\{k,q,r\});" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "map(factor@subs, map2(op,1,eli), eq s);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 32 "On \+ cherche l'application inverse" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "ev alms(elimifacu(tmp)-k*pu1);\n" }{MPLTEXT 1 0 27 "eli:= eliminate(%, \{ x, y\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "# nineq(pu1);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "op(eli[2])/k/u1/z: collect(%, z, factor); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "les_pedals(pX(110)): (reduce@factor@eigencenter 2)(%); ency(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "ici:= \+ ency_ union cetriangle union subs(ency_, convert(zipq(pf,pX(2)),set) u nion\n" }{MPLTEXT 1 0 64 "convert(zipq(pp,pX(2)),set) union convert(zi pq(pu,pX(69)),set));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "sub sop(3=NULL, bary2proj(px)): evalms(%-[X,Y])union \{x+y+z=1\}:\n" } {MPLTEXT 1 0 50 "projx:= (expand@subs)(solve(%, \{x,y,z\}), ici, px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "projcub:= (expand@subs)( zipq(px,projx), ici, cubcp):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "pl1:= implicitplot(evalf(projcub), X=-2.5..2.2, Y=-3..2, grid=[1 50,150], color=black):" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 35 "Les c as limites pour le point isol\303\251" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "projcub+K: tmq:= collect(discrim(%, Y), K, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "-1.028=fsolve(subs(K=-1.0 28, tmq)); -1.027=fsolve(subs(K=-1.027, tmq)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "-0.8: %=fsolve(subs(K=%, tmq));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "-0.4: %=fsolve(subs(K=%, tmq));" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "projcubb:= projcub-0.4: " } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "pl1x:= implicitplot(evalf( projcubb), X=-1..1, Y=-1.5..0, grid=[2000,2000], color=magenta):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "[pf, \+ les_anticevs(pf)]: tmp:= map(reduce,%);\n" }{MPLTEXT 1 0 122 "plf:= dr awna(tmp[1],\"F\",3,optbla),drawna(tmp[2],\"Fa\",1,optbla),drawna(tmp[ 3],\"Fb\",10,optbla),drawna(tmp[4],\"Fc\",1,optbla):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "projpolarf:= (expand@subs)(zipq(px,projx) , ici, polarf):\n" }{MPLTEXT 1 0 78 "plf0:= implicitplot(evalf(projpol arf), X=-2.5..2.2, Y=-3..2, grid=[150,150], \n" }{MPLTEXT 1 0 26 "colo r=red, linestyle=1): ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "p rojconcon:= (expand@subs)(zipq(px,projx), ici, concon):\n" }{MPLTEXT 1 0 78 "plf1:= implicitplot(evalf(projconcon), X=-2.5..2.2, Y=-3..2, g rid=[150,150], \n" }{MPLTEXT 1 0 25 "color=red, linestyle=1): " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "optbla:= [color=blue]: delt: = [0.05,0.05]*3:\n" }{MPLTEXT 1 0 84 "pl2:= drawna(pa,\"A\",11, optbla ),drawna(pb,\"B\",10, optbla),drawna(pc,\"C\",3, optbla):;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "projcon:= (expand@subs)(zipq(px,pro jx), ici, pivcon):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 98 "pl3:= implicitplot(evalf(projcon), X=-2.5..2.2, Y=-3..2, grid=[150,150], co lor=blue, linestyle=1):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " [color=cyan, linestyle=0]:\n" }{MPLTEXT 1 0 89 "pl4:= dralinpts(tmp[2] ,tmp[3],%),dralinpts(tmp[3],tmp[4], %),dralinpts(tmp[4],tmp[2], %):" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "tmq:= convert(Tr(matcocev( pu)),listlist); [color=green, linestyle=0]:\n" }{MPLTEXT 1 0 76 "pl50: = dralinpts(pa,tmq[1],%),dralinpts(pb,tmq[2],%),dralinpts(pc,tmq[3],%) :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "black: pl5:= drawna(pu ,\"U\",2, [color=%]), drawna(isoc(pu),\"U*\",3, [color=%]):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "solve(\{projcub, projpolarf \}):map( (U->map(Re,U))@subs, evalf([%]), [X,Y]);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 104 "# display(pl1, plf, plf0, plf1, pl2, pl3, pl4, pl5, pl50, scaling =constrained, view=[-1.2..2, -2..0.5]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 12 "Lemoine like" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "fun:= U-> e valm(U &* mm &* U);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 159 " (l *alpha+m*beta+n*gamma)*(a*alpha+b*beta+c*gamma)+k*(a*beta*gamma+b*gamm a*alpha+c*alpha*beta); funcir:= subs(zipq([alpha,beta,gamma],px), zipq ([l,m,n],pp),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "collect (fun(px)-funcir, px, distributed);\n" }{MPLTEXT 1 0 48 "eli:= eliminat e(\{coeffs\}(%,[x,y,z]), \{p,q,r,k\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "eli[1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 " (factor@numer)(pytha(pu,px)-rho2): fun2:= collect(%, px, factor, distr ibuted);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "collect(fun2-fu ncir, px, distributed);\n" }{MPLTEXT 1 0 51 "eli:= eliminate(\{coeffs \}(%,[x,y,z]), \{p,q,r,rho2\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "lespts:= NULL: \n" }{MPLTEXT 1 0 71 "wedge(pp, wedge (pa,pX(2))): lespts:= lespts, wedge(%,pb),-wedge(%,pc):\n" }{MPLTEXT 1 0 71 "wedge(pp, wedge(pb,pX(2))): lespts:= lespts, wedge(%,pc),-wedg e(%,pa):\n" }{MPLTEXT 1 0 70 "wedge(pp, wedge(pc,pX(2))): lespts:= les pts, wedge(%,pa),-wedge(%,pb);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "map(fun, \{lespt s\});\n" }{MPLTEXT 1 0 59 "eliminate(%, \{m12,m13,m23,m11,m22\}); tmp0 := subs(%[1], mm);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "tmp:= tmp0*2*(p+q)/m33/r;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "[se q](op(j,[lespts]), j=[1,3,5]); Matrix(%);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 19 "setting orthopoints" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 14 "oo:= table():\n" }{MPLTEXT 1 0 18 "for j to jmax do \n" }{MPLTEXT 1 0 25 "if ff[j]=0 then next fi;\n" }{MPLTEXT 1 0 67 "t mp:= ency(orthopoint(pX(j))); if tmp <> `?` then oo[j]:= tmp; fi;\n" } {MPLTEXT 1 0 3 "od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "lio: = sort(map(op, [indices](oo))); nops(%);\n" }{MPLTEXT 1 0 54 "lii:= [ seq](`if`(ff[j]=1,j,NULL), j=1..jmax): nops(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "seq(ASSERT(oo[oo[j]]=j), j=lio);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "try close(fd); catch : end try;\n" }{MPLTEXT 1 0 66 "fd := open(\"/home/douillet/public_html/etc/alt_data .csv\", WRITE):\n" }{MPLTEXT 1 0 16 "for j in lio do\n" }{MPLTEXT 1 0 12 "fprintf(fd, " }{MPLTEXT 1 0 19 "\"\"\"%d\"\";\"\"%d\"\"\\n\", " } {MPLTEXT 1 0 11 "j, oo[j]);\n" }{MPLTEXT 1 0 23 "od: close(fd); j:='j ':" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 15 "Checking gerade" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "badger:= table():\n" }{MPLTEXT 1 0 20 "for www to jma x do \n" }{MPLTEXT 1 0 54 "cat(\"[\",gerdat[www],\"]\"): SubstituteAll (%,\"=\",\"],[\");\n" }{MPLTEXT 1 0 49 "tmp:= SubstituteAll(%,\"_\",\" ,\"); try parse(tmp); \n" }{MPLTEXT 1 0 45 "catch: print(www, tmp); ba dger[www]:= tmp; \n" }{MPLTEXT 1 0 9 "end try;\n" }{MPLTEXT 1 0 47 "# if www mod 100 = 0 then lprint(\"--\",www) fi;\n" }{MPLTEXT 1 0 3 "od :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 224 "[1,39],[2,1334],[3,23 29],[4,9],[7,979],[8,672],[32,3494],[37,986],[41,100],[43,213],[57,345 ],[63,2896],[76,3503],[145,1475],[220,1376],[321,2198],[346,1400],[384 ,3500],[404,644],[484,1759],[579,2321],[1575,2176],[2896,3497];" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "[indices](badger); tmp:= sor t(map(op, %)); nops(%); \n" }{MPLTEXT 1 0 40 "matrix(3,11,%%); # latex x(0): latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "cat(\"[ \", gerdat[3051],\"]\");\n" }{MPLTEXT 1 0 60 "SubstituteAll(%,\"=\",\" ],[\"); tmp:= SubstituteAll(%,\"_\",\",\");\n" }{MPLTEXT 1 0 10 "parse (%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "subs(ency_, pX(305 1));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 67 "Some Central Triangles : lengths, isogon, circumcircle. EXO L emoine" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "mun; aut:= Matrice ([pu1,pu2,pu3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "Pa,Pb,P c:=bary2proj(pu1), bary2proj(pu2), bary2proj(pu3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "X*Pa+Y*Pb+Z*Pc - bary2proj(px); evalms(%); \+ sols:= solve(%, \{X,Y,Z\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "(factor@subs)(sols,[X,Y,Z]); tmp:= reduce(%);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 47 "tmq:= subs(seq(add(k,k=pu||j)=1,j=1..3), tmp );\n" }{MPLTEXT 1 0 45 "qqq:= Matrix(3,3,(j,k)->coeff(tmq[j],px[k]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "Adjoint(aut);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "indets(aut); qq:= convert(qqq, listlist);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "CHV:= subs(AAA=eval(qq), pro c(m) local u1, u2, u3, v1, v2, v3, w1, w2, w3;\n" }{MPLTEXT 1 0 75 "u1 := m[1, 1]; v1 := m[2, 1]; w1 := m[3, 1]; u2 := m[1, 2]; v2 := m[2, 2 ];\n" }{MPLTEXT 1 0 78 "w2 := m[3, 2]; u3 := m[1, 3]; v3 := m[2, 3]; w 3 := m[3, 3]; Matrix(AAA); end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "'CHV(aut).Vecto r(px) = Vector(tmq)'; (EXpand@eval@(rhs-lhs))(%);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 21 "linf:= Vrow([1,1,1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 17 "A propos de pytha" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "pytha(pp,pu); tmp:= subs(u+v+w=1, p+q+r=1, %);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "factor(%/eqcircum(-pp+pu)); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "subs(zipq(pu-pp, px),zipq(-p u+pp, -px), tmp);\n" }{MPLTEXT 1 0 38 "mq:= eq2mm(%); A(-1/2)*A(eval(- 2*%)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "mts:= Matrix(mat rix(3,3,[0,1,-1,-1,0,1,1,-1,0]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "mtri:= Matrice([pp,pu,px]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "mtri.mts; map(collect, (Tr(%).mq.%)/(-2), [a,b,c] , factor):\n" }{MPLTEXT 1 0 26 "Matrix(%, shape=diagonal);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 18 "Test de positivit\303\251" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "(expand@subs)(w=1-u-v, r=1-p-q, tmp ): xcs(%, p,q):\n" }{MPLTEXT 1 0 53 "select(has,%,\{p,q,r\})+factor(re move(has,%,\{p,q,r\})):\n" }{MPLTEXT 1 0 27 "subs(apbpc, map(factor,%) );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 6 "medial" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "TT:= matcev(pX(2));\n" }{MPLTEXT 1 0 61 "newlen:= zipq([a^2,b^2,c^ 2], [bary2pyth(TT)]); len_medial:=%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "newisogon:= Vector[column]@unapply(subs(newlen, isogo n(px)),x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "tmpres := 4*TT. newisogon(Adjoint(TT).Vector(px));\n" }{MPLTEXT 1 0 52 "media l_isogon:= unapply(convert(%, list), x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Dans le glossaire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "tmp:= tokim(medial_isogon, px):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "b*c*(a*x - b*y - c*z)*(b^2 *(a*x + b*y - c* z) + c^2* (a*x - b*y + c*z));\n" }{MPLTEXT 1 0 45 "factor(%/tmp[1]); A SSERT(factor(%/rot(%))=1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "eqcircum(px); Vector[row](px).mq.Vector(px): collect(-%, px, distr ibuted);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "Vector[row](px) .Tr(1/TT).mq.(1/TT).Vector(px):collect(4*%, px,factor,distributed);\n" }{MPLTEXT 1 0 33 "cir_medial:= unapply(%,x,y,z)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "(simplify@cir_medial)(tmpres);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT 214 10 "antimedial" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "TT:= matacev(pX(2));\n" }{MPLTEXT 1 0 65 "newl en:= zipq([a^2,b^2,c^2], [bary2pyth(TT)]); len_antimedial:=%;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "newisogon:= Vector[column]@u napply(subs(newlen, isogon(px)),x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 56 "tmpres:= 1/4*TT. newisogon(1/2*Adjoint(TT).Vector(p x));\n" }{MPLTEXT 1 0 56 "antimedial_isogon:= unapply(convert(%, list) , x,y,z)@OP:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Dans le glossair e" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "tmp:= tokim(antimedial_isogon, px):\n" }{MPLTEXT 1 0 64 "b*c*(- a^2 /(b*y + c*z) + b^2 /(c*z + a*x) \+ + c^2 /(a*x + b*y));\n" }{MPLTEXT 1 0 17 "factor(%/tmp[1]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "Vector[row](px).Tr(1/TT).mq. (1/TT).Vector(px):collect(-4*%, px,factor,distributed):\n" }{MPLTEXT 1 0 26 "xcollect(%,a^2+b^2+c^2); \n" }{MPLTEXT 1 0 37 "cir_antimedial: = unapply(%,x,y,z)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "( simplify@cir_antimedial)(tmpres);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 6 "orthic" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "TT:= matcev(pX(4));\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "TT:= FActor(TT.(1/Diag(linf. TT))); # FActor(linf.%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "newlen:= zipq([a^2,b^2,c^2], factor([bary2pyth(TT)]));len_orthic:=%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "newisogon:= Vector[colum n]@unapply(subs(newlen, isogon(px)),x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "t mpres:= TT. newisogon(Adjoint(TT).Vector(px)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "(reduce@FActor)(tmpres); map(collect,%[1],[a,b,c]);\n " }{MPLTEXT 1 0 45 "orthic_isogon:= unapply([rot3](%), x,y,z)@OP:" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Dans le glossaire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "tmp:= tokim(orthic_isogon, px):\n" }{MPLTEXT 1 0 58 "x*(x *cos (A) - y* cos (B) - z* cos (C)); subs(kashi, %);\n" } {MPLTEXT 1 0 45 "factor(%/tmp[1]); ASSERT(factor(%/rot(%))=1);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "mqq:= subs(newlen, mq);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "Vector[row](px).Tr(1/TT).mqq.(1/TT).Vector(px):colle ct(4*%, px,factor,distributed);\n" }{MPLTEXT 1 0 28 "# xcollect(%,a^2+ b^2+c^2); \n" }{MPLTEXT 1 0 33 "cir_orthic:= unapply(%,x,y,z)@OP:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "cir_medial(px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "(simplify@cir_orthic)(tmpres); subs (a2toAA, map(collect,%,px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 10 "tangential" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "TT:= matacev(pX(6)): TT:= FActor(TT .(1/Diag(linf.TT))); \n" }{MPLTEXT 1 0 72 "newlen:= zipq([a^2,b^2,c^2] , factor([bary2pyth(TT)]));len_tangential:=%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "newisogon:= Vector[column]@unapply(subs(newlen, \+ isogon(px)),x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "t mpres:= TT. newisogon(Adjoint(TT).Vector(px)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "plusjoli:=a^2*(-a^2/(c^2*y+b^2*z)+b^2/(c^2*x+a^ 2*z)+c^2/(b^2*x+a^2*y)) ;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "factor (plusjoli/tmpres[1]): ASSERT(factor(%/rot(%))=1);\n" }{MPLTEXT 1 0 56 "tangential_isogon:= unapply([rot3](plusjoli), x,y,z)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Dans le glos saire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "tmp:= tokim(tangential_iso gon, px):\n" }{MPLTEXT 1 0 71 "tmpkim:= a*(- a^3 /(c*y + b*z) + b^3 /( a*z + c*x) + c^3 /(b*x + a*y));\n" }{MPLTEXT 1 0 44 "factor(%/tmp[1]); ASSERT(factor(%/rot(%))=1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "mqq:= subs(newlen, mq);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "Vector[row](px).Tr(1/TT).mqq.(1/TT).Vector(px)*rotp(-b^2-c^2+a^2): \n" }{MPLTEXT 1 0 35 "collect(%, px,factor,distributed):\n" }{MPLTEXT 1 0 76 "xcollect(%,[-a^4*c^2-b^4*c^2+c^6+a^6-a^2*c^4-c^4*b^2-a^2*b^4+b ^6-a^4*b^2], \n" }{MPLTEXT 1 0 35 " (U->map(collect,U,px))@factor); \+ \n" }{MPLTEXT 1 0 37 "cir_tangential:= unapply(%,x,y,z)@OP:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "(simplify@cir_tangential)(tm pres);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 9 "excentral" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "TT:= matacev(pX(1)): TT:= F Actor(TT.(1/Diag(linf.TT))); \n" }{MPLTEXT 1 0 71 "newlen:= zipq([a^2, b^2,c^2], factor([bary2pyth(TT)]));len_excentral:=%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "newisogon:= Vector[column]@unapply(subs(n ewlen, isogon(px)),x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "tmpres:= TT. newisogon(Adjoint(TT).Vector(px)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "plusjoli := a*(1/((-b-c+a)*(y*c+z*b ))+1/((a-b+c)*(x*c+z*a))+1/((b+a-c)*(x*b+y*a)));\n" }{MPLTEXT 1 0 27 " factor(plusjoli/tmpres[1]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "exce ntral_isogon:= unapply([rot3](plusjoli), x,y,z)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "D ans le glossaire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "tmp:= tokim(exc entral_isogon, px):\n" }{MPLTEXT 1 0 83 "tmpkim:= -a/((b+c-a)*(y + z)) + b/((c + a - b)*(z + x)) + c/((a + b - c)*(x + y));\n" }{MPLTEXT 1 0 23 "factor(tmpkim/tmp[1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "mqq:= subs(newlen, mq);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "Vector[row](px).Tr(1/TT).mqq.(1/TT).Vector(px):collect(-%, px,fa ctor,distributed):\n" }{MPLTEXT 1 0 20 "xcollect(%,a+b+c); \n" } {MPLTEXT 1 0 36 "cir_excentral:= unapply(%,x,y,z)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "(simplify@cir_excentral)(tmpres);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 8 "Fuhrmann" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "matucev(pX(1)); \n" } {MPLTEXT 1 0 82 "TT:= Matrix([seq]((reduce@FActor)(ortho_sym(Column(mu n,j)).Column(%,j)), j=1..3));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "TT:= FActor(TT.(1/Diag(linf.TT))): \n" }{MPLTEXT 1 0 70 "newlen: = zipq([a^2,b^2,c^2], factor([bary2pyth(TT)])):len_fuhrmann:=%;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "subs(len_fuhrmann, WW4^2=W4^ 2, pX(6)); W4^2 * evalmm(%/W4^2); \n" }{MPLTEXT 1 0 23 "# latexx(0), l atexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "newisogon:= Vector[column]@unapply(subs(newlen, isogo n(px)),x,y,z)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "tmpres := TT. newisogon(Adjoint(TT).Vector(px)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 118 "(elimifacu@factor@convert)(tmpres[1], list): collec t(%[1], px, factor);fuhrmann_isogon:= unapply([rot3](%), x,y,z)@OP:" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "mq:= eq2mm(eqcircum(px)):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "mqq:= subs(newlen, mq);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "Vector[row](px).Tr(1/TT).mqq .(1/TT).Vector(px):\n" }{MPLTEXT 1 0 43 "collect(%*(a+b+c), px,factor, distributed):\n" }{MPLTEXT 1 0 20 "xcollect(%,a+b+c); \n" }{MPLTEXT 1 0 35 "cir_fuhrmann:= unapply(%,x,y,z)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "(factor@simplify@cir_fuhrmann)(tmpres);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "subs(WW4^2=1, len_fuhrmann); [op(%), op(map(U-> map(1 /id,U), %))];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "(expand@map)(1/id, defR2); (factor@subs)(%%, R=radius, %);\n" }{MPLTEXT 1 0 26 "subs(apb pc, map(1/id, %));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 49 "Lemoine ??? Condition de cocyclicit\303\251... \303\240 suivre" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "lespts:= [p, 0, q +r], [p, q+r, 0], [p+r, q, 0], [0, q, p+r], [0, p+q, r], [p+q, 0, r];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "TT:= Matrice([seq](lespts[j],j=[1,3,5]));" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "TT:= FActor(TT.(1/Diag(linf.TT))): \+ \n" }{MPLTEXT 1 0 67 "newlen:= zipq([a^2,b^2,c^2], factor([bary2pyth(T T)])):len_trone:=%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "mq:= eq2mm(eqcircum(px)): mqq:= subs(newlen, mq):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "Vector[row](px).Tr(1/TT).mqq.(1/TT).Vector(px):\n" } {MPLTEXT 1 0 45 "cir_trone:=collect(%, px,factor,distributed):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "TT:= Matrice([seq](lespts[j],j=[2,4,6]));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "TT:= FActor(TT.(1/Diag(linf.TT))): \n" } {MPLTEXT 1 0 67 "newlen:= zipq([a^2,b^2,c^2], factor([bary2pyth(TT)])) :len_trtwo:=%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "mq:= eq2m m(eqcircum(px)): mqq:= subs(newlen, mq):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "Vector[row](px).Tr(1/TT).mqq.(1/TT).Vector(px):\n" }{MPLTEXT 1 0 45 "cir_trtwo:=collect(%, px,factor,distributed):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "(numer@factor)(cir_trone-k*cir_trtw o): \n" }{MPLTEXT 1 0 66 "tmp:= collect(%, [x,y,z], U-> collect(U, k, \+ factor), distributed):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 " \{coeffs(tmp, px)\}: (factor@subs)(zipq(pp,pX(6)),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 119 "#latexx(0); latexy(len_medial);latexy(len_antimedial ); latexy(len_orthic);latexy(len_tangential);latexz(len_excentral);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "if false then latexx(0); \+ \n" }{MPLTEXT 1 0 33 "medial_isogon(pu)[1]; latexy(%);\n" }{MPLTEXT 1 0 85 "nineq(px):cir_medial= remove(has,%,-2)+A(-2)*factor(select(has,% ,-2)/(-2));latexy(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "antimedial _isogon(pu)[1];latexy(%);\n" }{MPLTEXT 1 0 47 "` cir_antimedial`=cir_a ntimedial(px);latexy(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "orthic_ isogon(pu)[1]; latexy(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "tangen tial_isogon(pu)[1];latexy(%); \n" }{MPLTEXT 1 0 47 "` cir_tangential`= cir_tangential(px);latexy(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "ex central_isogon(pu)[1];latexy(%); \n" }{MPLTEXT 1 0 46 "` cir_excentral `=cir_excentral(px);latexz(%);\n" }{MPLTEXT 1 0 3 "fi;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "antimedial_isogon(pX(3)): ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }} {SECT 1 {PARA 3 "" 0 "" {TEXT 213 37 "Steinbart, circumeigentransform, cet2" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 19 "Steinbart transform" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "coco:= eq2mm(2*eqcircum(px)) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 38 "anticevian of X6 : tangential triangle" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 54 "pta:= (Vector@reduce@wedge)(Row(coco,3),Row( coco,2)):\n" }{MPLTEXT 1 0 54 "ptb:= (Vector@reduce@wedge)(Row(coco,1) ,Row(coco,3)):\n" }{MPLTEXT 1 0 54 "ptc:= (Vector@reduce@wedge)(Row(co co,1),Row(coco,2)):\n" }{MPLTEXT 1 0 28 "pta,ptb,ptc, matacev(pX(6));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 19 "Steinbart transform" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "tmat1:= matacev(pX(6)):tmat2:= matucev(pp): tmat1, tmat2;\n" } {MPLTEXT 1 0 39 "fac:= Diag(pX(6)): persp(tmat1,tmat2):\n" }{MPLTEXT 1 0 52 "(1/fac).Vector(reduce(%))/rotp(p^2): fac.EXpand(%); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "steinbart:= unapply(convert(%, list), p,q ,r)@OP:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "evalms(steinbart (px)-k*px);\n" }{MPLTEXT 1 0 43 "eliminate(%, \{k,x\}); numer(subs(%[1 ],x)-x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 52 "Steinbart ut ilise des carr\303\251s. Donc antiSteinbart...." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "evalms(steinbart(px)-k*pu); eli:= [eliminate](%, \{x, y,z\}): nops(%)," }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "map2(op,2,eli); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 13 "antisteinbart" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "evalms(steinbart([sqrt(X),sqrt(Y),sqrt(Z)])-k* pu):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "eli:= eliminate(%, \{X,Y,Z \}); (elimifacu@subs)(%[1], [X,Y,Z]):\n" }{MPLTEXT 1 0 74 "map(sqrt,%) assuming a>0,b>0,c>0; antisteinbart:= unapply(%, u,v,w)@OP: " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "# ne pas laisser actif quand vide.\n" }{MPLTEXT 1 0 33 "# connection with the kernel lost" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 73 "li:= NULL: for j from 9999 to 298 0 do if fdat[j]=\"ohlala\" then next fi; \n" }{TEXT 210 77 "ency(stein bart(pX(j))); if %<>`?` then print(\"--\", j,%); li:= li,[j,%]; fi; \n " }{TEXT 210 33 "if j mod 100=0 then print(j) fi;\n" }{TEXT 210 22 "od : j:='j': lii:=[li];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 55 "li0:= [s eq(`if`(k[1]=k[2],k[1],NULL),k=lii)]: nops(%);\n" }{TEXT 210 61 "li1:= [seq(`if`(k[1]=6 or k[1]<>k[2],k,NULL),k=lii)];nops(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 53 "seq((simplify@subs)(ency_, eqcircum(pX(j ))), j=li0); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 48 "blang:= Matrix( li1): interface(rtablesize=30): \n" }{TEXT 210 58 "ddd:= RowDimension( blang); lon:=10: nol:= ceil(ddd/lon); \n" }{TEXT 210 49 "blang:= :\n" }{TEXT 210 34 "sep:= Matrix(lon ,1,U->A): blang: \n" }{TEXT 210 84 "seq((op@``)(SubMatrix(blang,k*lon+ 1..(k+1)*lon, 1..2),sep), k=0..floor(ddd/lon)-0):\n" }{TEXT 210 42 "tm p:= Matrix([%]); latexx(0); latexz(tmp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 20 "circumeigentransform" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "La version kim" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 117 "li := [1 , 2, 3, 4, 9, 31, 37, 41, 43, 44, 74, 75, 110, 125, 194, 238, 265, 108 4, 1154, 1279, 1499, 1503, 1510, 1634]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 136 "li2 := [106, 729, 1300, 1294, 1477, 767, 741, 767, 106, 106, \+ 1294, 701, 99, 827, 729, 741, 1300, 689, 1141, 1477, 1296, 1297, 930, \+ 689]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "tmpkim0:= a*v*w/(a*v^2 + a *w^2 - b*u*v - c*u*w):\n" }{MPLTEXT 1 0 70 "tmpkim:= factor(subs(zipq( pu,barydiv(pu,pX(1))), tmpkim0)*a/rotp(a));\n" }{MPLTEXT 1 0 36 "cet2: = unapply([rot3](%),u,v,w)@OP:\n" }{MPLTEXT 1 0 54 "map(ency@cet2@pX, \+ li)-li2: ASSERT(convert(%,set)=\{0\});" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 27 "Eigencenter of circumcevian" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "(factor@eigencenter)(matucev(pu)):\n" }{MPLTEXT 1 0 50 "tmp:= subs(zipq(pp,pX(6)), Vector(elimifacu(%)));\n" }{MPLTEXT 1 0 40 "cet:= unapply(convert(%,list),u,v,w)@OP:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "Les deux sont sur le circumcircle" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "(factor@eqcircum@cet)(pu),(factor@eqcircum@cet2)(p u);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "li:= NULL: for j fro m 9999 to 2980 do if fdat[j]=\"ohlala\" then next fi; \n" }{MPLTEXT 1 0 71 "ency(cet(pX(j))); if %<>`?` then print(\"--\", j,%); li:= li,[j, %]; fi; \n" }{MPLTEXT 1 0 32 "if j mod 10=0 then print(j) fi;\n" } {MPLTEXT 1 0 26 "od: # j:='j': # lii:=[li];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 758 "lii:=[[1, 101], [2, 99], [3, 112], [6, 99], [25, \+ 99], [31, 839], [37, 99], [42, 99], [55, 934], [75, 773], [111, 99], [ 187, 99], [237, 99], [241, 934], [251, 99], [263, 99], [308, 99], [351 , 99], [393, 99], [493, 99], [494, 99], [512, 99], [513, 101], [523, 1 12], [588, 99], [589, 99], [647, 99], [649, 99], [650, 934], [663, 99] , [665, 99], [667, 99], [669, 99], [694, 99], [887, 99], [890, 99], [9 02, 99], [941, 99], [967, 99], [1055, 99], [1169, 99], [1171, 99], [12 18, 99], [1239, 99], [1241, 99], [1383, 99], [1400, 99], [1427, 99], [ 1495, 99], [1880, 99], [1960, 99], [1976, 99], [1989, 99], [2054, 99], [2165, 99], [2223, 99], [2248, 99], [2350, 99], [2395, 99], [2433, 99 ], [2488, 99], [2502, 99], [2574, 112], [2575, 112], [2590, 934], [259 1, 934]];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "sort(map2(op,2 ,lii));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "evalms(cet(pu)-k *pX(99)): eliminate(%, \{k,u\}):;\n" }{MPLTEXT 1 0 78 "-numer(subs(%[1 ][1],u)-u), collect(numer(subs(%[2][1],u)-u), pu, distributed);" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT 214 21 "le dessin qui va bien" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "ici:= convert(subs(ency_, zipq(pp,p X(1)), zipq(pu,pX(251))),set) union cetriangle union ency_:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "_mat1:= matucev(pu): _a1,_b1 ,_c1:= op(convert(Tr(%), listlist)):;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "_mat2:= linpoltri(_mat1): _a2,_b2,_c2:= op(convert(Tr (%), listlist)):;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "_mat3: = isogon(_mat2): _a3,_b3,_c3:= op(convert(Tr(%), listlist)):;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "_e1,_e2:= cet(pu),cet2(pu):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 36 "Le tria ngle et le cercle circonscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "[c olor=black]: \n" }{MPLTEXT 1 0 68 "pl1:= dralinpts(pa,pb, %),dralinpts (pb,pc, %),dralinpts(pc,pa, %), \n" }{MPLTEXT 1 0 46 "plot([cos(t),sin (t),t=-Pi..+Pi], color=cyan),\n" }{MPLTEXT 1 0 79 "drawna(pa,\"A\",4,% ),drawna(pb,\"B\",0,%),drawna(pc,\"C\",5,%),drawna(pX(4),\"H\",7,%):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Le nine points" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "nineq:= unapply((b^2+c^2-a^2)*x^2-2*b^2*x*z-2* c^2*x*y+(c^2+a^2-b^2)*y^2-2*a^2*y*z+z^2*(a^2+b^2-c^2),x,y,z)@OP:\n" } {MPLTEXT 1 0 80 "pl6:= implicitplot( subs(ici,nineq(projx)), X=-0.5..1 , Y=-1.5..0.5, color=cyan):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "L e points U et le circumcevian" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "[c olor=red]: \n" }{MPLTEXT 1 0 70 "pl2:= drawna(pu,\"U\",2,%),drawna(_a1 ,\"A1\",6,%),drawna(_b1,\"B1\",2,%), \n" }{MPLTEXT 1 0 67 "drawna( _c 1,\"C1\",2,%),drawna( _e1,\"E1\",2,%),drawna(_e2 ,\"E2\",6,%),\n" } {MPLTEXT 1 0 48 "draptn([_a1,_b1,_c1, _a1], [op(%), style=line]):" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "Le linpoltri et le cocotri" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "[color=pink]: \n" }{MPLTEXT 1 0 71 "pl3:= drawna(_a2 ,\"A2\",6,%),drawna(_b2,\"B2\",2,%),drawna(_c2,\"C2 \",2,%):\n" }{MPLTEXT 1 0 15 "[color=navy]: \n" }{MPLTEXT 1 0 71 "pl4: = drawna(_a3 ,\"A3\",6,%),drawna(_b3,\"B3\",2,%),drawna(_c3,\"C3\",2,% ),\n" }{MPLTEXT 1 0 48 "draptn([_a3,_b3,_c3, _a3], [op(%), style=line] ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "[color=green]: pl5:= \+ dralinpts(_c1,_c3,%),dralinpts(_b1,_b3,%),dralinpts(_a1,_a3,%):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "# disp lay(pl1,pl2,pl3,pl4, pl5, view=[-1.4..1.5,-2..1], scaling=constrained) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "# 5: display(pl1,pl2,p l3,pl4, view=[-%..%,-%..%]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 9 "saragossa" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "mat1,mat2:= matcev(pu),matucev(pu); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "nn:='nn': nn(1),nn(2),n n(3):=2,3,1;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "for j from \+ 0 to 2 do tmp||(j+1):= (reduce@factor@wedge)\n" }{MPLTEXT 1 0 57 "(wed ge(Column(mat1,(nn@@j)(2)),Column(mat2,(nn@@j)(3))),\n" }{MPLTEXT 1 0 59 " wedge(Column(mat1,(nn@@j)(3)),Column(mat2,(nn@@j)(2))));\n" } {MPLTEXT 1 0 12 "od: j:='j': " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "mat3:= Matrice([tmp1,tmp2,tmp3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "factor(Det(mat2)), factor(Det(mat3));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "(reduce@persp)(mun,mat1);(reduce@pe rsp)(mun,mat2);(reduce@persp)(mat1,mat2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "tmp1:= (elimifacu@persp)(mun ,mat3);\n" }{MPLTEXT 1 0 37 "tmp2:= (elimifacu@persp)(mat1,mat3);\n" }{MPLTEXT 1 0 36 "tmp3:= (elimifacu@persp)(mat2,mat3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "sarag1:= unapply(tmp1, u,v,w)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "sarag1(pp)[1]; isolate(eqcircum(pp)=Gamma, b^2);\n" }{MPLTEXT 1 0 52 "(factor@subs)(%,%%): subs(Gamma=A(eqcircum(pp)), %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "expand(tmp2[1]/rotp(u*a ^2))+u; simplify(%, \{eqcircum(pu)=Gamma\}):\n" }{MPLTEXT 1 0 27 "coll ect(%, Gamma, expand);\n" }{MPLTEXT 1 0 69 "u-subs(Gamma=eqcircum(pu), %); sarag22:= unapply([rot3](%),u,v,w)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "expand(tmp3[1]/rotp(u*a^2))+2*u; simplify(%, \{eqc ircum(pu)=Gamma\}):\n" }{MPLTEXT 1 0 27 "collect(%, Gamma, expand);\n" }{MPLTEXT 1 0 71 "2*u-subs(Gamma=eqcircum(pu), %); sarag33:= unapply( [rot3](%),u,v,w)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "lat exx(0): sarag22(pp)[1]; latexy(%); sarag33(pp)[1]; latexz(%); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "zipd(sarag22(pu),sarag2(pu)),zipd(sarag33(pu),sarag3 (pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "evalms(sarag1(pu) -k*pu); eli:= [eliminate](%, \{u,v\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "op(eli[3][2]); algsubs(w^3=W, %); [solve](%, \{W\}); \n" }{MPLTEXT 1 0 61 "subs(eli[3][1], w^3=W, 1/w^2=w/W, pu); map(reduc e@subs,%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "subs(zipq( pu, pX(6)), [mat1,mat2,mat3]); map(reducol,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "[sarag1,sarag22,sarag33](pX(6)): reducol(Matric e(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 139 "[seq]([j, ency@s arag1,ency@sarag22,ency@sarag33](pX(j)), j=[1,2,3,4,5,6,19,21,24,25,28 ,31]); subs(`?`=A, Matrice(%)); latexx(0); latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 2 " DT" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 13 "Dual Triangle" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "aut; \n" }{MPLTEXT 1 0 66 "tmp1:= is ogon(wedge(wedge(Column(aut,2),Column(aut,3)), pX(2)));;\n" }{MPLTEXT 1 0 66 "tmp2:= isogon(wedge(wedge(Column(aut,3),Column(aut,1)), pX(2)) );;\n" }{MPLTEXT 1 0 65 "tmp3:= isogon(wedge(wedge(Column(aut,1),Colum n(aut,2)), pX(2)));;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "dua ltri0:= Matrice([tmp1,tmp2,tmp3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "factor(Determinant(dualtri0)); Determinant(aut);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "(op@map)(op, convert(aut,lis tlist));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "dualtri:= subs( AAA=convert(dualtri0,listlist),\n" }{MPLTEXT 1 0 52 "proc(mm) local u1 , u2, u3, v1, v2, v3, w1, w2, w3; \n" }{MPLTEXT 1 0 73 "u1, u2, u3, v1 , v2, v3, w1, w2, w3:= (op@map)(op, convert(mm,listlist));\n" } {MPLTEXT 1 0 18 "Matrix(AAA); end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "len1:=(factor@[bary2pyth]@dualtri)(aut):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "len2:= (factor@[bary2pyth])(aut):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "zipd(len1,len2);" }}}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 16 "The DC tra nsform" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "On introduit un circum- anticevian" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "tmat1:= dualtri(matce v(pu)); tmat2:=matwcev(pp); #latexx(0): latexz(tmat1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "tmat1[2,1]/tmat1[3,1]=tmat2[2,1]/tm at2[3,1],\n" }{MPLTEXT 1 0 45 "tmat1[1,2]/tmat1[3,2]=tmat2[1,2]/tmat2[ 3,2];\n" }{MPLTEXT 1 0 51 "eliminate(\{%\}, \{p,q\}); (elimifacu@subs) (%[1], pp);\n" }{MPLTEXT 1 0 26 "DC:= unapply(%, u,v,w)@OP;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "tokim(DC,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "(reduce@factor@crosssum)(pu,pX(75)) ; isoconjkim(pu,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "(fac tor@crosssumbar)(pu,pX(75));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "evalms(DC(pu)-k*pp): eliminate(%, \{k,u,v\});\n" }{MPLTEXT 1 0 21 "tmp:= subs(%[1], pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "(factor@elimifacu)(tmp): factor(-%); \n" }{MPLTEXT 1 0 54 "map(sor t,%, [a,b,c,p,q,r]); CD:= unapply(%,p,q,r)@OP:\n" }{MPLTEXT 1 0 23 "# \+ latexx(0): latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "(f actor@isogon)(cevadiv(pp,pX(6))); CD(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "(factor@cevamul)(pX(6),isogon(pu))*rotp(a^2/u):evalm m(%); DC(pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "li:= NULL: for j from 9999 to 2980 do if fdat[j]=\"o hlala\" then next fi; \n" }{MPLTEXT 1 0 70 "ency(DC(pX(j))); if %<>`?` then print(\"--\", j,%); li:= li,[j,%]; fi; \n" }{MPLTEXT 1 0 32 "if \+ j mod 10=0 then print(j) fi;\n" }{MPLTEXT 1 0 24 "od: j:='j': # lii:=[ li];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1404 "lii:= [[1, 81], [ 2, 6], [3, 275], [4, 2], [5, 288], [6, 83], [7, 1], [8, 57], [9, 1170] , [10, 1171], [13, 2981], [20, 1073], [21, 2982], [27, 2983], [53, 298 4], [56, 2985], [63, 1172], [64, 801], [66, 76], [67, 671], [68, 2052] , [69, 4], [74, 2986], [75, 58], [76, 251], [79, 1255], [80, 88], [81, 2298], [83, 3108], [85, 1174], [86, 1126], [92, 284], [95, 1173], [98 , 2987], [99, 110], [100, 651], [102, 2988], [103, 2989], [104, 2990], [105, 2991], [110, 648], [189, 9], [190, 101], [253, 3], [254, 1993], [255, 829], [256, 1258], [263, 3114], [264, 54], [273, 1167], [280, 2 22], [286, 943], [290, 98], [309, 947], [311, 1166], [312, 3451], [313 , 3453], [314, 961], [317, 847], [320, 1168], [321, 1169], [325, 2065] , [329, 282], [330, 31], [335, 1438], [347, 1433], [485, 588], [486, 5 89], [513, 1016], [514, 1252], [519, 2226], [522, 1262], [523, 249], [ 596, 593], [648, 112], [651, 1783], [660, 666], [664, 109], [666, 919] , [668, 100], [670, 99], [671, 111], [693, 59], [694, 3225], [850, 250 ], [889, 898], [892, 691], [903, 106], [927, 677], [1000, 89], [1029, \+ 37], [1031, 39], [1032, 1249], [1034, 223], [1121, 2291], [1131, 493], [1132, 494], [1138, 323], [1219, 2221], [1280, 1462], [1297, 287], [1 305, 1331], [1441, 1175], [1494, 74], [1821, 2311], [1897, 1461], [191 6, 1976], [1972, 248], [2113, 239], [2184, 2287], [2349, 2341], [2370, 1797], [2373, 895], [2481, 105], [2966, 2715]]: nops(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "dct:=table(): tcd:= table(): for it m in lii do\n" }{MPLTEXT 1 0 48 " dct[itm[1]]:= itm[2]; tcd[itm[2]]:= \+ itm[1]; od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "lesch:= NULL : for itm in lii do ch:= op(itm);\n" }{MPLTEXT 1 0 55 "while assigned( dct[ch[-1]]) do ch:= ch,dct[ch[-1]] od:\n" }{MPLTEXT 1 0 55 "while ass igned(tcd[ch[ 1]]) do ch:= tcd[ch[ 1]],ch od:\n" }{MPLTEXT 1 0 29 "ch: = [ch]: lesch:= lesch,ch;\n" }{MPLTEXT 1 0 20 "od: lesch:= \{lesch\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }} {SECT 0 {PARA 3 "" 0 "" {TEXT 213 11 "les cercles" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "_EnvExplicit:= true;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "bary2proj(pX(3)) - bary2proj(pX(4)): factor(add( k^2, k=%)):\n" }{MPLTEXT 1 0 53 "subs(apbpc, %): tmp:= (factor@simplif y)(%, rule123);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "subs(ap bpc, tmp); select(has,%,a^6);\n" }{MPLTEXT 1 0 25 "valJ:= J=sqrt(%)*R/ a/b/c;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "tmp:= add(k^2, k= bary2proj(pp) - bary2proj(pX(3)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "(factor@simplify)(tmp, rule123): tmp1:= subs(apbpc, % );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "px3_2:= subs(apbpc, f actor(tmp1-R^2));" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 13 "Quelque te sts" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "(factor@subs)(zipq(pp,pX(3)), px3_2): subs(ap bpc, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "(factor@subs)(z ipq(pp,pX(4)), px3_2): subs(apbpc, %);" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "tmp:= bary2norm(pX(3))+(bary2norm(pp)-bary2norm(pX(3) ))*R^2/(R^2+px3_2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "(red uce@factor@evalmm)(tmp): (factor@subs)(defR2, %):\n" }{MPLTEXT 1 0 44 "tmp1:= collect(%, pp, factor, distributed);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "evalmm(-tmp1/rotp(a^2)): tmp2:= collect(%, pp, n ormal@expand, distributed);\n" }{MPLTEXT 1 0 31 "invincum:= unapply(%, p,q,r)@op:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "map([id, (enc y@invincum@pX)], [54,55,1054,237]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "eqq:= conicir(pX6); evalmm(p X4+mu*(pa-pb));\n" }{MPLTEXT 1 0 55 "(numer@subs)(zipq(px,%), eqq): co llect(%, mu, factor);\n" }{MPLTEXT 1 0 31 "val1:= factor(solve(%, mu)[ 1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 5 "Rigby" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}} {PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 11 "Cyclocevian" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "cyclocev:=(i sotom@anticomplem@isogon@complem@isotom):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "qa,qb, qc:= (op@factor@[les_cevians])(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "la,lb,lc:= bary2sides(les_cevians(pp)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "qqq:= factor(f_R2(la,lb,lc)/f_R2(a, b,c));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "subs(p=1,q=1,r=1, qqq);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "f_circ: tmp:= eva lmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc):\n" }{MPLTEXT 1 0 26 "tmp:= reduce(factor(%)): \n" }{MPLTEXT 1 0 37 "center_of_ceva:= un apply(%,p,q,r)@op:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "colle ct(tmp, pp, factor, distributed): \n" }{MPLTEXT 1 0 55 "tmp1:= subs(sh ika, %): collect(tmp1[1]/(p*q*r), cos): \n" }{MPLTEXT 1 0 45 "xxx=coll ect(select(has,%,cos), cos, expand)+\n" }{MPLTEXT 1 0 52 " collect(re move(has,%,cos),pp, factor,distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 72 "Et on prouve , in brute force, que les cyclo-cevians sont ... cocycliques" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "(reduce@factor@normal@center_of_ceva@cycl ocev)(pp):\n" }{MPLTEXT 1 0 41 "factor(zip(`/`, %, center_of_ceva(pp) \+ ));" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 33 "Les points invariants de cyclocev" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "(reduce@factor@ cyclocev)(pX7); encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 59 "# evalms(cyclocev(pp)-k*p p): eli:= [eliminate](%, \{k,p,q\}):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "nops(eli); map2(op,2,eli);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "tm1:= (reduce@subs)(eli[1][1], pp); # encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 43 "(reduce@subs)(eli[2][1], pp); # encyclo( %);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "(reduce@subs)(eli[3][1], \+ pp); encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 61 "(reduce@subs )(eli[3][1], pp); subs(a=-a, %); simplify(%-tm1);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT 210 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 43 "(reduce@ subs)(eli[4][1], pp); # encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "(subs)(eli[5][1], pp); simplify(%) assuming r>0;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "(subs)(eli[6][1], pp); simplify(%) assu ming r>0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 74 "Darboux, Lucas ... moved to a special file to be inserted here if needed.\n" }{TEXT 213 34 "Only th e definitions are remaining" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "zucubic := (b^2*r^2-c^2*q^2)*u*p+(-a^2*r^2+c^2*p^2)*v*q+(a^2*q^2-b ^2*p^2)*w*r;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Invariante par i sogon" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "zucubic; collect(-subs(zip q(pp, isogon(pp)),%)*rotp(p^2/a^2), pu, normal);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "subs(p=1,q=0,r=0, zucubic);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "Matrix([pu,pp,isogon(pp)]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "collect(Det(%)*p*q*r,pu); ASSERT(normal(% +zucubic)=0);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "Matrix([pu,pp,isotom(pp)]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "cuzubic:=collect(Det(%)*p*q*r,pu );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "nono:= proc(quoi) local u,v; u,v:= op(1,quoi), -op(2,quoi); u-v=(u^2-v^2)/(u+v); end:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "a^2* (c^2* v^2 + b^2* w^2 )*u; (factor@evalmm)(cros ssum(pu, isogon(pu))*rotp(u));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "isotom(isogon(px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "Det(Matrix([pX(30),px,isogon(px)]))*x*y*z:\n" }{MPLTEXT 1 0 42 "tm p:= collect(%, px, factor, distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "xcollect(tmp, [rot3](2*a^4-a^2*b^2-a^2*c^2-b^4+2*b^2* c^2-c^4));\n" }{MPLTEXT 1 0 32 "eqneuberg:= unapply(%,x,y,z)@OP:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "# Sum(x*(y^2*c^2-z^2*b^2)*(2*a^4-(b^2+c^2)*a^2-(b^2- c^2)^2), j); latexx(0), latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "\{coeffs(tmp, px)\}: map(op, %);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT 213 45 "Collineations. Conjugates, beth et les autres" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 71 "hhhhhhcr(pu,pp); Vector(pX2); cr(%%,%); \+ (factor@convert)(%, listlist);\n" }{TEXT 210 31 "isotom(%); Lambda:= s ubs(A=%, \n" }{TEXT 210 59 "proc(pp,pu) local p,q,r,u,v,w; p,q,r,u,v,w :=op(pp),op(pu);\n" }{TEXT 210 8 "A; end):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 12 "collineation" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "P:= Matrix(3,4,(k,j)-> cat(op(k,[p,q,r]),j));\n" } {MPLTEXT 1 0 50 "PP:= Matrix(3,4,(k,j)-> cat(op(k,[p_,q_,r_]),j));\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "M:= Matrix(3,3,(j,k)-> ca t(m,j,k)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "DD:= Diag(d, e,f,g);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "evalms(M.P-PP.DD )union\{g=01\}: Solve(%,\{d,e,f,g\}union indets(M));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "'dett(delrow(_P, j))*dett(_M)=dett(_DD)/D ||j*dett(delrow(_PP,j))';\n" }{MPLTEXT 1 0 66 "\{seq\}(%, j=1..4): sol ve(%,\{D1,D2,D3,D4\}): subs(%, [D1,D2,D3,D4]):\n" }{MPLTEXT 1 0 30 "ev almm(%/dett(_DD)*dett(_M));\n" }{MPLTEXT 1 0 1 "\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "les_cevians_red(Vector(pp)); \n" }{MPLTEXT 1 0 44 "xjoli(1/%): applyop(U->map(sort,U),[2,1],%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "collineate:= proc(p1,p2,p3,p4,q1,q2,q3,q4 ) global DDg, Mg; local P_,PP,DD; \n" }{MPLTEXT 1 0 57 "P_, PP:= Matri ce([p1,p2,p3,p4]), Matrice([q1,q2,q3,q4]);\n" }{MPLTEXT 1 0 76 "DDg:= \+ Diag(seq(Det(DeleteColumn(PP, j))/Det(DeleteColumn(P_, j)), j=1..4)); \n" }{MPLTEXT 1 0 79 "Mg:= DeleteColumn(PP,4).SubMatrix(DDg,1..3,1..3) .(1/DeleteColumn(P_,4)); NULL;\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 23 "A,B,C,U ... cev(U), U1)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "cev_redu:= map(reduce, [les_cevians(pp)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "collineate(pa,pb,pc,pu, op(cev_redu),[u1,v1 ,w1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "Mg;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "reduce(Mg.Vector(pa)), reduce(Mg.Ve ctor(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "DDg;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "locrules:= solve(evalms(DDg- DD), \{d,e,f,g\}): \n" }{MPLTEXT 1 0 56 "expand(subs(%, evalmm([d,e,f ]/p/q/r))): collect(%, pu):\n" }{MPLTEXT 1 0 52 "d_e_f:= subs(u=1/``(1 /u),v=1/``(1/v),w=1/``(1/w),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "cruloc:= \{seq\}(subs(locrules, qqq)=qqq, qqq=[d*u,e*v,f*w]); \n" }{MPLTEXT 1 0 33 "subs(%, (eval@map)(-id, %), DDg);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "map(simplify, Mg, cruloc).Vector(px ); map(factor,%):\n" }{MPLTEXT 1 0 41 "phid:= unapply(convert(%,list), x,y,z)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "map(simplify, 2/Mg, cruloc).Vector(px): map(collect,%,[d,e,f]):\n" }{MPLTEXT 1 0 42 "phir:= unapply(convert(%,list),x,y,z)@op;\n" }{MPLTEXT 1 0 45 "sub s(d=1/``(1/d),e=1/``(1/e),f=1/``(1/f),%%);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 23 "(reduce@phid@phir)(px);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 9 "locrules;" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 37 "Interpretation de barymul, de complem" } }{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "les faiseurs de barymul" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "collineate(pa,pb,pc,pX(2),pa,pb,pc, pu); baru:= Mg; \n" }{MPLTEXT 1 0 52 "collineate(pa,pb,pc,pX(2),pa,pb, pc,pp); barp:= Mg; \n" }{MPLTEXT 1 0 51 "collineate(pa,pb,pc,pX(2),pa, pb,pc,px); barx:= Mg; " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 13 "Le com plement" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "collineate(pa,pb,pc,pX(2 ), les_cevians(pX(2)), pX(2)); CCC:= Mg*8;\n" }{MPLTEXT 1 0 35 "%.Vect or(px), Vector(complem(px));\n" }{MPLTEXT 1 0 42 "2/CCC.Vector(px), Ve ctor(anticomplem(px));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 28 "Les ce vians, les anticevians" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "barx.(CCC ).(1/barx): reducol(%), matcev(px), reduce(%.Vector(px));\n" } {MPLTEXT 1 0 70 "barx.(2/CCC).(1/barx): reducol(%), matacev(px), redu ce(%.Vector(px));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "collin eate(pa,pb,pc,pu, les_cevians_red(pu), pu); Mg;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "conicev( isotom(pu),pX(2)); mycon2:= unapply(% ,x,y,z)@OP:\n" }{MPLTEXT 1 0 53 "mycon2(complem(px)): collect(-%/2, px , distributed); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "(numer@conicir@complem)(pu): \n" }{MPLTEXT 1 0 58 "collect(%, px, distributed); mycon:= unapply(%, x,y,z)@OP: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 43 "Interpretation des formules c ross vers ceva" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "CCu:= baru .CCC.(1/baru)*rotp(u);\n" }{MPLTEXT 1 0 32 "CCp:= barp.CCC.(1/barp)*ro tp(p);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 10 "cev of cev" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "tr3:= mun; tr2:= mkcev(tr3,pu); tr1:= EXpand(mkcev(tr2,pp));\n" } {MPLTEXT 1 0 70 "# mkacev(tr1,pp): reducol(%)-tr2: mkacev(tr2,pu): %%, reducol(%)-tr3;\n" }{MPLTEXT 1 0 64 "ppx:= (elimifacu@persp)(tr1, tr3 ); crossdiv(pp,pu): zipd(%%,%);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "xfo:= 2 /CCu*u*v*w; \n" }{MPLTEXT 1 0 74 "ntr3:= reducol(xfo.tr3); ntr2:= redu col(xfo.tr2); ntr1:= reducol(xfo.tr1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 37 "ntr3 est l'anticevian de pu (\303\251vident)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "'ntr3=mkacev(mun,pu)'; (\{Entries\}@eval@(r hs-lhs))(%): ASSERT(%=\{0\});" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 35 "ntr1 est le cevian de ppp = xfo(pp)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "pp_ceva(ntr1)[2]: ppp:= Vector(%); zipd(%, xfo.Vector(pp));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 53 "on retrouve que cevadiv est transformation covariante" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "1/barx.cevadiv(barx.Vector(pp), ba rx.Vector(pu)):\n" }{MPLTEXT 1 0 36 "Vector(cevadiv(pp,pu)): zipd(%%,% ); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 16 "Le cas ou U=X(2)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "cevamul(pp,pX(2)); (isotom@complem) (pp);\n" }{MPLTEXT 1 0 51 "cevadiv(pp,pX(2)); (reduce@anticomplem@isot om)(pp);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 20 "Formules avec isotom " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(reduce@cevamul @isotom)(pu,px) : (reduce@isotom@crossmul)(pu,px): zipd(%,%%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(reduce@crossmul@isotom)(pu,px): (reduce@isotom@cevam ul )(pu,px): zipd(%,%%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(reduce @cevadiv @isotom)(pp,pu): (reduce@isotom@crossdiv)(pp,pu): zipd(%,%%); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(reduce@crossdiv@isotom)(pp,pu) : (reduce@isotom@cevadiv )(pp,pu): zipd(%,%%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "( factor@EXpand@cevadiv)(ppp,pu): tmp:= Vector(reduce(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "xfo.Vector(ppx); zipd(%, tmp);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "(reduce@crossmul)(ppx,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "cevamul(xfo.Vector(ppx), \+ xfo.Vector(pu)): xfo.Vector(pp): zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "crossdiv(pp,pu): map(sort, %, [p,q,r,u,v,w]);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "[u/(-p*v*w+q*u*w+r*u*v), v/ (p*v*w-q*u*w+r*u*v), w/(p*v*w+q*u*w-r*u*v)];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "xfo .Vector(ppx): EXpand(u*v*w/baru.%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "(factor @complem@isotom@barymul)(isotom(pu),ppx);\n" }{MPLTEXT 1 0 24 "(reduce @barymul)(%, pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "'(any@ cevamul=cevamul@any)(pp,pu)'; zipd(lhs(%), rhs(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "'(any@cevadiv=cevadiv@any)(pp,pu)'; zipd(l hs(%), rhs(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "'(yna@cr osssum=crosssum@any)(pp,pu)'; zipd(lhs(%), rhs(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "# '(isotom@crosssum=cevamul)(pu,px)'; ASSE RTa(%);\n" }{MPLTEXT 1 0 49 "'(isotom@crosssumbar=cevamul)(pu,px)'; AS SERT(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "'(crosssumbar@i sotom=crossmul)(pu,px)'; ASSERT(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "reduce(crossmul(pu,px)): map(sort,%,[u,v,w,x,y,z]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "[(v*z+w*y)*u*x, (u*z+w*x) *v*y, (u*y+v*x)*w*z];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 43 "Interpretation des formules ceva vers sqrt" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "tr2:= mun; tr3:= mkacev(tr2,pu); tr1:= EXpand(m kcev(tr2,pp));\n" }{MPLTEXT 1 0 69 "# mkacev(tr1,pp): reducol(%)-tr2: \+ mkacev(tr2,pu): %%, reducol(%)-tr3;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "pxx:= Vector(persp(tr3,tr1));cevadiv(pp,pu): zipd(%%, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "xfo:= 2/CCp*rotp(p); \n" }{MPLTEXT 1 0 74 "ntr3:= reducol(xfo.tr3); ntr2:= reducol(xfo.tr2 ); ntr1:= reducol(xfo.tr1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 37 "n tr2 est l'anticevian de pp (\303\251vident)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "'ntr2=mkacev(mun,pp)'; (\{Entries\}@eval@(rhs-lhs))(% ): ASSERT(%=\{0\});" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 71 "2 et 3 so nt perspective wrt psi(U), 1 et 3 sont perspective wrt psi(X)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "persp(ntr2,ntr3); xfo.Vector(pu ): \+ zipd(Vector(%%),%);\n" }{MPLTEXT 1 0 69 "persp(ntr1,ntr3); xfo.Vector( ppx): zipd(Vector(%%),%); elimifacu(%%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "(Vector @sqrtdiv)(xfo.vp, xfo.vu): (elimifacu@FActor)(%); \n" }{MPLTEXT 1 0 38 "zipd(%,xfo.(Vector@cevadiv)(pp,pu));;\n" }{MPLTEXT 1 0 64 "(xfo).( Vector@cevadiv)(1/xfo.vp, 1/xfo.vu): (reduce@FActor)(%);\n" }{MPLTEXT 1 0 24 "zipd(%,sqrtdiv(pp,pu));;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 17 "abc,g-> ce va(P),P" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 50 "collineate(pa,pb,pc,pX 2,les_cevians_red(pu),pu); \n" }{TEXT 210 38 "xfoo:= (Mg/u/v/w); xfo:= 2*u*v*w/(Mg);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "collineat e(pa,pb,pc,pX2,les_cevians_red(pp),pp); \n" }{MPLTEXT 1 0 38 "xfoo:= ( Mg/p/q/r); xfo:= 2*p*q*r/(Mg);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "(2/CCC).(1/barp) -xfo;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "xfo.Vector(px); \+ (FActor@reduce)(xfoo.map(1/id, %)), Vector(cevadiv(pp,px));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "tr2:= mun; tr3:= mkacev(tr2, pu); tr1:= EXpand(mkcev(tr2,pp));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "Matrix([seq](wedge(Column(tr3,j),Column(tr1,j)), j=1..3)):\n" } {MPLTEXT 1 0 43 "wedge(Row(%,1),Row(%,2)): pxx:= FActor(%);\n" } {MPLTEXT 1 0 27 "cevadiv(pp,pu): zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "ntr3:= reducol(xfo.tr3); ntr2:= reducol(xfo.tr2); ntr1:= reducol(xfo.tr1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "X2 \+ est le perspecteur ntr1, ntr2\n" }{TEXT 210 55 "anticomplem(U/P) est \+ le perspecteur entre ntr2 et ntr3" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "Matrix([seq](wedge(Column(ntr2,j),Column(ntr1,j)), j=1..3)):\n" } {MPLTEXT 1 0 26 "wedge(Row(%,1),Row(%,2));\n" }{MPLTEXT 1 0 61 "Matrix ([seq](wedge(Column(ntr2,j),Column(ntr3,j)), j=1..3)):\n" }{MPLTEXT 1 0 35 "(reduce@wedge)(Row(%,1),Row(%,2));\n" }{MPLTEXT 1 0 61 "Matrix([ seq](wedge(Column(ntr1,j),Column(ntr3,j)), j=1..3)):\n" }{MPLTEXT 1 0 48 "(isotom@reduce@isotom@wedge)(Row(%,1),Row(%,2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "(reduce@anticomplem)(1/barp.Vector(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "FActor(xfo.Vector(pp)); (F Actor)(xfo.Vector(pxx));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 29 "La collineation de Kimberling" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "collineate(pa,pb,pc, pX1, les_cevians_red(pp), \+ pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "DDg, Mg; " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "map(U-> reduce(Mg.Vector(U)) , [pa,pb,pc,pX1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "reduc e(Mg.Vector(px)): phid:= unapply(convert(%, list),x,y,z)@op;\n" } {MPLTEXT 1 0 67 "reduce(1/Mg.Vector(px)): phir:= unapply(convert(%, li st),x,y,z)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "(reduce@p hir@phid)(px), (reduce@phid@phir)(px);" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 7 "cevadiv" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "(red uce@phid@isogon@phir)(pu); tmp:= evalmm(%/p/q/r); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "[seq](pu[j]*expand(tmp[j]/pu[j]), j=1..3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "cevadiv(pp,pu);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "cevamul(pu,px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "evalms(cevadiv(pp,pu)-k*pu);\n" } {MPLTEXT 1 0 45 "eli:= [eliminate](%,\{k,u,v\}); map2(op,2,eli);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "map2(op,1,eli): map(reduce@s ubs,%,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "(expand@cevad iv)(pp,[0,q+dq,r+dr]); map(mtaylor,%,[dq,dr],2); reduce(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "(expand@cevadiv)(pp,[1+dp,dq ,dr]); map(mtaylor,%,[dp,dq,dr],2); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "cevadiv(pp,pa);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "reduce(phid(pa)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "reduce(phid(pX1)); reduce(cevadiv(pp,%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "reduce(phid([-a,b,c])); reduce(cevadiv(pp,%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 5 "aleph" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "(reduce@phir@isogon@phid)(pu): tmp:= (EXpand@evalm m)(%/a/b/c);\n" }{MPLTEXT 1 0 84 "alephdiv:= subs(AA=%, proc(pp,pu) lo cal p,q,r,u,v,w; p,q,r:= op(pp); u,v,w:=op(pu);\n" }{MPLTEXT 1 0 9 "AA end):\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "alephdiv(pp, pu )[1]: tma,tmb:= selectremove(has,%,\{u^2,v^2,w^2\}):\n" }{MPLTEXT 1 0 45 "factor(tma)+sort(factor(tmb), [a,b,c,u,v,w]);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "evalms(alephdiv(pp,pu)-px): subs(p^2=p2, q^2=q2,r^2=r2,%); \n" } {MPLTEXT 1 0 56 "solve(%, \{p2,q2,r2\}): tmp:= reduce(subs(%, [p2,q2,r 2]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "(reduce@factor@sim plify)(tmp); convert(map(op,%), set);\n" }{MPLTEXT 1 0 42 "evalmm(%%/c onvert(%, `*`)); map(sqrt, %);\n" }{MPLTEXT 1 0 84 "alephmul:= subs(AA =%, proc(pu,px) local x,y,z,u,v,w; x,y,z:= op(px); u,v,w:=op(pu);\n" } {MPLTEXT 1 0 8 "AA end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "(factor@simplify@alephmul)(pu,alephdiv(pp,pu)) assuming p>0,q>0,r>0; \n" }{MPLTEXT 1 0 44 "indets(%, sqrt); evalmm(%%/%[2]); reduce(%);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "evalms(alephdiv(pp,pu)-k*pu ): eli:= [eliminate](%,\{k,u,v\}): nops(%), map2(op,2,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "map2(op,1,eli): fixes:= map(reduce@ subs,%,pu);;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "fixes1 : En fait , donne une droite" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "fixes[1]; ale phdiv(pp,%); alephdiv(pp, evalmm(%%+[du,dv,dw])):\n" }{MPLTEXT 1 0 53 "tmp:= map(mtaylor,%,[du,dv,dw],2): tmp:= reduce(%); \n" }{MPLTEXT 1 0 60 "Matrix(3,3,(j,k)->coeff(tmp[j],op(k,[du,dv,dw]))); Rank(%);\n" } {MPLTEXT 1 0 23 "reduce(phid(fixes[1]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "fixes[2]; (reduce@alephdiv)(pp,%); zipd(%,%%);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "reduce(phid(fixes[2]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "fixes[3]; (reduce@alephdiv)(pp,%); \+ zipd(%,%%);reduce(phid(fixes[3]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "fixes[4]; (reduce@alephdiv)(pp,%); zipd(%,%%); reduce (phid(fixes[4]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "fixes[ 5]; (reduce@alephdiv)(pp,%); zipd(%,%%); reduce(phid(fixes[5]));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "(expand@evalmm)(fixes[5]/(p* q*r)); expand(barymul(%, isotom(pX1)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "fixes[6];(reduce@alephdiv)(pp,%); zipd(%,%%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 4 "beth" }} {EXCHG {PARA 0 "" 0 "" {TEXT 210 25 "Sym\303\251trie par rapport \303 \240 X3" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "reflection(pX3,pu): refl e:= unapply(%,u,v,w)@op;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 12 "Test de phid" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "reduce(phid(pa));" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "D\303\251finition de bethdiv" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "tmp:= (reduce@phid@refle@phir)(pu): \n" }{MPLTEXT 1 0 83 "bethdiv:= subs(AA=%, proc(pp,pu) local p,q,r,u,v ,w; p,q,r:= op(pp); u,v,w:=op(pu);\n" }{MPLTEXT 1 0 8 "AA end):" }} {PARA 0 "" 0 "" {TEXT 210 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 32 "Test d'apres Kimberling, Table 2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "643, 110: %, (ency@reduce@normal@bethdiv)(pX(%[1]), pX(%[2]));\n" }{MPLTEXT 1 0 59 "8, 4: %, (ency@reduce@normal@bethdiv)(pX(%[1]), pX(% [2]));\n" }{MPLTEXT 1 0 60 "9,190: %, (ency@reduce@normal@bethdiv)(pX( %[1]), pX(%[2]));\n" }{MPLTEXT 1 0 59 "101,6: %, (ency@reduce@normal@b ethdiv)(pX(%[1]), pX(%[2]));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 20 " Op\303\251ration covariante" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "(any @bethdiv)(pp,pp): (bethdiv@any)(pp,pp): zipd(%%,%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "Formulation barycentrique efficace" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 67 "rotp((a+b-c)*p): evalmm(bethdiv(pp,pu)/%): c ollect(%, pu, factor):\n" }{MPLTEXT 1 0 72 "subs(-b-c+a=-A(b+c-a), %): (eval@subs)(A=id, %): bethdiv2:= subs(AA=%, \n" }{MPLTEXT 1 0 71 "pro c(pp,pu) local p,q,r,u,v,w; p,q,r:= op(pp); u,v,w:=op(pu); AA end):\n" }{MPLTEXT 1 0 25 "Vector(bethdiv2(pp,pu));\n" }{MPLTEXT 1 0 38 "zipd( bethdiv(pp,pu), bethdiv2(pp,pu));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 25 "Ecriture utilisant pX7*pp" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "barymul(pX(7),pp); evalms([P_,Q,R]-%): solve(%,\{p,q,r\}):\n" } {MPLTEXT 1 0 27 "subs(%, bethdiv2(pp,pu)): \n" }{MPLTEXT 1 0 57 "Vecto r(map(xcollect,-%, [u,v,w,a+b,b+c,c+a], ``@normal));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 16 "(P,P) = X(57)*P " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "bethdiv(pp,pp): reduce(zipd(%,pp) ); ency(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Point fixe sp\303\251cifique" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "(factor@phid)(pX(3)): elimifac(%[1]/p): pf3 := [rot3](%*p);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "bethdiv2(pp,pf3) : reduce(zipd(%,pf3) );" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 11 "Align ement " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Det(Matrix([pu, bethdiv(p p,pu), pf3]));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 40 "Les points inv ariants forment une droite" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "(redu ce@factor@bethdiv2)(pp,pu)-k*pu: evalms(%): \n" }{MPLTEXT 1 0 82 "eli: = eliminate(%,\{u,v, k\}): (factor@numer@(lhs-rhs)@op@select)(has, eli [1], w):;\n" }{MPLTEXT 1 0 70 "collect(%/p/q/r, pu, ``@factor, distrib uted): fixes:=sort(%, [u,v,w]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "Transformation lin\303\251aire involutive" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "tmp:= bethdiv2(pp,pu): ma:= Matrix(3,3,(j,k)->coeff(t mp[j],pu[k]));\n" }{MPLTEXT 1 0 18 "map(factor,ma.ma);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 95 "Les points fixes sont les phid de la lig ne de l'infini. Ses coefficients se calculent avec phir" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "tmp:= phir(pu): mar:= Matrix(3,3,(j,k)->coeff( tmp[j],pu[k])); Determinant(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " <1|1|1>.mar/(p*q*r): map(factor, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 51 "Diviser X21 \+ par le circonscrit donne le circonscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "eqcircum:= unapply(add(k, k=rot3(c^2*x*y)),x,y,z)@op: (eqcircu m)(pu);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "(factor@eqcircum@bethdiv 2)(pX21,pu);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 68 "R\303\251ciproqu e. On suppose que les trois sommets vont sur le circonscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "(factor@eqcircum@bethdiv)(pp,pa): eqa:= se lect(has,%,\{p,q,r\})/q^2/r^2;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 " \{rot3(eqa)\}: [solve(%, \{p,q,r\})]: (op@remove)(has,%,0);\n" } {MPLTEXT 1 0 68 "(reduce@factor@subs)(%, pp): evalmm(%/mul(k,k=rot3(a+ b))); ency(%); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "(reduce@bethdiv2 )(pX(21),pa):%, expand(eqcircum(%));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 22 "On suppose F(P,U)=P " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "e valms(k*pp-bethdiv(pp,pu)): eliminate(%,\{k,u,v\});\n" }{MPLTEXT 1 0 32 "quic:= (reduce@subs)(%[1], pu);\n" }{MPLTEXT 1 0 26 "tmq:= zipd(%, pp): ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 50 "Multiplication : un exemple avec \+ racines complexes" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "(reduce@factor @bethdiv2)(pp,pX190)-k*pX292: evalmm(%): \n" }{MPLTEXT 1 0 63 "subs(en cy_, evalms(%)); eli4:= [eliminate](%,\{k,q,r\}): nops(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "eli4[2][1]: reduce(subs(%, pp)); encyclo(%) ;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "eli4[3][1]: (expand@reduce@sub s)(%, pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "(reduce@facto r@bethdiv2)(pp,pX1)-k*pX85: \n" }{MPLTEXT 1 0 63 "subs(ency_, evalms(% )); eli4:= [eliminate](%,\{k,q,r\}): nops(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "eli4[2][1]: reduce(subs(%, pp)); encyclo(%);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "eli4[3][1]: (expand@reduce@subs)(%, pp)/16;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 43 "Multiplication : exemple avec trois raci nes" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "(reduce@factor@bethdiv2)(pp, pX110)-k*pX643: \n" }{MPLTEXT 1 0 63 "subs(ency_, evalms(%)); eli4:= [ eliminate](%,\{k,q,r\}): nops(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "eli4[2][1]: reduce(subs(%, pp)); encyclo(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "eli4[3][1]: (expand@reduce@subs)(%, pp); encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 5 "gimel" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 10 "D\303\251finition" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 68 "tmp:= collect((reduce@phir@refle@phid)(pu), \+ pu, factor): length(%);\n" }{MPLTEXT 1 0 12 "gimeldiv:= \n" }{MPLTEXT 1 0 75 "subs(AA=tmp, proc(pp,pu) local p,q,r,u,v,w; p,q,r:= op(pp); u, v,w:=op(pu);\n" }{MPLTEXT 1 0 8 "AA end):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 32 "Test d'apres Kimberling, Table 3" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "for qui in [[3,1],[283,3],[8,30],[63,219],[63,6]] \n" }{MPLTEXT 1 0 66 "do qui, (ency@reduce@normal@gimeldiv)(pX(qui[1]), p X(qui[2])); od;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "Formule magique... et test" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "formu:= 16*S^2*pu-Q*C*pX1+ 2*Q*'bar ymul(pX48, isotom(pp))';\n" }{MPLTEXT 1 0 7 "valS2;\n" }{MPLTEXT 1 0 43 "valQ := Q = (p+r)*v/b+(p+q)*w/c+(q+r)*u/a;\n" }{MPLTEXT 1 0 72 "va lC := C = (b^2+c^2-a^2)*a^2/p+(a^2-b^2+c^2)*b^2/q+(a^2+b^2-c^2)*c^2/r; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "evalmm(subs(valS2, valQ,valC, f ormu)): zipd(gimeldiv(pp,pu),%); length(%%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 108 "Les points fixes de U->F(P,U) sont les phir de la li gne de l'infini. Ses coefficients se calculent avec phid" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "tmp:= phid(pu): mad:= Matrix(3,3,(j,k)->coeff (tmp[j],pu[k])); Determinant(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "<1|1|1>.mad: map(factor, %); lig_fixes:= unapply(evalm(%&*pu),u,v,w)@ op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "pfix3:= (factor@phir )(pX(3)); zipd(gimeldiv(pp,%),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 334 "mimosa:= unapply([a*(p*q*c^2*a^2+p*q*c^2*b^2-p*q*c^4 +p*r*b^2*a^2-p*r*b^4+p*r*b^2*c^2+q*r*a^4-q*r*a^2*b^2-q*r*a^2*c^2), -b* (-p*q*c^2*a^2-p*q*c^2*b^2+p*q*c^4+p*r*b^2*a^2-p*r*b^4+p*r*b^2*c^2+q*r* a^4-q*r*a^2*b^2-q*r*a^2*c^2), -c*(p*q*c^2*a^2+p*q*c^2*b^2-p*q*c^4-p*r* b^2*a^2+p*r*b^4-p*r*b^2*c^2+q*r*a^4-q*r*a^2*b^2-q*r*a^2*c^2)],p,q,r)@o p:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "samimo:= unapply(bary mul(cevamul(pu,pX(1)),pX(63)),u,v,w)@op:;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "zosma:= isogon@samimo: ency(zosma(pX(15)));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "(reduce@factor@samimo@mimosa )(px),(reduce@factor@mimosa@samimo)(px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "[rot3]( isolate(kashi[1],b^2+c^2-a^2)); (reduce@subs)(%, pX(3));\n" }{MPLTEXT 1 0 62 "subs(zipq(pp,barymul(px, pX(1))), Vector(phir(%))): reduce(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 55 "Les points invariants de U-> F(P,U) forment une droi te " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "(reduce@factor@gimeldiv)(pp, pu)-k*pu: evalms(%): \n" }{MPLTEXT 1 0 51 "eli:= eliminate(%,\{u,v, k \}): eli2_est_vide=eli[2];\n" }{MPLTEXT 1 0 52 "(factor@numer@(lhs-rhs )@op@select)(has, eli[1], w);\n" }{MPLTEXT 1 0 64 "collect(%, pu, ``@f actor, distributed): fixes:=sort(%, [u,v,w]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "barymul(complem(pp), isotom(pX1),pu);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "(factor@evalmm)(quic/mul(k,k=rot3(-a+b+c)));\n" } {MPLTEXT 1 0 35 "barymul(%, isotom(pp)); encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "lig_fixes(px): mylig:= unapply([seq](coef f(%, k), k=pp), x,y,z)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "for j in [1, 6, 513, 656] do if fdat[j]=\"ohlala\" then next fi; \n" }{MPLTEXT 1 0 31 "j, aboutlin(xbar=mylig(pX(j)));\n" }{MPLTEXT 1 0 3 "od;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 39 " Ecrit la table sous forme d'une matrice" }}{PARA 0 "" 0 "" {TEXT 210 70 "lesmimo:=table(): for j to 1387 do if fdat[j]=\"ohlala\" then nex t fi;\n" }{TEXT 210 40 "lesmimo[j]:= (ency@mimosa)(pX(j)): od: " }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 84 "li:= [seq([j,lesmimo[j]], j=1..13 87)]: li2:= remove(has,%, \{`?`, lesmimo\}); nops(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 82 "sep:= Vector(10, j->a):50: ; latexx(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT 214 6 "daleth" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 48 "hirstA:= unapply(hirstmul([E,F,G],pu),u,v,w)@op;" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "evalms(hirstA(px)-k*px); e li:= eliminate(%, \{k,x,y\});\n" }{MPLTEXT 1 0 50 "y-subs(eli[1], y): \+ conhirstA:= numer(%); conhirst;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "collineate(pa,pb,pc,[E,F,G], op(cev_redu),pp): Mg;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "reduce(convert(Vector[row](px).Mg, \+ list)): phiAd:= unapply(%,x,y,z)@op;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "reduce(convert(Vector[row](px).(1/Mg), list)): phiAr:= unapply(% ,x,y,z)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "zipq(px,phiA r(px)): tmp:= (factor@subs)(%, conhirstA): \n" }{MPLTEXT 1 0 50 "whatt ype(%), nops(%); select(has,tmp,x)/(p*q*r)^2:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "collect(%, px, expand, distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "eqcircum(px); encyclo(a^2);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "evalms(hirst1(pu)-k*pu);\n" }{MPLTEXT 1 0 28 "eli:= \+ eliminate(%, \{k,u,v\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "u-subs(eli[1], u): conhirst:= numer(%); " }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 70 "zipq(pu,phir(pu)): subs(%, conhirst): factor(-%/(a* b*c)/(p*q*r)^2): \n" }{MPLTEXT 1 0 37 "collect(%, pu, factor, distrib uted);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "tmp := u^2/p^2-2 *v*u/(p*q)-2*w*u/(p*r)+v^2/q^2-2*w*v/(r*q)+w^2/r^2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "hirs t1:= unapply(hirstmul(pX1,pu),u,v,w)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "evalms(hirst1(pu)-k*pu);\n" }{MPLTEXT 1 0 28 "eli:= e liminate(%, \{k,u,v\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 " u-subs(eli[1], u): conhirst:= numer(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "zipq(pu,phir(pu)): subs(%, conhirst): factor(-%/(a*b *c)/(p*q*r)^2): \n" }{MPLTEXT 1 0 37 "collect(%, pu, factor, distribu ted);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "tmp := u^2/p^2-2* v*u/(p*q)-2*w*u/(p*r)+v^2/q^2-2*w*v/(r*q)+w^2/r^2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "factor(subs(u=0, tmp)); solve(%, \{w\}); re duce(subs(%, [0,v,w]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "tmp:= collect((reduce@phid @hirst1@phir)(pu), pu, factor): length(%), indets(%);\n" }{MPLTEXT 1 0 13 "dalethdiv:= \n" }{MPLTEXT 1 0 75 "subs(AA=tmp, proc(pp,pu) local p,q,r,u,v,w; p,q,r:= op(pp); u,v,w:=op(pu);\n" }{MPLTEXT 1 0 8 "AA en d):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "dalethdiv(pp,pu): tm p:= collect( evalmm(%/(p*q*r)^2 ), [p], factor);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "(expand@evalmm)(wedge(pp,pu)/(p*q*r)); (exp and@barymul)(%,pp):\n" }{MPLTEXT 1 0 24 "tmp1:= barymul(%,%,pp);\n" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "barymul(pu, isotom(pp)); va l_alpha:= alpha=add(k,k=%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "-tmp+tmp1-alpha*pu: (evalmm)(%): (factor@subs)(val_alpha,%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "tmp1-alpha*pu-3*barymul(pu,p u, isotom(pp)): evalmm(%);\n" }{MPLTEXT 1 0 22 "subs(val_alpha, %[1]); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "Les points invariants formen t une conique" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "(reduce@factor@dal ethdiv)(pp,pu)-k*pu: evalms(%): \n" }{MPLTEXT 1 0 28 "eli:= eliminate( %,\{u,v, k\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "eli[1][1] ; numer(subs(%, u)-u); isolate(%, (op@indets)(%, sqrt)):\n" }{MPLTEXT 1 0 79 "map(id^2, %); numer((rhs-lhs)(%)): tmp:= collect(%/(p*q*r)^2, \+ pu, distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "zip(`= `,px,pu); subs(%, conicev(pp,pp));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "zip(`=`,pu,[0,q,r]); subs(%, tmp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "dalethdiv: (%@any)(pp,pu): (any@%%)(pp,pu): (zipd)(%%,%);\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "# ni l'un ni l'autre !!!; \n " }{MPLTEXT 1 0 58 "# gimeldiv: (%@any)(pp,pu): (yna@%%)(pp,pu): (zipd )(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "bethdiv: (%@any )(pp,pu): (any@%%)(pp,pu): (zipd)(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "# ni l'un ni l'autre !!!; \n" }{MPLTEXT 1 0 58 "# ale phdiv: (%@any)(pp,pu): (yna@%%)(pp,pu): (zipd)(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "evalms(dalethdiv(pp,pu)-k*px): #eliminate(%, \{k,p,q \});;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "dalethdiv(pX6,pX39): reduce(%); subs(ency_, %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 2 "he" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "tmp:= col lect((reduce@phir@hirst1@phid)(pu), pu, factor, distributed): \n" } {MPLTEXT 1 0 22 "length(%), indets(%);\n" }{MPLTEXT 1 0 9 "hediv:= \n" }{MPLTEXT 1 0 75 "subs(AA=tmp, proc(pp,pu) local p,q,r,u,v,w; p,q,r:= op(pp); u,v,w:=op(pu);\n" }{MPLTEXT 1 0 8 "AA end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "# hediv: (%@any)(pp,pu): (any@%%)(pp,pu): (reduce@factor@zipd)(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "(reduce@factor@hed iv)(pX2,pX239); encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "(reduce@normal@phid)(pX9); (reduce@hirst1)(%); (normal@phir)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "(reduce@factor@hediv)(pX6 ,pX36); encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "(fac tor@hediv)(pp,pu): tmp:= barymul(%, isotom(pX1)):\n" }{MPLTEXT 1 0 20 "factor(add(k, k=%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "(f actor@hediv)(pp,pu): map(length,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "# (factor@hediv)(pp,anticomplem(pu)):map(length,%);\n " }{MPLTEXT 1 0 48 "# (factor@hediv)(pp,complem(pu)): map(length,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "(factor@hediv)(barymul(pp , (pX1)), (barymul(anticomplem(pu), (pX1)))):\n" }{MPLTEXT 1 0 49 "tmp := reduce(barymul(%, isotom(pX1))); indets(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "factor(add(k,k=tmp)):\n" }{MPLTEXT 1 0 73 "fact or(evalmm((tmp-%*pX2)/(p*q*r)/2)): collect(%, p, factor): qqq:= %[1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "rot3(qqq); tmq:= evalmm( add(k,k=%)*pX2 -2*[%]);;\n" }{MPLTEXT 1 0 14 "zipd(tmq,tmp);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "zipq(pp, barymul(pp, isotom( pX1)) ); \n" }{MPLTEXT 1 0 67 "subs(%, barymul(tmq, pX1)): tmqq:= coll ect(%, pu, ``, distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "zipq(pu, complem(barymul(pu, isotom(pX1))) ):\n" }{MPLTEXT 1 0 23 "tmqqq:= subs(%, tmqq); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "subs(``=A, tmqqq[1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "(reduce@zipd)(hediv(pp,pu), yjoli(tmqqq));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 35 "Les points invariants forment \+ ????" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "_EnvExplicit:= false: (red uce@factor@hediv)(pp,pu)-k*pu: evalms(%): \n" }{MPLTEXT 1 0 28 "eli:= \+ eliminate(%,\{v,w, k\}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "rotof(eli); %[2]; subs(%%[1], v)=v; \n" }{MPLTEXT 1 0 65 "tmp:= colle ct(subs(%, polyf)/(p*q*r), pu, expand, distributed);; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "zipq(pu,phid(pu)): subs(%, conhirst): factor(%/(a*b*c )/(p*q*r)): \n" }{MPLTEXT 1 0 37 "collect(%, pu, factor, distributed) ;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "nops(eli), map2(op,2,el i);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "barymul(pX1, isotom (pp)): def_alpha:= alpha=add(k,k=%);;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "reduce(subs(eli[1][1], pu)): evalmm(%/(p*q*r)): collect(%, pp, d istributed);\n" }{MPLTEXT 1 0 84 "'alpha*pX1-2*barymul(pX6, isotom(pp) )'; evalmm(-%+%%): (factor@subs)(def_alpha,%);;\n" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "eli[2][1]: rotof(%); subs(%,u)=u; \n" }{MPLTEXT 1 0 65 "tmp:= coll ect(subs(%, polyf)/(p*q*r), pu, expand, distributed);; " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "tmp ne semble pas \303\252tre une conice v" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "_EnvExp licit:= true; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "isotom(pX 1): encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "(expand@ evalmm)(phid(pu)/(a*b*c)); barymul(pu, isotom(pX1));\n" }{MPLTEXT 1 0 25 "barymul(complem(%), pp); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "'barymul(pp, complem(barymul(pu, isotom(pX1))))'; %;\n" } {MPLTEXT 1 0 18 "zipd(%, phid(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "phir(pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "'barymul(pX1, anticomplem(barymul(pu, isotom(pp))))'; %;\n" } {MPLTEXT 1 0 18 "zipd(%, phir(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "phir(pu); zipq(pu,any(pu)),zipq(pp,any(pp)), zipq(pX1 ,any(pX1));\n" }{MPLTEXT 1 0 34 "zipd(subs(%, %%), any(phir(pu)) );" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "(cevamul@any)(pp,pu); (any @cevamul)(pp,pu); zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "cevadiv(pp,pu); indets(%);\n" }{MPLTEXT 1 0 56 "(cevadiv@any)( pp,pu); (any@cevadiv)(pp,pu); zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 38 "cevamul(cevadiv(pp,pu),pu): reduce(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "(crossm ul@any)(pp,pu); (any@crossmul)(pp,pu); zipd(%%,%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "(crossmul)(pp,pu); (crossmul)(pu,pp); zipd(%%,%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "(crossdiv@any)(pp,pu); \+ (any@crossdiv)(pp,pu); zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "(wedge)(pp,pu); (wedge)(pu,pp); zipd(%%,%);\n" } {MPLTEXT 1 0 52 "(wedge@any)(pp,pu); (yna@wedge)(pp,pu); zipd(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 3 "waw" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "ceva1:= unapply(cevadiv(pX1,pu),u,v ,w)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "tmp:= collect((r educe@phid@ceva1@phir)(pu), pu, factor): length(%), indets(%);\n" } {MPLTEXT 1 0 10 "wawdiv:= \n" }{MPLTEXT 1 0 75 "subs(AA=tmp, proc(pp,p u) local p,q,r,u,v,w; p,q,r:= op(pp); u,v,w:=op(pu);\n" }{MPLTEXT 1 0 8 "AA end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "wawdiv(pp,pu ): tmp:= collect( evalmm(%/(p*q*r)^0 ), [p], factor);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "p*map(U->U/p, tmp[1]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 18 "covariante sur P,U" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "zipq(pp,any(pp)),zipq(pu,any(pu)); subs(%, wawdiv(pp, pu)); \n" }{MPLTEXT 1 0 37 "(normal@zipd)(%, any(wawdiv(pp,pu)));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "evalms(ceva1(pu)-k*pu); eli: = [eliminate](%,\{k,u,w\});" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "map2 (op,2,eli);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "map2(op,1,el i): map(reduce@subs,%,pu);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "Les points invariants forment ????" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 " (reduce@factor@wawdiv)(pp,pu)-k*pu: evalms(%): \n" }{MPLTEXT 1 0 33 "e li:= (factor @eliminate)(%,\{k\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "(reduce@factor@wawdiv)(pp,pu)-k*pu: evalms(%): \n" } {MPLTEXT 1 0 27 "eli:= [eliminate](%,\{k,u\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "map2(op,2,eli); map(reduce@subs, map2(op,1,eli) , pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "reduce(wawdiv(pp, [0,q,r])); reduce(wawdiv(pp, [p,q,0]));\n" }{MPLTEXT 1 0 28 "reduce(w awdiv(pp, [p,q,r]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "eli[1][1]; numer(subs(%, u)-u); isolate(%, (op@indet s)(%, sqrt)):\n" }{MPLTEXT 1 0 79 "map(id^2, %); numer((rhs-lhs)(%)): \+ tmp:= collect(%/(p*q*r)^2, pu, distributed);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "zip(`=`,px,pu); subs(%, conicev(pp,pp));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "zip(`=`,pu,[0,q,r]); subs(%, tmp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "zipq:= (U,V)->zip (`=`,U,V);\n" }{MPLTEXT 1 0 43 "zipd:= reduce@factor@((U,V)->zip(`/`,U ,V));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "dalethdiv: (%@any) (pp,pu): (any@%%)(pp,pu): (zipd)(%%,%);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "# ni l'un ni l'autre !!!; \n" }{MPLTEXT 1 0 58 "# gi meldiv: (%@any)(pp,pu): (yna@%%)(pp,pu): (zipd)(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "bethdiv: (%@any)(pp,pu): (any@%%)(p p,pu): (zipd)(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "# n i l'un ni l'autre !!!; \n" }{MPLTEXT 1 0 58 "# alephdiv: (%@any)(pp,pu ): (yna@%%)(pp,pu): (zipd)(%%,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "evalms( dalethdiv(pp,pu)-k*px): #eliminate(%, \{k,p,q\});;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "dalethdiv(pX6,pX39): reduce(%); subs(ency_, %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 56 "Cyclopedal : les isogonaux ont des tripedals coc ycliques" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "convert(les_peda ls(pp), listlist): qa,qb,qc:= (op@map)(bary2norm,%):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "la,lb,lc:= bary2sides(qa,qb,qc):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "f_circ: tmp:= evalmm(%(la,lb ,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc):\n" }{MPLTEXT 1 0 24 "tmp:= red uce(factor(%)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "zip(`=`, pp,isogon(pp)): tmq:= (reduce@factor@subs)(%, tmp):factor(zip(`/`, tmp ,tmq));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "qui:= [1,1,1]: e ncyclo(%);\n" }{MPLTEXT 1 0 65 "factor(subs(zip(`=`,pp,qui), tmp)); re duce(%): %[1]: encyclo(%);\n" }{MPLTEXT 1 0 31 "qui:= isogon(qui): enc yclo(%);\n" }{MPLTEXT 1 0 67 "factor(subs(zip(`=`,pp,qui), tmp)); redu ce(%): %[1]: encyclo(%); \n" }{MPLTEXT 1 0 28 "# midpoint of X(2) and X(6);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "qui:= [a,b,c]: en cyclo(%);\n" }{MPLTEXT 1 0 65 "factor(subs(zip(`=`,pp,qui), tmp)); red uce(%): %[1]: encyclo(%);\n" }{MPLTEXT 1 0 31 "qui:= isogon(qui): ency clo(%);\n" }{MPLTEXT 1 0 66 "factor(subs(zip(`=`,pp,qui), tmp)); reduc e(%): %[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "qui:= pX3; encyclo(%);\n" }{MPLTEXT 1 0 65 "factor(subs(zip(`=`,pp ,qui), tmp)): reduce(%): %[1]: encyclo(%);\n" }{MPLTEXT 1 0 31 "qui:= \+ isogon(qui): encyclo(%);\n" }{MPLTEXT 1 0 67 "factor(subs(zip(`=`,pp,q ui), tmp)): reduce(%): %[1]: encyclo(%); \n" }{MPLTEXT 1 0 28 "# midp oint of X(2) and X(6);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 9 "Saragossa" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 41 "Qu elles sont les coniques circulaires ???" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "eqcon:= cxx*X^2+cxy*X*Y+cyy*Y*Y+cx*X+cy*Y+c0;\n" } {MPLTEXT 1 0 52 "zip(`=`,[X,Y,rien], bary2proj(px)): subs(%, eqcon):\n " }{MPLTEXT 1 0 69 "collect(numer(%), [x,y,z], distributed): eqconbar: = sort(%, [x,y,z]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "eqco nbar0:= add(add(cat(C,(op@sort)([u,v]))*u*v, v=[x,y,z]), u=[x,y,z]);\n " }{MPLTEXT 1 0 47 "lescoe:= convert(indets(%) minus\{x,y,z\}, list);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "\{coeffs\}(eqconbar-eqco nbar0, \{x,y,z\}): sol0:= solve(%, \{coeffs\}(eqcon, \{X,Y\})):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "sol:= simplify(sol0, rule123 ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "(factor@subs)(sol, cx y): simplify( numer(%/8), rule123):\n" }{MPLTEXT 1 0 34 "rel1:= collec t(%, lescoe, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "(f actor@subs)(sol, cxx-cyy): simplify( numer(%/8), rule123);\n" } {MPLTEXT 1 0 34 "rel2:= collect(%, lescoe, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "subs(map(rhs=lhs, rule123), rel2): rel22:= collect(%, lescoe, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "Det(Matrix(map(circ@op, [za,zb,zc,zx]))): \n" }{MPLTEXT 1 0 45 "xcs( collect(%/coeff(%, X,2), [X,Y]), X, Y):\n" }{MPLTEXT 1 0 60 "eqcir:= select(has,%, \{X,Y\})+(factor@remove)(has, %,\{X,Y\}) ;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "zip(`=`,[X ,Y,rien], bary2proj(px)): subs(%, eqcir):\n" }{MPLTEXT 1 0 50 "factor( simplify(%, rule123)); barccir:= -numer(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 40 "Exemple : le symetrique de l'orthocentre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "f_orth: [%(a,b,c),%(b,c,a),%(c,a,b)]; ph:= nor mal(evalmm(%/convert(%,`+`)));\n" }{MPLTEXT 1 0 62 "for j to 3 do norm al(les_cevians(f_orth)[j]); normal(2*%-ph):\n" }{MPLTEXT 1 0 56 "zip(` =`, px, %): factor(subs(%, barccir)): print(%); od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "ap,bp,cp:= les_cevians(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "tmp:= evalmm(pa+mu*ap): zip(`=`, px , %): subs(%, barccir): solve(\{%, mu<>0\}, mu):\n" }{MPLTEXT 1 0 27 " aap:= reduce(subs(%, tmp));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "tmp: = evalmm(pb+mu*bp): zip(`=`, px, %): subs(%, barccir): solve(\{%, mu<> 0\}, mu):\n" }{MPLTEXT 1 0 27 "bbp:= reduce(subs(%, tmp));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "tmp:= evalmm(pc+mu*cp): zip(`=`, px, %): su bs(%, barccir): solve(\{%, mu<>0\}, mu):\n" }{MPLTEXT 1 0 27 "ccp:= re duce(subs(%, tmp));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 23 "Creation \+ des points UVW" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "cr(cr(bp,ccp), cr (cp,bbp)): uu:=(reduce@factor)(convert(%, list));\n" }{MPLTEXT 1 0 67 "cr(cr(cp,aap), cr(ap,ccp)): vv:=(reduce@factor)(convert(%, list));\n" }{MPLTEXT 1 0 66 "cr(cr(ap,bbp), cr(bp,aap)): ww:=(reduce@factor)(con vert(%, list));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 13 "Premier point " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "cr(pa,uu),cr(pb,vv),cr(pc,ww); \+ Determinant(Matrix([%]));\n" }{MPLTEXT 1 0 44 "convert(cr(%%[1],%%[2]) , list): reduce(%): \n" }{MPLTEXT 1 0 62 "evalmm(%/(p*q*r*(p*c^2+r*a^2 )*(p*b^2+q*a^2)*(q*c^2+r*b^2)) );\n" }{MPLTEXT 1 0 47 "sarag1:= proc(p p) local p,q,r; p,q,r:=op(pp); \n" }{MPLTEXT 1 0 75 "[a^2/(p*(q*c^2+r* b^2)), b^2/(q*(p*c^2+r*a^2)), c^2/(r*(p*b^2+q*a^2))]; end:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Deuxieme point" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "cr(ap,uu),cr(bp,vv),cr(cp,ww): Determinant(Matrix([%] ));\n" }{MPLTEXT 1 0 44 "convert(cr(%%[1],%%[2]), list): reduce(%); \n " }{MPLTEXT 1 0 63 "sarag2:=subs(U=%, proc(pp) local p,q,r; p,q,r:=op( pp); U; end):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 15 "Troisieme point " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "cr(aap,uu),cr(bbp,vv),cr(ccp,ww ): Determinant(Matrix([%]));\n" }{MPLTEXT 1 0 44 "convert(cr(%%[1],%%[ 2]), list): reduce(%); \n" }{MPLTEXT 1 0 63 "sarag3:=subs(U=%, proc(pp ) local p,q,r; p,q,r:=op(pp); U; end):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "sarag1([a*p,b*q,c*r]): evalmm(factor(%)*a*b*c);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "sarag2([a*p,b*q,c*r]): evalm m(factor(%)/(a*b*c)^2):\n" }{MPLTEXT 1 0 42 "collect(%[1],p, factor); \+ sort(%, [p,q,r]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "sarag3 ([a*p,b*q,c*r]): evalmm(factor(%)/(a*b*c)^2):\n" }{MPLTEXT 1 0 42 "col lect(%[1],p, factor): sort(%, [p,q,r]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "2: sarag1([p*a^%,q*b^%,r*c^%]); normal(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "sarag1(pp)[1]; collect(sarag 2(pp)[1]/(a*b*c)^2,p,expand);\n" }{MPLTEXT 1 0 56 "collect(sarag3(pp)[ 1]/(a*b*c)^2,p,expand); factor(%%-%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "(r*q^2*a^2/b^2+r^2*q*a^2/c^2)*p: a^2*p*q*r; expand(%% /%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "zip(`/`,sarag3(px), px); eliminate(\{%[1]=%[2],%[2]=%[3]\}, \{x,y\}); op([1,1],%);\n" } {MPLTEXT 1 0 20 "numer((lhs-rhs)(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "zip(`/`,sarag3(px),px); lescas:= solve(\{%[1]=%[2],%[ 2]=%[3],%[3]=%[1]\}, \{x,y,z\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "lescas[1][1]; numer( (lhs-rhs)(%)); barccir;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "lescas[3]; subs(%, x=a^2, px);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "reduce(sarag2([a^2,b^2,c^2]) );reduce(sarag1([a^2,b^2,c^2]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "zip(`/`,sarag3(px),sarag1(px)); lescas:= solve(\{%[1]=%[2],%[ 2]=%[3],%[3]=%[1]\}, \{x,y,z\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "subs(lescas[2], x=a^2, px); -subs(lescas[3], z=c^2, px);subs( lescas[5], y=b^2, px);\n" }{MPLTEXT 1 0 27 "subs(lescas[6], z=c^2, px) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "[sarag2,sarag2,sarag3] ([a^2,b^2,c^2]): map(reduce, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 8 "Collings" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 19 "When five points. .." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "mkcon:= proc(zz) local x,y; x,y:= zz[1]/zz[3], zz[2]/zz[3];\n" }{MPLTEXT 1 0 26 "[x^2,x*y,y^ 2,x,y,1]; end; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "Matrix([ seq](mkcon([x||k,y||k,1]), k=[1,2,3,4,5,``])): \n" }{MPLTEXT 1 0 54 "c ollect(Determinant(%), [x,y], factor, distributed): \n" }{MPLTEXT 1 0 23 "eqcon:= sort(%, [x,y]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "factor(subs(x2=-x1,y2=-y1, x4=-x3,y4=-y3, eqcon)):\n" }{MPLTEXT 1 0 43 "map(collect,%, [x,y], factor, distributed);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 25 "rrr:= rand(-100..+100): \n" }{MPLTEXT 1 0 57 "rdval:= seq(k=rrr(), k=[x1, x2, x3, x4, y1, y2, y3, y4]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "eqc0:= subs(rdval, eqcon); d egree(expand(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "map2(d iff, eqc0, \{x,y\}): eli:= eliminate(%, \{x5\});\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 57 "its a conic. Its center is the isobary of the fo ur points" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "select(has, op(eli[2]) , y); map2(diff, %, \{x,y\});\n" }{MPLTEXT 1 0 48 "solve(%); subs(rdva l, add([x||j,y||j], j=1..4));" }}}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 54 "pp est le centre de la conique, le perspector est ...\n" }{TEXT 210 49 "Et la conique bleue passe bien par les six points" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 40 "le_persp:= barymul(pp, anticomplem(pp));" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "lacobleue:= unapply(conicir(le_pers p), x,y,z)@op;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "ap,bp,cp:= seq(re flection(pp, k), k=[pa,pb,pc]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 " seq( normal(lacobleue(k)), k=[ap,bp,cp]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "\{lacobleue(px), conicir(pX6)\}; solve(%, \{x,y\}): \+ subs(%, px):\n" }{MPLTEXT 1 0 35 "le_Q:= (isotom@reduce@isotom)(%); \n " }{MPLTEXT 1 0 39 "%-(isotom@normal@wedge)(pX6, le_persp);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 194 "collings:= unapply([1/(-p*q *c^2+c^2*q^2-c^2*q*r+p*r*b^2+r*b^2*q-b^2*r^2), 1/(-p^2*c^2+p*q*c^2+p*c ^2*r-a^2*r*p-q*r*a^2+a^2*r^2), 1/(p^2*b^2-p*b^2*q-p*r*b^2+a^2*q*p-a^2* q^2+q*r*a^2)], (p,q,r))@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "condiQ:= subs(zipq(px,pu), conicir(pX6));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 99 "On part de l'id\303\251e que c'est possible lorsque p u est comme il faut (c'est \303\240 dire sur le cercle circ)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "wedge(isotom(le_Q),isotom(pu)): ps(%, pX2 ):\n" }{MPLTEXT 1 0 72 "sort(collect(%, pp, distributed), pp): coni_no ir:= subs(zipq(pp,px),%);\n" }{MPLTEXT 1 0 33 "laconoir:= unapply(%, x ,y,z)@op: " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "Passe par les somm ets et l'orthocentre du m\303\251dial." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "collect(laconoir([1,1,0]), pu);\n" }{MPLTEXT 1 0 35 "collect(l aconoir(pX3), pu, normal);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "conicev(pX2, pp); 1/ coeff(coni_noir, x, 2):\n" }{MPLTEXT 1 0 20 "pX_noir:= [rot3](%);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Ah, \303\247a c'est beau" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "isotom(pX_noir); (reduce@isotom@fac tor)(%+evalmm(pX2*condiQ));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "subs(x=0, coni_noir): solve(%, \{y\}); subs(x=0, %[2], px);\n" } {MPLTEXT 1 0 42 "simplify(%, \{condiQ\}); (reduce@factor)(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "le_K:= (reduce@normal)(add(b ary2norm(k), k=[pa,pb,pc,pu]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "tmp:= conicev(pp,pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 67 "eqbar du cercle par tr ois points pj, pp, pu (point generique : px)" }}{EXCHG {PARA 0 "" 0 " " {TEXT 210 61 "le cercle par trois points pj, pp, pu (point generiqu e : px)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "i,j,k:='i','j','k'; pj:= [i,j,k];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "map(circ@op@bar y2proj,[pj,pp,pu,px]); eqq:= numer(Determinant(Matrix(%))): " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "tmp:= (factor@simplify)(eqq, rule123): eqbar:= remove(has, %, xa):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "eqbar:= collect(eqbar, [x,y,z], factor, distributed):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "(op@zip)(`=`, pj,pa), (op@zi p)(`=`, pp,pb), (op@zip)(`=`, pu,pc):\n" }{MPLTEXT 1 0 73 "cir0:= coll ect(subs([%], eqbar)*(p+q+r)^0, [x,y,z], factor, distributed);" }}}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "Et le petit cercle passe par Q" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "zipq(pj,pa), zipq(pp,bp), zipq(pu, cp):\n" }{MPLTEXT 1 0 71 "cira:= collect(subs(%, eqbar)*(p+q+r)^2, [x, y,z], factor, distributed);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "(nor mal@subs)(zipq(px,le_Q), cira);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 18 "On teste \303\240 nou veau" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "barymul(pp, anticomplem(pp) ): (isotom@factor@wedge)(pX6, %): zipd(%, le_Q);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "barymul(pp, anticomplem(pp)): cevadiv(pX2, pp): zipd( %,%%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "eqq:= conicev(pX2 ,pu); conicir(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "zipq( px,complem(px)); collect(subs(%, -eqq/2)/x/y/z, px, distributed);\n" } {MPLTEXT 1 0 14 "coeff(%, 1/x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "crossmul(pu,pX2): (reduce@barymul)(%, anticomplem(%)):\n" } {MPLTEXT 1 0 48 "perspector=(reduce@barymul)(%, anticomplem(%));\n" } {MPLTEXT 1 0 10 "centre=%%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "pX1125:= [rot3](2*a+b+c); # encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "2, 39, 114, 618, 619, 629, 630, 641, 642, 1125; se q(pX||k, k=%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "fun:= una pply(conicev(pX2,pX99), x,y,z)@op;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "(expand@fun)(pX39);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 6 "Brice " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "coni_in(pX(7)): eqcir_in:= unapply(%, x,y,z)@op: ciri:='ciri':\n " }{MPLTEXT 1 0 13 "eqcir_in(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "eqcircum(pu);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "(s-a)*u/a^2*x: subs(s=(a+b+c)/2, %+rot(%)+rot(rot(%))): \n" } {MPLTEXT 1 0 37 "trois_cot:= collect(%*2, px, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "1/2*a^4/(s-a)/u^2: tact:= (factor@s ubs)(s=(a+b+c)/2, [rot3](%)) ;\n" }{MPLTEXT 1 0 28 "brice:= unapply(%, u,v,w)@op;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "Ce point est sur l e cercle inscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "(factor@eqcir_i n)(tact); subs(eqcircum(pu)=0, %=0);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "Ce point est sur la droite" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "zipq(px, tact); (factor@subs)(%, trois_cot);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 28 "Inte rsection trois_cot, ciri" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "aller:= solve(eqcircum(pu),\{w\}); retour:= isolate(op(%), a^2*v+u*b^2);\n" } {MPLTEXT 1 0 48 "eli:= eliminate(\{trois_cot, eqcir_in(px)\}, \{x\}):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "op(eli[2]): collect(subs(aller, \+ %), px, factor);\n" }{MPLTEXT 1 0 52 "\{solve\}(%, \{y\}); (factor@sub s)(eli[1], op(%), px): \n" }{MPLTEXT 1 0 54 "(factor@subs)(retour, eva lmm(%/z/(a+b-c)*c^4/w^2 ));\n" }{MPLTEXT 1 0 43 "qqq:= (factor@simpli fy)(%, \{eqcircum(pu)\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "eqcir_in(pp): add(k, k=[rot3](x*diff(%,p)/2)): tan_in:= collect(%, px, factor);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 58 "Intersection (c as g\303\251n\303\251ral) cercle, tangente : point double" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 46 "eli:= eliminate(\{eqcir_in(px), tan_in\},\{z \}): ;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "simplify(eli[2], \{eqcir_ in(pp)\}): factor(%); op(\{solve\}(%, y));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "(factor@subs)(eli[1], %, evalmm(px*p/x) ): collect(%, r, factor);\n" }{MPLTEXT 1 0 73 "collect(numer(%[3]-r), pp, factor, d istributed): expand(%+eqcir_in(pp)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "(factor@wedge)(map2(diff/2,c iri(pp1),pp1),map2(diff/2,ciri(pp2),pp2)):\n" }{MPLTEXT 1 0 18 "oncum: = reduce(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "tmp:= (eqci rcum)(oncum); # collect(%, pp2, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "evalms(brice(pp)-k*pu) union \{eqcir_in(pu)\};\n" }{MPLTEXT 1 0 31 "eli:= [eliminate](%,\{p, q, r \}):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "convert(map2(op,2,e li), set); collect((op@op)(%), pu,factor, distributed);\n" }{MPLTEXT 1 0 23 "factor(%/eqcir_in(pu));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "subs(eli[1][1], k=1, pp); simplify(%) assuming u>0,v>0,w>0;" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 8 "Tripocen" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 38 "Centre de gravit\303\251 du triangle cocevien" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "pp a,ppb,ppc:= les_cevians(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "qqa,qqb,qqc:= les_anticevs(pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "rra:= (reduce@p ersp)(ppb,qqb,pb,ppc,qqc,pc);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "rr b:= (reduce@persp)(ppc,qqc,pc,ppa,qqa,pa);\n" }{MPLTEXT 1 0 44 "rrc:= \+ (reduce@persp)(ppa,qqa,pa,ppb,qqb,pb);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 31 "Cette ligne est le trilipo de P" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "matcocev(pp): Rank(%),(isotom@reduce@isotom@wedge)(Co lumn(%,1),Column(%,2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 " bary2norm(rra)+bary2norm(rrb)+bary2norm(rrc): reduce(%);\n" }{MPLTEXT 1 0 32 "tripocent:= unapply(%,p,q,r)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 9 "Orthocorr" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 44 "On fait les calculs pour v\303\251rifier la formule" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 54 "AP ; infty(AP) ; orthog ; or thog par P ; inter avec BC" }}{PARA 0 "" 0 "" {TEXT 210 45 "wedge(pa,p p); wedge(%,pX(2)); orthopoint(%);\n" }{TEXT 210 52 "wedge(%,pp); ppa: = (factor@wedge)(%, wedge(pb,pc));\n" }{TEXT 210 45 "wedge(pb,pp); wed ge(%,pX(2)); orthopoint(%);\n" }{TEXT 210 52 "wedge(%,pp); ppb:= (fact or@wedge)(%, wedge(pc,pa));\n" }{TEXT 210 45 "wedge(pc,pp); wedge(%,pX (2)); orthopoint(%);\n" }{TEXT 210 51 "wedge(%,pp); ppc:= (factor@wedg e)(%, wedge(pa,pb));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 64 "Matrice( [ppa,ppb,ppc]): map(collect,%,pp,distributed); Rank(%);\n" }{TEXT 210 56 "tmp:= (isotom@factor@wedge)(Column(%%,1), Column(%%,2));" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 72 "collect(reduce(tmp), pp, distribu ted); orthocorr:= unapply(%, p,q,r)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 269 "orthocorr := `@`(proc (p, q, r) options operator, ar row; [(a^2+b^2-c^2)*p*r+(a^2-b^2+c^2)*p*q+(a^2-b^2-c^2)*p^2+2*a^2*q*r, 2*b^2*p*r+(b^2+c^2-a^2)*p*q+(-c^2-a^2+b^2)*q^2+r*(a^2+b^2-c^2)*q, (b^ 2+c^2-a^2)*p*r+2*c^2*p*q+(-a^2-b^2+c^2)*r^2+(a^2-b^2+c^2)*r*q] end pro c, op);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 8 "Exemples" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "orthocorr(pa); (ency@orthocorr)(pX(4)); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 48 "Alignement avec cevadiv(pX(4),pp) et isogon(pp)" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "-orthocorr(pp)+2*(reduce@isogon)(pp )-(reduce@factor@cevadiv)(pX(4),pp);\n" }{MPLTEXT 1 0 19 "(factor@eval mm)(%);" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 10 "associates" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "evalms(orthocorr(pp)-k*ortho corr(pu));\n" }{MPLTEXT 1 0 39 "eli:= [eliminate](%, \{u,v,k\}): nops( %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "map2(op,2,eli);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "sol1 est P, sol3 foire, sol2 rest e" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 391 "sol2 := [(a^2-b^2+c^2 )*(a^2+b^2-c^2)*(a^2*r^2+a^2*r*p+a^2*q*p+a^2*q^2-p*c^2*r+b^2*r^2-p*q*c ^2-c^2*r^2-p*r*b^2-p*b^2*q-b^2*q^2+c^2*q^2), (a^2-b^2-c^2)*(p^2*a^2+a^ 2*q*p+q*r*a^2-a^2*r^2-p^2*b^2-p^2*c^2+p*q*c^2-p*b^2*q+c^2*r^2-r*b^2*q+ c^2*q*r-b^2*r^2)*(a^2+b^2-c^2), (a^2-b^2-c^2)*(-a^2*q^2+a^2*r*p+q*r*a^ 2+p^2*a^2-p^2*b^2-p*c^2*r-c^2*q*r-p^2*c^2+b^2*q^2-c^2*q^2+p*r*b^2+r*b^ 2*q)*(a^2-b^2+c^2)];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "zip d(orthocorr(pp), orthocorr(sol2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "(factor@evalmm)(sol2/rotp(a^2-b^2+c^2));\n" }{MPLTEXT 1 0 15 "collect(%, pp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "delta:= ((rhs=lhs)@exp and)(16*valS2);\n" }{MPLTEXT 1 0 6 "valS2;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 44 "On cherche les associ\303\251s d'un orthocorr donn\303\2 51" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "eqs:= evalms(orthocorr(pp)-k* pu): eli:= eliminate(%, \{p,k\}):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 22 "Deux types de solution" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "o p(eli[2]): eli2:= select(has, factor(%), indets(%)); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 63 "Solution g\303\251n\303\251rique, ind\30 3\251pendante de U, sur la ligne de l'infini" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "op(1, eli2); (simplify@subs)(-delta, solve(%, \{q\})[ 1]); \n" }{MPLTEXT 1 0 55 "(normal@expand@rationalize@factor@subs)(eli [1],%, pp):\n" }{MPLTEXT 1 0 50 "subs(sqrt(-S^2)=azor, valS2, azor=sqr t(-S^2), %):\n" }{MPLTEXT 1 0 56 "xcollect(%, sqrt(-S^2), normal): zom bilic:= reduce(%); \n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "(r ationalize@isotom)(zombilic):subs(sqrt(-S^2)=azor, valS2, azor=sqrt(-S ^2), %):\n" }{MPLTEXT 1 0 52 "tmp:= factor(%); rationalize(1/normal(ad d(k,k=%)));\n" }{MPLTEXT 1 0 59 "(factor@subs)(sqrt(-S^2)=azor, valS2, azor=sqrt(-S^2), %);\n" }{MPLTEXT 1 0 31 "(normal@expand@evalmm)(tmp* %):\n" }{MPLTEXT 1 0 83 "subs(sqrt(-S^2)=azor, valS2, azor=sqrt(-S^2), %): xcollect(%, sqrt(-S^2), factor):\n" }{MPLTEXT 1 0 59 "(reduce@fac tor)(%): tmp1:= xcollect(%, sqrt(-S^2), factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "normal(add(k,k=tmp1)); tmp1+map(conjugate,tmp 1);\n" }{MPLTEXT 1 0 20 "(evalc)(%); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(rationalize@isotom)(tmp1) :subs(sqrt(-S^2)=azor, valS2, azor=sqrt(-S^2), %):\n" }{MPLTEXT 1 0 85 "xcollect(%, sqrt(-S^2), factor): reduce(%): zombi2:= xcollect(%, s qrt(-S^2), factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 49 "conjugu\303\251s, orthogonaux, \303\240 l'infini : les o mbilics" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "xcollect(orthopoint(zomb ilic), sqrt(-S^2), A@expand):;\n" }{MPLTEXT 1 0 83 "(eval@subs)(delta, -delta, A=id, %/4/sqrt(-S^2)): xcollect(%, sqrt(-S^2), expand):\n" } {MPLTEXT 1 0 55 " ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "eqq:= op(2, eli2): De lta0:= expand(discrim(%,q)/r^2): factor(%):\n" }{MPLTEXT 1 0 84 "subs( isolate(valS2, a+b+c),%): Delta1:= -select(has,%,\{a,b,c\}): fac1:= fa ctor(%%/%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "subs(zipq(pu ,pX(2)), Delta0);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "La raison d u S^2*(u+v+w)^2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "# collect(Delta1 , pu, distributed); subs(delta, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "Delta:= 'Delta';" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "ffac:=16: (16/ffac)*S^2*(u+v+w)^2: \n" }{MPLTEXT 1 0 84 "valDelta:= Delta=% + collect(-subs(valS2, %)+Delta1/ffac, pu, fact or, distributed);\n" }{MPLTEXT 1 0 16 "fac:= fac1*ffac;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "[solve](eqq,\{q\}): solq:= subs(sqr t(Delta0)=sqrt(Delta)*16*S*(v-w), %):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "op(solq[1]): valq:= collect(%, Delta, factor);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "normal(subs(eli[1], valq, p) ): \n" }{MPLTEXT 1 0 75 "subs(sqrt(Delta)=sqrt(DELTA), valDelta, valS2 , sqrt(DELTA)=sqrt(Delta),%):\n" }{MPLTEXT 1 0 41 "tmp1:= xcollect(%, \+ sqrt(Delta), factor); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "a pbpcS:= subs(defR, apbpc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "(subs)(apbpcS, tmp1): tmp2:= xcollect(%, sqrt(Delta), factor):\n" }{MPLTEXT 1 0 63 "rationalize(%): (expand@numer)(%)/denom(%): collect( %, Delta):\n" }{MPLTEXT 1 0 75 "subs(sqrt(Delta)=sqrt(DELTA), valDelta , valS2, sqrt(DELTA)=sqrt(Delta),%):\n" }{MPLTEXT 1 0 41 "valp:= p=col lect(%, sqrt(Delta), factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "subs(valp, valq, pp): tmp14:= collect(evalmm(%*denom(%[1])*(c^2+ a^2-b^2)), sqrt(Delta));;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "collect(add(k,k=tmp14), sqrt(Delta), factor): 1/subs(apbpcS,%):\n" }{MPLTEXT 1 0 63 "rationalize(%): (expand@numer)(%)/denom(%): collect (%, Delta):\n" }{MPLTEXT 1 0 75 "subs(sqrt(Delta)=sqrt(DELTA), valDelt a, valS2, sqrt(DELTA)=sqrt(Delta),%):\n" }{MPLTEXT 1 0 32 "collect(%, \+ sqrt(Delta), factor):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "multiplica t:= collect(numer(%), sqrt(Delta), factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "(expand@evalmm)(multiplicat* tmp14): collect(%, De lta, factor):;\n" }{MPLTEXT 1 0 75 "subs(sqrt(Delta)=sqrt(DELTA), valD elta, valS2, sqrt(DELTA)=sqrt(Delta),%):\n" }{MPLTEXT 1 0 40 "tmp15:= \+ collect(%, sqrt(Delta), factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 112 "evalmm(tmp15/r otp(c^2+a^2-b^2)/2/r*(a^2+b^2-c^2)/((-c^2-a^2+b^2)*w*v+(-b^2-c^2+a^2)* u*w+2*u*v*c^2)): factor(%):\n" }{MPLTEXT 1 0 86 "tmp16:= map(U-> colle ct(U, [sqrt(Delta),S], V-> collect(V,pu,factor,distributed)), %);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "collect(add(k,k=tmp16), [Del ta, S], factor);xcs(%/S,u,v,w): map(factor,%);\n" }{MPLTEXT 1 0 22 "(f actor@subs)(v=w, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "tmp16[1]; simplify(%, \{a^2 +b^2-c^2=Sc,a^2-b^2+c^2=Sb\});\n" }{MPLTEXT 1 0 42 "collect(%, [sqrt(D elta),S,Sb,Sc], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "valDelta: simplify(%, \{a^2+b^2-c^2=Sc*2,a^2-b^2+c^2=Sb*2,-a^2+b^2+c^ 2=Sa*2\});\n" }{MPLTEXT 1 0 46 "collect(%, [S,Sa,Sb,Sc], factor, distr ibuted);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "(reduce@normal@ orthocorr)(pX(112)); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "(factor@subs)(valS2, zipq(pu,pX(110)), valDelta):\n" }{MPLTEXT 1 0 59 "subs(apbpcS, %): valsqrt:= simplify(map(sqrt,%), symbolic);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 156 "(reduce@factor@subs)(sqrt (Delta)=-sqrt(Delta), valsqrt, zipq(pu,pX(110)), tmp15); (reduce@facto r@subs)(valsqrt, zipq(pu,pX(110)), tmp16); ency(%%), ency(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 31 "Orthocorr d'un point \303\240 l'infini" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "(reduce@factor@orthocorr)([x,y,-x-y]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 " " {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 5 "Orion" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "lescev:= map(reduce, [les_ce vians(pp)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "for k to 3 \+ do" }}{PARA 0 "" 0 "" {TEXT 210 22 "tmp est la droite A'B'" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "tmp:= wedge(seq(lescev[j], j=\{1,2,3\} minu s\{k\}));" }}{PARA 0 "" 0 "" {TEXT 210 26 "tmq est la perpendiculaire" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "(factor@orthopoint)(wedge(tmp, p X(2))): tmq:= (factor@wedge)(%, pp);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "(factor@wedge)(tmp,tmq):\n" }{MPLTEXT 1 0 70 "pp||(op(k,[a,b,c]) ):= (reduce@factor)(bary2norm(%)*2-bary2norm(pp)); \n" }{MPLTEXT 1 0 11 "od: k:='k':" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "Matrix([ wedge(pa,ppa),wedge(pb,ppb),wedge(pc,ppc)]): Rank(%);\n" }{MPLTEXT 1 0 49 "tmz:= (reduce@factor@wedge)(Row(%%,1),Row(%%,2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "orion:= unapply(tmz,p,q,r)@OP: 3: % ,(ency@reduce@factor@orion)(pX(%)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 34 "m\303\251tho de acc\303\251l\303\251r\303\251e. Donne pareil..." }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 31 "matcev(pp); tmp:= Adjoint(%); \n" }{MPLTEXT 1 0 50 "(reduce@FActor)( ortho_sym(Row(%,1)).Vector(pp));\n" }{MPLTEXT 1 0 67 "[seq]((reduce@FActor)( ortho_sym(Row(tmp,j)).Vector(pp)), j=1..3): \n" }{MPLTEXT 1 0 69 "mytrii:= Matrix(%): (reduce@FActor@persp)(%, mun ); zipd(orion(pp),%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "tokim(orion, px)[1]/x/rotp (a^2): expand(%): collect(%, x, U->collect(U,px,factor));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "orion(pp)[1]; collect(%/p/rotp(p), \+ [a,b,c], factor);\n" }{MPLTEXT 1 0 54 "map(U-> p*U,%); orion2:= unappl y([rot3](%), p,q,r)@OP;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " zipd(orion(pp),orion2(pp));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "(ency@orion)(pX(3));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "tmp:= collect(orion(pX( 15))[1], R, factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "val R4,R*map(id^2, defR2): collect(subs(%, tmp),R,simplify):\n" }{MPLTEXT 1 0 30 "factor(%): tmp1:= elimifac(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "collect(tmp1*128, [R], factor@(U->simplify(U, a2toAA) ) ):\n" }{MPLTEXT 1 0 37 "xcollect(%, [R,sqrt(3),AA], factor);\n" } {MPLTEXT 1 0 61 "tmp2:= subs(AAtoa2, %); ency(%), length(convert(%, st ring));\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "xcollect(tmp2/ 64,[R, sqrt(3)], (U->map(abctax,U))@factor);\n" }{MPLTEXT 1 0 36 "ency (%), length(convert(%, string));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 278 "a^2*(a^14-6*(b^2+c^2)*a^12+(15*b^4+24*b^2*c^2+15*c^4)*a^10-( 20*b^6+31*b^4*c^2+31*b^2*c^4+20*c^6)*a^8+(5*(3*b^4+5*b^2*c^2+3*c^4))*( b^4-b^2*c^2+c^4)*a^6-(b^2+c^2)*(6*b^8-12*b^6*c^2+b^4*c^4-12*b^2*c^6+6* c^8)*a^4+(b^8-4*b^4*c^4+c^8)*(b^2-c^2)^2*a^2-(b^2+c^2)*(b^2-c^2)^4*b^2 *c^2)*R;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 223 "a^3*b*c*(a^12- 3*(b^2+c^2)*a^10+2*(b^4-3*b^2*c^2+c^4)*a^8+(2*b^6+25*b^4*c^2+25*b^2*c^ 4+2*c^6)*a^6-(3*b^8+19*b^6*c^2+21*b^4*c^4+19*b^2*c^6+3*c^8)*a^4+(b^2+c ^2)*(b^4+3*b^2*c^2+c^4)*(b^2-c^2)^2*a^2+(b^2-c^2)^4*b^2*c^2)*sqrt(3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 540 "tmpp:= \"a^2*(a^14-6*(b^2+c^2)*a^12+(15*b^4+24* b^2*c^2+15*c^4)*a^10-(20*b^6+31*b^4*c^2+31*b^2*c^4+20*c^6)*a^8+(5*(3*b ^4+5*b^2*c^2+3*c^4))*(b^4-b^2*c^2+c^4)*a^6-(b^2+c^2)*(6*b^8-12*b^6*c^2 +b^4*c^4-12*b^2*c^6+6*c^8)*a^4+(b^8-4*b^4*c^4+c^8)*(b^2-c^2)^2*a^2-(b^ 2+c^2)*(b^2-c^2)^4*b^2*c^2)*R-a^3*b*c*(a^12-3*(b^2+c^2)*a^10+2*(b^4-3* b^2*c^2+c^4)*a^8+(2*b^6+25*b^4*c^2+25*b^2*c^4+2*c^6)*a^6-(3*b^8+19*b^6 *c^2+21*b^4*c^4+19*b^2*c^6+3*c^8)*a^4+(b^2+c^2)*(b^4+3*b^2*c^2+c^4)*(b ^2-c^2)^2*a^2+(b^2-c^2)^4*b^2*c^2)/sqrt(3)\"; ency(parse(tmpp)), lengt h(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 538 "tmpp:= \"a/b/c*(a ^14-6*(b^2+c^2)*a^12+(15*b^4+24*b^2*c^2+15*c^4)*a^10-(20*b^6+31*b^4*c^ 2+31*b^2*c^4+20*c^6)*a^8+(5*(3*b^4+5*b^2*c^2+3*c^4))*(b^4-b^2*c^2+c^4) *a^6-(b^2+c^2)*(6*b^8-12*b^6*c^2+b^4*c^4-12*b^2*c^6+6*c^8)*a^4+(b^8-4* b^4*c^4+c^8)*(b^2-c^2)^2*a^2-(b^2+c^2)*(b^2-c^2)^4*b^2*c^2)*R+a^2*(a^1 2-3*(b^2+c^2)*a^10+2*(b^4-3*b^2*c^2+c^4)*a^8+(2*b^6+25*b^4*c^2+25*b^2* c^4+2*c^6)*a^6-(3*b^8+19*b^6*c^2+21*b^4*c^4+19*b^2*c^6+3*c^8)*a^4+(b^2 +c^2)*(b^4+3*b^2*c^2+c^4)*(b^2-c^2)^2*a^2+(b^2-c^2)^4*b^2*c^2)/sqrt(3) \"; ency(parse(tmpp)), length(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "parse(tmpp);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "(expand@ barymul)( pX(2059), pX(2058)): (reduce@factor@simplify@subs)(valR4,%); ;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "www:=2058: fintax(tmp2); length(%); parse(%%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "www:=2061;orion(pX(40))[1]: \+ tmp:= factor(%)/a/b/c: ency(%);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "tmp: fintax(%); length(convert(%, string)), parse(%);;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 " " {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 53 "Force brute p our Feueurbach = pas de quoi se fatiguer" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "cevaconditan_xyr := 4*r1^2*r2^2-(r1^2+r2^2-x2^2-y2^2- x1^2-y1^2+2*y1*y2+2*x1*x2)^2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "bary(a,b,c): val1:= x1=%[1], y1=%[2], r1=f_r(a,b,c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "f_nine := proc (a, b, c) options op erator, arrow; (b^2+c^2)*a^2-(b-c)^2*(b+c)^2 end proc:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "(normal@bary)(%(a,b,c),%(b,c,a),%(c,a,b)): val2 := x2=%[1], y2=%[2], r2=f_R(a,b,c)/2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "subs(val1, val2, conditan_xyr): tmp:= simplify(%, rul e123); length(%%);" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 43 "Conditio n pour les ceviennes ceva(v,w,qqq) " }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "A' est donn\303\251 par [0,v,w]" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "ceva:= proc(va,wa, qq::uneval) local paa,pbb,pcc, pxx, tmp, tm q, toto; \n" }{MPLTEXT 1 0 39 "paa, pbb,pcc:= Vector(bary(0,va,wa)), \+ \n" }{MPLTEXT 1 0 79 " Vector(bary(rot(wa),0,rot(va))), Vector(bary( rot(rot(va)),rot(rot(wa)),0));\n" }{MPLTEXT 1 0 97 "toto:= (CrossProdu ct(Vector(za),paa)),CrossProduct(Vector(zb),pbb),CrossProduct(Vector(z c),pcc);\n" }{MPLTEXT 1 0 25 "tmp:= Det(Matrix([%])); \n" }{MPLTEXT 1 0 15 "if tmp=0 then \n" }{MPLTEXT 1 0 78 " tmq:=convert(CrossProduct(t oto[1],toto[2]), list); tmq:= (reduce@factor)(%);\n" }{MPLTEXT 1 0 57 " subs(xa=1,ya=1,xb=1,yb=1,xc=1,yc=1, convert(tmq, set));\n" }{MPLTEXT 1 0 67 " if nops(%)=1 then assign(qq, [seq](coeff(tmq[1],k),k=[xa,xb, xc]))\n" }{MPLTEXT 1 0 22 " else assign(qq, tmq)\n" }{MPLTEXT 1 0 5 " \+ fi;\n" }{MPLTEXT 1 0 22 "else assign(qq, FAIL)\n" }{MPLTEXT 1 0 17 "fi ; evalb(tmp=0)\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "ceva(1,1,qqq), qqq;\n" }{MPLTEXT 1 0 19 "ceva(b,c,qqq ), qqq;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 15 "Miquel pro perty" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 38 "Trois points sont les pi eds de [u,v,w]" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "aaa:=evalmm((v*zb +w*zc)/(v+w));\n" }{MPLTEXT 1 0 32 "bbb:=evalmm((u*za+w*zc)/(u+w));\n" }{MPLTEXT 1 0 31 "ccc:=evalmm((u*za+v*zb)/(u+v));" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 52 "On \303\251crit les trois cercles. cirC passe p ar a', b', C" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "[(circ@op)(b bb)*(u+w), (circ@op)(aaa)*(v+w), (circ@op)(zc), (circ@op)(zx)]:\n" } {MPLTEXT 1 0 28 "cirC:=Matrix(map(evalmm,%));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "RowOperation(%,[1,3],-w, inplace=true):\n" }{MPLTEXT 1 0 37 "RowOperation(%,1,1/u, inplace=true):\n" }{MPLTEXT 1 0 40 "RowO peration(%,[2,3],-w, inplace=true):\n" }{MPLTEXT 1 0 36 "RowOperation( %,2,1/v, inplace=true):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "cirC:=ma p(U-> collect(factor(U), [u,v,w]), cirC);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "[(circ@op)(za), (circ@op)(ccc)*(u+v), (circ@op)(bbb) *(u+w), (circ@op)(zx)]:\n" }{MPLTEXT 1 0 28 "cirA:=Matrix(map(evalmm,% ));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "RowOperation(%,[3,1],-u, inp lace=true):\n" }{MPLTEXT 1 0 37 "RowOperation(%,3,1/w, inplace=true): \n" }{MPLTEXT 1 0 40 "RowOperation(%,[2,1],-u, inplace=true):\n" } {MPLTEXT 1 0 36 "RowOperation(%,2,1/v, inplace=true):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "cirA:=map(U-> collect(factor(U), [u,v,w]), cirA) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "[(circ@op)(ccc)*(u+v), (circ@op)(zb), (circ@op )(aaa)*(v+w), (circ@op)(zx)]:\n" }{MPLTEXT 1 0 28 "cirB:=Matrix(map(ev almm,%));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "RowOperation(%,[3,2],- v, inplace=true):\n" }{MPLTEXT 1 0 37 "RowOperation(%,3,1/w, inplace=t rue):\n" }{MPLTEXT 1 0 40 "RowOperation(%,[1,2],-v, inplace=true):\n" }{MPLTEXT 1 0 36 "RowOperation(%,1,1/u, inplace=true):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "cirB:=map(U-> collect(factor(U), [u,v,w]), cirB );" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 74 "On agit sur la premi\303 \250re colonne : mat les regroupe, mat1 =0, mat2=mat+mat1" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 147 "rule1,rule2,rule3:= xc^2+yb^2-2*yc *yb-2*xc*xb+xb^2+yc^2 = a^2,xa^2+xc^2+yc^2+ya^2-2*yc*ya-2*xa*xc = b^2, xa^2-2*xa*xb+xb^2+ya^2-2*yb*ya+yb^2 = c^2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "mat:= Matrix([seq](Column(cir||k,1), k=[A,B,C]));# (lhs-rhs)(rule1)*v/(v+w);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "mat1:= Matrix(4,3,\{(3,2)=(lhs-rhs)(rule1)*v/(v+w),(2,3)=(lhs-rhs) (rule1)*w/(v+w),\n" }{MPLTEXT 1 0 63 "(1,3)=(lhs-rhs)(rule2)*w/(u+w),( 3,1)=(lhs-rhs)(rule2)*u/(u+w),\n" }{MPLTEXT 1 0 64 "(1,2)=(lhs-rhs)(ru le3)*v/(u+v),(2,1)=(lhs-rhs)(rule3)*u/(u+v)\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "mat2:= map(U-> collect(factor(U), [a,b,c], fac tor), mat+mat1); " }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "cirA: = ;\n" }{MPLTEXT 1 0 52 "ci rB:= :\n" }{MPLTEXT 1 0 51 "cirC:= :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "eqca:= collect( (Det(cirA)-Det(cirB))*(u+ v)*(u+w)*(v+w), [X,Y], factor):\n" }{MPLTEXT 1 0 73 "eqcb:= collect( ( Det(cirB)-Det(cirC))*(u+v)*(u+w)*(v+w), [X,Y], factor):\n" }{MPLTEXT 1 0 73 "eqcc:= collect( (Det(cirC)-Det(cirA))*(u+v)*(u+w)*(v+w), [X,Y] , factor):;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 42 "Prouvant que les \+ trois cercles concourrent" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "eli:= \+ eliminate(\{eqca,eqcb,eqcc\},\{X, Y\}): eli[2];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "(indets@denom@subs)(eli[1], X); (denom@subs)(e li[1], X)/(denom@subs)(eli[1], Y);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "leX:=collect( (numer@subs)(eli[1], X), [xa,xb,xc,ya,y b,yc], A@factor, distributed);\n" }{MPLTEXT 1 0 83 "leY:=collect( (num er@subs)(eli[1], Y), [xa,xb,xc,ya,yb,yc], A@factor, distributed);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "(eval@subs)(xa=1,xb=1,xc=1, \+ A=id, leX)/(denom@subs)(eli[1], Y): simplify(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "[seq](-coeff(leX,k), k=[xa,xb,xc]): Miquel0:= (eval@subs)(A=id, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 96 "c ollect(Miquel0[1]/(u+w)/(u+v)/(v+w), [a], proc(U) map(collect, factor( U), [b,c], factor) end):\n" }{MPLTEXT 1 0 34 "Miquel:= [%, rot(%), rot (rot(%))];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "my_miquel:= \+ proc(fu) local Miquel; \n" }{MPLTEXT 1 0 192 "Miquel := [-v*w*(u+w)*(u +v)*a^4/(v+w)+((u+v)*w*b^2+v*(u+w)*c^2)*u*a^2, -w*u*(u+v)*(v+w)*b^4/(u +w)+((v+w)*u*c^2+w*(u+v)*a^2)*v*b^2, -u*v*(v+w)*(u+w)*c^4/(u+v)+((u+w) *v*a^2+u*(v+w)*b^2)*w*c^2];\n" }{MPLTEXT 1 0 67 "(factor@reduce@subs)( u=fu(a,b,c),v=fu(b,c,a),w=fu(c,a,b), Miquel);\n" }{MPLTEXT 1 0 4 "end: " }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 60 "Quel est le point dont le c entre de gravit\303\251 est le Miquel ?" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "_EnvExplicit:= true: eqs:= evalms(Miquel-k*[1,1,1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "eqs1:= subs(ency_, w=1, eqs): eli:= eliminate(%, k):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "valuv:= [solve](eli[2]): nops(%); map(length, valuv);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "valuv[1], valuv[5], valuv[6] , valuv[7];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "evalf(valuv[3]); eva lf(valuv[4]);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "evalf(sub s(valuv[2], w=1, ency_, u/(u+v+w)*fac_ency),20); dichot(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "1: f_insc: my_miquel(%): %[1]: encyclo(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "2: f_grav: my_miquel(%): %[1 ]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "3: f_circ : my_miquel(%): %[1]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "4: f_orth: my_miquel(%): %[1]: encyclo(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 93 "5: f_nine := proc (a, b, c) \+ options operator, arrow; (b^2+c^2)*a^2-(b-c)^2*(b+c)^2 end proc:\n" } {MPLTEXT 1 0 69 "5: f_nine(a,b,c): encyclo(%); f_nine: my_miquel(%): % [1]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "6: f_sy mm(a,b,c): encyclo(%); \n" }{MPLTEXT 1 0 42 "6: f_symm: my_miquel(%): \+ %[1]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "7: f_g erg(a,b,c): encyclo(%); \n" }{MPLTEXT 1 0 42 "7: f_gerg: my_miquel(%): %[1]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 72 "Conjugu\303\251s isogonaux : le cercle des six projections est centr \303\251 au milieu" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "is1:= \+ bary(x,y,z); is2:= bary(u,v,w);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "dab:= Det(Matrix([za,zb,zx]));; dbc:= Det(Matrix([zb,zc,zx])); dca:= Det(Matrix([zc,za,zx]));;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "(factor@Det@Matrix)([map2(coeff, dab,[X,Y,Z]), is1-zx, [0,0,1 ]]):\n" }{MPLTEXT 1 0 99 "pt10:= (factor@solve)(\{%, dab\},\{X,Y\}): p t1:= collect(simplify(%, rule123), [xa,ya,xb,yb,xc,yc]): \n" } {MPLTEXT 1 0 66 "(factor@Det@Matrix)([map2(coeff, dbc,[X,Y,Z]), is1-zx , [0,0,1]]):\n" }{MPLTEXT 1 0 99 "pt20:= (factor@solve)(\{%, dbc\},\{X ,Y\}): pt2:= collect(simplify(%, rule123), [xa,ya,xb,yb,xc,yc]):\n" }{MPLTEXT 1 0 66 "(factor@Det@Matrix)([map2(coeff, dca,[X,Y,Z]), is1-z x, [0,0,1]]):\n" }{MPLTEXT 1 0 98 "pt30:= (factor@solve)(\{%, dca\},\{ X,Y\}): pt3:= collect(simplify(%, rule123), [xa,ya,xb,yb,xc,yc]):\n" }{MPLTEXT 1 0 65 "(factor@Det@Matrix)([map2(coeff, dab,[X,Y,Z]), is2-z x, [0,0,1]]):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 54 "Les projections d\303\251pendent de la forme du triangle... \n" }{TEXT 210 75 "Si ell es \303\251taient ceviennes, elles ne d\303\251pendraient que du point de Ceva... " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "subs(pt2,X);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 95 "subs(p t10, circ(X,Y)): cc1:= reduce(factor(%)):subs(pt20, circ(X,Y)): cc2:= \+ reduce(factor(%)):\n" }{MPLTEXT 1 0 64 "subs(pt30, circ(X,Y)): cc3:= r educe(factor(%)): cc6:= circ(X,Y):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "tmp:= ( Det@Matrix)([cc1,cc2,cc3,cc6]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "tmp1:= factor(tmp):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "map(length, convert(tmp1, list)); remove(has,tmp1, \{X,Y\});" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "tmp2:= collect(select(has,tm p1,\{X,Y\}), [X,Y], factor):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "(factor@solve)(map2(diff, tmp2, \{X,Y\}), \{X,Y\}): tmq:= simpli fy(subs(%, [X,Y]), rule123);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "qqq:= [seq](coeff(tmq[1],k), k=[xa,xb,xc]); (normal@convert)(%, \+ `+`); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "zalor:= map(colle ct, reduce(qqq), [a,b,c], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "evalms(zalor-k*subs([x=u,y=v,z=w], zalor));\n" } {MPLTEXT 1 0 24 "# eliminate(%, \{u,v,w\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "(reduce@normal@subs)([x=a^2/x,y=b^2/y,z=c^2/z], za lor):\n" }{MPLTEXT 1 0 39 "zalor-map(collect, %, [a,b,c], factor);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 115 "(bary(x,y,z)+bary(a^2/x,b^ 2/y,c^2/z))/2: simplify(%): map(collect, reduce(%), [xa,xb,xc,a,b,c], factor); zalor[1];" }}}{EXCHG {PARA 0 "> " 0 "" {TEXT 210 75 "(bary@o p)(zalor)-subs(pt1, zx): (factor@simplify)(add(k^2, k=%), rule123):\n" }{TEXT 210 110 "(sqrt@map)(collect, numer(%), [a,b,c], factor)/(sqrt@ denom)(%) assuming x+y+z>0, (a^2*y*z+b^2*x*z+c^2*y*x)>0;\n" }{TEXT 210 33 "R_isog:= unapply(%, a,b,c,x,y,z);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 219 "R_isog := proc (a, b, c, x, y, z) options operator, arrow; (1/2)*sqrt(-(a^2*y*z-z*(z+y)*b^2-y*(z+y)*c^2)*(z*(z+x)*a^2-b^2 *x*z+x*(z+x)*c^2)*(y*(y+x)*a^2+x*(y+x)*b^2-c^2*y*x))/((x+y+z)*(a^2*y*z +b^2*x*z+c^2*y*x)) end proc;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "simplify(subs(pt1,zx), rule123);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "1: fu:= f_insc: R_isog(a,b,c ,fu(a,b,c), fu(b,c,a), fu(c,a,b));\n" }{MPLTEXT 1 0 87 "(reduce@factor @subs)(x=fu(a,b,c), y=fu(b,c,a), z=fu(c,a,b), zalor); %[1]: encyclo(%) ; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "2: fu:= f_grav: a^2/ fu(a,b,c): encyclo(%); \n" }{MPLTEXT 1 0 53 "rayon=R_isog(a,b,c,fu(a,b ,c), fu(b,c,a), fu(c,a,b));\n" }{MPLTEXT 1 0 71 "subs(x=fu(a,b,c), y=f u(b,c,a), z=fu(c,a,b), zalor): %[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "3: fu:= f_circ: a^2/fu(a,b,c): encyclo(%); \+ \n" }{MPLTEXT 1 0 72 "rayon= (factor@simplify@R_isog)(a,b,c,fu(a,b,c), fu(b,c,a), fu(c,a,b)) \n" }{MPLTEXT 1 0 64 "assuming a>0, b>0, c>0: s implify(%) assuming a+b>c,b+c>a,c+a>b;\n" }{MPLTEXT 1 0 85 "(reduce@fa ctor@subs)(x=fu(a,b,c), y=fu(b,c,a), z=fu(c,a,b), zalor): %[1]: encycl o(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "5: fu:= f_nine: a^ 2/fu(a,b,c): encyclo(%); \n" }{MPLTEXT 1 0 71 "rayon=(simplify@factor@ R_isog)(a,b,c,fu(a,b,c), fu(b,c,a), fu(c,a,b)):\n" }{MPLTEXT 1 0 83 "s implify(%) assuming a+b+c>0, a+b-c>0: simplify(%) assuming a-b+c>0, -a +b+c>0; ``;\n" }{MPLTEXT 1 0 87 "(reduce@factor@subs)(x=fu(a,b,c), y=f u(b,c,a), z=fu(c,a,b), zalor): %[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "7: fu:= f_gerg: a^2/fu(a,b,c): encyclo(%); \+ \n" }{MPLTEXT 1 0 71 "rayon=(simplify@factor@R_isog)(a,b,c,fu(a,b,c), \+ fu(b,c,a), fu(c,a,b)):\n" }{MPLTEXT 1 0 85 "# simplify(%) assuming a+b +c>0, a+b-c>0: simplify(%) assuming a-b+c>0, -a+b+c>0; ``;\n" } {MPLTEXT 1 0 85 "(reduce@factor@subs)(x=fu(a,b,c), y=fu(b,c,a), z=fu(c ,a,b), zalor): %[1]: encyclo(%);" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" } }{SECT 1 {PARA 3 "" 0 "" {TEXT 213 19 "Triangle anticevien" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "pp; qa,qb,qc:= les_anticevs(pp);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "la0,lb0,lc0:= bary2sides(q a,qb,qc):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "factor(la0^2): map(sqrt, (factor@numer)(%))/ map(sqrt, (factor@denom)(%)): \n" } {MPLTEXT 1 0 44 "tmpla:= simplify(%): la,lb,lc:= rot3(tmpla);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "lb-rot(la): factor(%); lc-ro t(rot(la)): factor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 " " {TEXT 210 36 "Le centre de gravit\303\251 est tout simple" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "2: f_grav:evalmm(%(la,lb,lc)*qa+%(lb,lc,la )*qb+%(lc,la,lb)*qc): \n" }{MPLTEXT 1 0 26 "tmp:= (reduce@factor)(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "zipq(pp,pX1): (reduce@ factor@subs)(%, tmp); %[1]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "zipq(pp,pX2): (reduce@factor@subs)(%, tmp); %[1]: enc yclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "zipq(pp,pX6): ( reduce@factor@subs)(%, tmp); %[1]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 41 "Le ce ntre circonscrit n'est pas si louche" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "3: f_circ: tmp0:= evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*q b+%(lc,la,lb)*qc): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "inde ts(tmp0, csgn(anything)): \n" }{MPLTEXT 1 0 58 "siderels:= \{seq\}(k=c at(csgn, convert(op(k),string)),k=%);\n" }{MPLTEXT 1 0 34 "siderels2:= map(U->rhs(U)^2=1, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "(reduce@factor@simplify) (subs(siderels,tmp0), siderels2):\n" }{MPLTEXT 1 0 80 "tmp:= map(colle ct,%,[p,q,r], factor, distributed); map(length,%),map(length,%%);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "Plus visuel, mais pas plus simple " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "tmp[1]: collect(%/rotp(p), [p,q ,r], factor, distributed); length(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "zipq(pp,pX1): (reduce@factor@subs)(%, tmp); %[1]: enc yclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "zipq(pp,pX2): ( reduce@factor@subs)(%, tmp); %[1]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "zipq(pp,pX6): (reduce@factor@subs)(%, tmp); %[1 ]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 " " }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "1: f_insc: tmp0:= evalmm(%(la,lb,lc)*qa+%(lb,lc,la )*qb+%(lc,la,lb)*qc):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "tm p:= (factor@reduce@simplify)(subs(siderels,tmp0), siderels2);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "map(length,tmp);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 60 "D\303\251pend de la zone dans le triangl e : medial, et les 3 autres" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "(fac tor@subs)(csgnp=1, csgnr=1, csgnq=1, tmp):\n" }{MPLTEXT 1 0 70 "quoi:= (factor@subs)(`csgnp+q-r`=1, `csgnp-q+r`=1, `csgnp-q-r`=-1, %);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "zipq(pp,pX1): (factor@subs)( %, quoi):\n" }{MPLTEXT 1 0 64 "simplify(%) assuming a>0, b>0, c>0, a+b -c>0, a-b+c>0, -a+b+c>0:\n" }{MPLTEXT 1 0 19 "tmqq:= (factor)(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "evalmm(-tmqq/2/rotp(sqrt(a)* sqrt(a+b-c)) ): expand(%); \n" }{MPLTEXT 1 0 62 "(factor@simplify@subs )(ency_, evalmm(%/sqrt(2))); encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "zipq(pp,pX2): (factor@subs)(%, quoi): simplify(%) as suming a>0, b>0, c>0;\n" }{MPLTEXT 1 0 22 "reduce(%); encyclo(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "zipq(pp,pX6): (factor@subs)( %, quoi): simplify(%) assuming a>0, b>0, c>0;\n" }{MPLTEXT 1 0 22 "red uce(%); encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 33 "Le triangle c\303\25 1vien de gravit\303\251 (2)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "f_grav(a,b,c): encyclo(%); qa,qb,qc:= les_cevians(f_grav); la,lb,l c:= bary2sides(qa,qb,qc);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 47 "Le \+ rayon du cinscrit est lui aussi divis\303\251 par 2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "rapport_des_rayons=simplify(f_r(la,lb,lc)/f_r(a,b, c));" }}{PARA 0 "" 0 "" {TEXT 210 14 "Spieker center" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "1: f_insc: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+% (lc,la,lb)*qc): tmp:= (reduce@factor)(%);\n" }{MPLTEXT 1 0 19 "tmp[1]: encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "Le centre de gra vit\303\251 ne bouge pas" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "2: f_gr av:evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:= (reduc e@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 40 "Le rayon du circonscrit est divis\303\25 1 par 2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "rapport_des_rayons=simpl ify(f_R(la,lb,lc)/f_R(a,b,c));" }}{PARA 0 "" 0 "" {TEXT 210 52 "Le cen tre du circonscrit est X(5), nine point center" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "3: f_circ: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc, la,lb)*qc): tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 72 "tmp[1]: ency clo(%); f_nine:= unapply(collect(tmp[1], a, factor), a,b,c);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 66 "L'orthocentre du triangle des milieux est le centre du circons crit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "4: f_orth: evalmm(%(la,lb,l c)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:= (reduce@factor)(%);\n" } {MPLTEXT 1 0 19 "tmp[1]: encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "5: f_nine: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc, la,lb)*qc): tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: ency clo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "6: f_symm: eval mm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor) (%):\n" }{MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "7: f_gerg: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb +%(lc,la,lb)*qc): map(sort,%, [b]): \n" }{MPLTEXT 1 0 52 "(reduce@fact or)(-%): tmp:= map(sort@expand,%, [a]):\n" }{MPLTEXT 1 0 26 "factor(%[ 1]): encyclo(%); " }}}}{PARA 0 "" 0 "" {TEXT 210 71 "9 est gergonne de c\303\251vien(G) en plus de symmedian of excentral triangle" }} {SECT 1 {PARA 3 "" 0 "" {TEXT 213 56 "Le triangle c\303\251vien de inc enter (1) : 1,3,5,6,7=nouveaux" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "f_insc(a,b,c): encyclo(%); qa,qb,qc:= les_cevians(f_insc); " } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "la,lb,lc:= bary2sides(qa,q b,qc): selectremove(has,factor(la^2), a^3): \n" }{MPLTEXT 1 0 72 "la:= sqrt(collect(%[1], a, factor))*sqrt(%[2]) assuming a>0, b>0, c>0; \n" }{MPLTEXT 1 0 28 "lb,lc:= rot(%), rot(rot(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 " (evalf@subs)(ency_, [f_r(a,b,c), f_R(a,b,c)]); map(1/id^2, %);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Rayon du cinscrit ???" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "rapport_des_rayons= (evalf@subs)(ency_, (f_ r(la,lb,lc)/f_r(a,b,c)));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 22 "ins crit=Nouveau centre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "1: f_insc: e valmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=%:\n" } {MPLTEXT 1 0 59 "factor(tmp[1]/sqrt(a*b*c)*((a+b)*(b+c)*(c+a))): encyc lo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 17 "Centre de gravit\303\2 51" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "2: f_grav:evalmm(%(la,lb,lc)* qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:= (reduce@factor)(%):\n" } {MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Nouveau centre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "rapport_ des_rayons=(evalf@subs)(ency_, f_R(la,lb,lc)/f_R(a,b,c)); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "3: f_circ: evalmm(%(la,lb,lc)*qa+%(lb,lc,la )*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 40 "co llect(tmp[1], a, factor): encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 56 "L'orthocentre de incentral est Miquel assoc of incenter " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "4: f_orth: evalmm(%(la,lb,lc)*q a+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:= (reduce@factor)(%);\n" } {MPLTEXT 1 0 19 "tmp[1]: encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Nouveau centre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "5: f_nine : evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@f actor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "6: f_symm: evalmm(%(la,lb,lc)*qa+%(lb,lc, la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 20 " tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "7: \+ f_gerg: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): \n" } {MPLTEXT 1 0 26 "qqq:= map(sort, %, [b]): \n" }{MPLTEXT 1 0 69 "(reduc e@factor)(-%): tmp:= map(sort@expand,%, [a]): encyclo(tmp[1]); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 53 "Le triangle c\303\251vien de circumcenter (3) = rien de bien" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "f_circ(a,b,c): ency clo(%); qa,qb,qc:= les_cevians(f_circ); ## masse =1 " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "la,lb,lc:= bary2sides(qa,qb,qc):" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 95 "factor(la^2): map(sqrt, (f actor@numer)(%))/ map(sqrt, (factor@denom)(%)): tmpla:= simplify(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "la:= (eval@subs)(csgn=1, tmpla): lb,lc:= rot(la), rot(rot(la)):\n" }{MPLTEXT 1 0 54 "(simplify @subs)(ency_, [la,lb,lc]); la:=-la: lc:=-lc:\n" }{MPLTEXT 1 0 36 "(sim plify@subs)(ency_, [la,lb,lc]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Rayon du cinscrit ?? ?" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "rapport_des_rayons= (evalf@sub s)(ency_, f_r(la,lb,lc)/f_r(a,b,c));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 "Inscrit : nouveau centre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "1: f_insc: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp: =reduce(%):\n" }{MPLTEXT 1 0 39 "factor(tmp[1]/sqrt(a*b*c)): encyclo(% );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 27 "Centre de gravit\303\251 : nouveau" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "2: f_grav:evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+ %(lc,la,lb)*qc): tmp:= (reduce@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1 ]: encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 11 "Circonscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "rapport_des_rayons=(evalf@subs)(e ncy_, f_R(la,lb,lc)/f_R(a,b,c));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "3: f_circ: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp: =(reduce@factor)(%):\n" }{MPLTEXT 1 0 40 "collect(tmp[1], a, factor): \+ encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "L'orthocentre " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "4: f_orth: evalmm(%(la,lb,lc)*qa+ %(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:= (reduce@factor)(%);\n" }{MPLTEXT 1 0 19 "tmp[1]: encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 " Nouveau centre" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "5: f_nine: evalmm (%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(% ):\n" }{MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "6: f_symm: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+% (lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: \+ encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 84 "7: f_gerg: evalm m(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): map(sort,%, [b]): \n" }{TEXT 210 39 "tmp:= map(sort@expand,%, [a]): tmp[1]:\n" }{TEXT 210 31 "encyclo(%); ## vraiment moche" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 50 "Le triangle cevien de orthocenter (4) : quatre cas" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "fu:= f_orth: fu(a,b,c): encyclo(%); qa,qb,qc:= (op@factor@[les_cevians])(fu); ## masse =1 " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "(factor@[bary2sides])(qa,qb,qc): la ,lb,lc:= (op@simplify)(%) assuming a>0, b>0, c>0;" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 51 "les_vabs:= [op@indets]([la,lb,lc], abs(anyth ing));\n" }{MPLTEXT 1 0 50 "les_signes:= (eval@subs)(ency_, map(csgn@o p, %));\n" }{MPLTEXT 1 0 64 "quat:= proc(quoi,ou) local my_signes; my_ signes:= les_signes; \n" }{MPLTEXT 1 0 45 "if ou=A then my_signes[ 1]:= -my_signes[1]\n" }{MPLTEXT 1 0 45 "elif ou=B then my_signes[2]:= -my_signes[2]\n" }{MPLTEXT 1 0 45 "elif ou=C then my_signes[3]:= -my _signes[3]\n" }{MPLTEXT 1 0 4 "fi;\n" }{MPLTEXT 1 0 68 "subs(seq(les_v abs[j]= op(les_vabs[j])*my_signes[j], j=1..3), quoi);\n" }{MPLTEXT 1 0 25 "(reduce@map)(factor, %);\n" }{MPLTEXT 1 0 6 "end: " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Rayon du cinscrit ???" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "rapport_des_rayons= (evalf@subs)(ency_, f_r(la,lb, lc)/f_r(a,b,c));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 45 "Inscrit et e xinscrits : les points (A,B,C,H)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "1: f_insc: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): t mp:=reduce(%):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "quat(tmp,0),quat( tmp,A),quat(tmp,B); quat(tmp,C): %[1]: encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 20 "Centre de gravit\303\251 : " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "2: f_grav:evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc, la,lb)*qc): tmp:= (reduce@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: en cyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 11 "Circonscrit" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 93 "3: 1/(f_R(la,lb,lc)/f_R(a,b,c))^2: \+ tmp:= (factor@simplify@expand)(%) assuming a>0, b>0, c>0:\n" }{MPLTEXT 1 0 29 "rapport_des_rayons=sqrt(1/%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 102 "3: f_circ: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc ,la,lb)*qc): simplify(%) assuming a>0, b>0, c>0: \n" }{MPLTEXT 1 0 25 "tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 40 "collect(tmp[1], a, fact or): encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "L'orthocent re " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 101 "4: f_orth: evalmm(%(la,lb,l c)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): simplify(%) assuming a>0, b>0, c >0:\n" }{MPLTEXT 1 0 45 "tmp:= (reduce@factor)(%): tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Centre d'Euler" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 102 "5: f_nine: evalmm(%(la,lb,lc)*qa+%(lb,lc,la) *qb+%(lc,la,lb)*qc): simplify(%) assuming a>0, b>0, c>0:\n" }{MPLTEXT 1 0 36 "simplify(%) assuming a>0, b>0, c>0:\n" }{MPLTEXT 1 0 45 "tmp: =(reduce@factor)(%): tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "6: f_symm: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc ,la,lb)*qc): \n" }{MPLTEXT 1 0 61 "simplify(%) assuming a>0, b>0, c>0: tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " } }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 54 "Il y a quatre Gergonnes dont Z osma transform of X(75)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "7: f_ger g: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): \n" } {MPLTEXT 1 0 44 "tmp:= simplify(%) assuming a>0, b>0, c>0: \n" } {MPLTEXT 1 0 22 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "for qui in [A,B,C,0] do reduce(quat(tmp,qui)): %[1]: \+ encyclo(%); print(%); od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "rot(tmp)[3]-tmp[1]: normal(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 22 "Le triangl e c\303\251vien de " }{TEXT 213 33 "gergonne (7) = in-touch triangle " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "fu:= f_gerg: fu(a,b,c): e ncyclo(%); qa,qb,qc:= (op@factor@[les_cevians])(fu); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "la,lb,lc:= (op@factor@[bary2sides]) (qa,qb,qc);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 11 "inscrit=177" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "1: f_insc: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc, la,lb)*qc): tmp:=%:\n" }{MPLTEXT 1 0 27 "factor(tmp[1]): encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Centre d e gravit\303\251=354" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "2: f_grav:e valmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:= (reduce@fa ctor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 13 "Circonscrit=1" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "rapport_des_rayons=(evalf@subs)(ency_, (f_R(la,lb,lc)/f_R(a,b,c) )^2); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "3: f_circ: evalmm(%(la,lb ,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n" } {MPLTEXT 1 0 40 "collect(tmp[1], a, factor): encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 26 "Orthocentre de intouch=65 " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "4: f_orth: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)* qb+%(lc,la,lb)*qc): tmp:= (reduce@factor)(%);\n" }{MPLTEXT 1 0 19 "tmp [1]: encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "NinePoints=9 42" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "5: f_nine: evalmm(%(la,lb,lc) *qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n" } {MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 28 "Symm de intouch est Gergonne" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "6: f_symm: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "7: f_gerg: evalmm(%(la,lb, lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): \n" }{MPLTEXT 1 0 42 "qqq:= map (sort, %, [b]): encyclo(qqq[1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 36 "Le triangle p \303\251dal de xxx (numerique)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "fu:= f_gerg: fu(a,b,c): encyclo(%); qa,qb,qc:= (op@factor@[les_c evians])(fu); ## masse =1 " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "(factor@[bary2sides])(qa,qb,qc): la,lb,lc:= (op@simplify)(%);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 21 "Inscrit et exinscrits" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "1: f_insc: tmp0:= evalmm(%(la,lb,lc)*qa+%(l b,lc,la)*qb+%(lc,la,lb)*qc):\n" }{MPLTEXT 1 0 18 "encyclo(tmp0[1]); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 20 "Centre de gravit\303\251 : " } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "2: f_grav: tmp0:= evalmm(%(la,lb,l c)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc):\n" }{MPLTEXT 1 0 19 "encyclo(tmp 0[1]); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 11 "Circonscrit" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "3: f_circ: tmp0:= evalmm(%(la,lb,lc )*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc):\n" }{MPLTEXT 1 0 20 "encyclo(tmp0 [1]); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "L'orthocentre " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "4: f_orth: tmp0:= evalmm(%(la,lb,lc )*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc):\n" }{MPLTEXT 1 0 19 "encyclo(tmp0 [1]); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Centre d'Euler" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "5: f_nine: tmp0:= evalmm(%(la,lb,lc )*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc):\n" }{MPLTEXT 1 0 19 "encyclo(tmp0 [1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "6: f_symm: tmp0: = evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc):\n" }{MPLTEXT 1 0 19 "encyclo(tmp0[1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "7: f_gerg: tmp0:= evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb) *qc):\n" }{MPLTEXT 1 0 18 "encyclo(tmp0[1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 45 "Excentral , le triangle des centres exinscrits" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "qa,qb,qc:=[-a,b,c],[a,-b,c],[a,b,-c]; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "qa,qb,qc:= evalmm(qa/convert(qa,`+`)), evalmm( qb/convert(qb,`+`)), evalmm(qc/convert(qc,`+`)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "map(factor, [bary2sides(qa,qb,qc)]):\n" } {MPLTEXT 1 0 66 "la,lb,lc:= (op@simplify)(%) assuming a+b-c >0, a-b+c> 0, -a+b+c>0; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "1: f_insc: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:= %:\n" } {MPLTEXT 1 0 73 "tmp[1]/sqrt(a)/sqrt(b)/sqrt(c)*sqrt(-a+b+c)*sqrt(a-b+ c)*sqrt(a+b-c)/2: \n" }{MPLTEXT 1 0 70 "xcollect( expand(%), [sqrt(-a +b+c),sqrt(a-b+c),sqrt(a+b-c)], factor):\n" }{MPLTEXT 1 0 26 "a*expand (%/a): encyclo(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "(com bine@simplify@subs)(ency_, f_r(la,lb,lc)^2): (normal@expand)(%): (simp lify@combine@expand@rationalize)(%);\n" }{MPLTEXT 1 0 66 "(combine@sim plify@subs)(ency_, f_r(a,b,c)^2); evalf(%%), evalf(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "2: f_grav: evalmm(%(la,lb,lc)*qa+%( lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 40 "collect(tmp[1], a, factor): encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 62 "Le centre circ est le point de Bevan, le rayon est d eux fois R" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "3: f_circ: evalmm(%(l a,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n " }{MPLTEXT 1 0 40 "collect(tmp[1], a, factor): encyclo(%); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "(f_R(la,lb,lc)/f_R(a,b,c))^2: 1/(factor@e xpand)(1/%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 42 "L'orthocentre des exinscrits est l'inscr it" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "4: f_orth: evalmm(%(la,lb,lc) *qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:= (reduce@factor)(%);\n" } {MPLTEXT 1 0 19 "tmp[1]: encyclo(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 48 "Le nine_points de l'excentral est le circonscrit" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "5: f_nine: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)* qb+%(lc,la,lb)*qc): tmp:=(reduce@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[ 1]: encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 38 "Le symm de l 'excentral est le gergonne" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "6: f_ symm: evalmm(%(la,lb,lc)*qa+%(lb,lc,la)*qb+%(lc,la,lb)*qc): tmp:=(redu ce@factor)(%):\n" }{MPLTEXT 1 0 20 "tmp[1]: encyclo(%); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 36 "Le gergonne de l'excentral est moche" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "7: f_gerg: evalmm(%(la,lb,lc)*qa+%( lb,lc,la)*qb+%(lc,la,lb)*qc):tmp:= %:\n" }{MPLTEXT 1 0 74 "map(factor, tmp[1]): map(U->U*2/sqrt(-a+b+c)/sqrt(a-b+c)/sqrt(a+b-c), %):\n" } {MPLTEXT 1 0 71 "subs(a*sqrt(b)*sqrt(c)*sqrt(-a+b+c)=sqrt(a)*sqrt(a*b* c)*sqrt(-a+b+c), \n" }{MPLTEXT 1 0 63 "c*sqrt(a)*sqrt(b)*sqrt(a+b-c)=s qrt(c)*sqrt(a*b*c)*sqrt(a+b-c),\n" }{MPLTEXT 1 0 63 "b*sqrt(a)*sqrt(c) *sqrt(a-b+c)=sqrt(b)*sqrt(a*b*c)*sqrt(a-b+c),\n" }{MPLTEXT 1 0 58 "%): tmq:= map(U->factor(U*sqrt(a*b*c)), %); encyclo(tmq);\n" }{MPLTEXT 1 0 1 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 3 "" 0 "" {TEXT 213 14 "Ehrmann-Gib ert" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "pu1,pu2:=[u1,v1,w1],[ u2,v2,w2];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "evalmm(cevadi v(pu1,pu2)/u1/v1/w1): expand(%)[1]: u2*expand(%/u2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "cevamul(pu1,pu2)[1];" }}}{EXCHG {PARA 0 " " 0 "" {TEXT 210 25 "Pencil of diagonal conics" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "pen:= (1-mu)*(alpha1*x^2+beta1*y^2+gamma1*z^2)+mu*(al pha2*x^2+beta2*y^2+gamma2*z^2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 43 "isogonal conjugate wrt the pencil of conics" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "map2(diff,pen,px); (factor@wedge)(subs(mu=1, %),subs( mu=0, %));\n" }{MPLTEXT 1 0 49 "evalmm(-%/4/x/y/z); egconj:= unapply(% ,x,y,z)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "lesbop:= seq (seq(cat(k,j)=k[j], j=1..2),k=[alpha,beta,gamma]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "gc(); map(sort, egconj(pp), [alpha1,beta1,g amma1,alpha2,beta2,gamma2]); subs(lesbop, %); latexx(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 39 "egconj est contravariante et involutive" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "egconj(egconj(px));\n" }{MPLTEXT 1 0 32 "(any@egconj@any)(px)-egconj(px);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 65 "Les points fixes sont les points communs aux coniques du faisceau" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "evalms(egconj(px)-px); eliminate(%, \{x,y,z\}): pf:= subs(%[1][1], px);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "subs(zipq(px,pf), pen): collect(%, mu, normal);;" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "solve(subs(zipq(px, pp), pe n), \{mu\}); \n" }{MPLTEXT 1 0 59 "penp:= unapply(collect(subs(%, pen) , px, factor),x,y,z)@op;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 67 "penp passe par P et par les sommets de son triangle anti-cevien...\n" } {TEXT 210 47 "et ainsi que par P*/P et ses trois anticeviens" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "map(simplify@penp, [id, les_anticev s](pp));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "cevadiv(egconj(pp),pp): lotre:= collect(evalmm(%*p*q*r), pp, factor, distributed);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "map(factor@penp@factor, [id, les_anticevs] (lotre));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "egconj(pX(2)); conicir(%); (factor@subs)(zipq(px, egconj(pu)),%);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "#page 5;" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 18 "crossmul(pu1,pu2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "cevamul(pu1,pu2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "wedge(isotom(pu1), isotom(pu2));" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 8 "# page 7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "cub:= a dd(add(add(c[k,j,i]*px[i]*px[j]*px[k], i=j..3), j=k..3), k=1..3); nops (%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "cubb:= (numer@subs) (zipq(px, isoc(px) ), cub);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "c[1,1,1]=0, c[2,2,2]=0, c[3,3,3]=0;\n" }{MPLTEXT 1 0 56 "cub0, cub b0:= subs(%, cub), factor(subs(%, cubb)/x/y/z);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "collect(cub0-k*cubb0, px, factor, distributed) : eqs:= \{coeffs(%, px)\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "subs(c[1,2,3]=0, eqs); eli1:= [eliminate](%, \{c[1,1,2], c[1,1,3], c[1,3,3],k\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "subs(eli1 [1][1], c[1,2,2]=u/p/q, c[2,3,3]=v/q/r, c[2,2,3]=w/q/r, c[1,2,3]=k/p/q /r, cub0); \n" }{MPLTEXT 1 0 72 "cub1:= collect(%*p*q*r, [op(select(ha s, indets(%), c)), u,v,w], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "subs(eli1[2][1], c[1,2,2]=u/p/q, c[2,3,3]=v/q/r, c[2, 2,3]=-w/q/r, c[1,2,3]=0, cub0);\n" }{MPLTEXT 1 0 72 "cub2:= collect(%* p*q*r, [op(select(has, indets(%), c)), u,v,w], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "(numer@subs)(zipq(px, isoc(px) ), c ub2):\n" }{MPLTEXT 1 0 48 "collect(%/p/q/r, pu, factor); ASSERT(%+cub2 =0); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "(numer@subs)(zipq( px, isoc(px) ), cub1):\n" }{MPLTEXT 1 0 47 "collect(%/p/q/r, pu, facto r); ASSERT(%-cub1=0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 54 "Une pK(P,U) cubique est le lieu des U,X,iso(X) align\303\251s" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "D eterminant(Matrix([pu,px,isoc(px)]))*x*y*z;\n" }{MPLTEXT 1 0 42 "colle ct(-%, pu, factor); ASSERT(%+cub2=0);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 38 "Et aussi, isoc(U), X, U/X sont align\303\251s" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "Determinant(Matrix([isoc(pu),px,cevadiv(pu,px)] ));\n" }{MPLTEXT 1 0 43 "collect(%/2, pu, factor); ASSERT(%+cub2=0);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 15 "Quelques points" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "fcub2:= unapply(cub2, x,y,z)@op: \n" }{MPLTEXT 1 0 62 "map(expand@%, [pa,pb,pc, pu, les_cevians_red (pu), isoc(pu)]) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "factor(fcub2(px)); fac tor(fcub2(cevadiv(pu,px))); %/%%;\n" }{MPLTEXT 1 0 26 "expand((-op(1,% ))/u/v/w);\n" }{MPLTEXT 1 0 72 "(factor@eliminate)(\{op(1,%%),op(2,%%) \}, \{y,x\}); (reduce@subs)(%[1], px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "wedge([u, 0, w],[0,v,w]); cevadiv(pu, [u, 0, w]);\n" }{MPLTEXT 1 0 17 "fcub2([u, 0, w]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "pff:= m ap(sqrt,pp); fcub2(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "subs(zipq(pp, barymul(pu,pu)), cub2); factor(%);\n" }{MPLTEXT 1 0 27 "subs(zipq(px,[u,v,-w]),%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 27 "Recollement avec Kimber ling" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "subs(zipq(pp,px), zucubic); subs(zipq(pp, pX(6)), cub2); expand(%+%%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "darb:= unapply(subs(zipq(pp, pX(6)), zipq(pu, pX( 5)), ency_, cub2),x,y,z)@op;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "li:= NULL: for j to 0*jmax do\n" }{MPLTEXT 1 0 34 "if fdat[j]=\" ohlala\" then next fi;\n" }{MPLTEXT 1 0 72 "if simplify(darb(subs(ency _, pX(j))))=0 then print (j); li:= li, j; fi;\n" }{MPLTEXT 1 0 17 "od; j:= 'j': li;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "li;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "PK:= U-> crossdiff(U, isogon (U));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "wedge(isotom(px), \+ isotom(isoc(px)) ); (factor@evalmm)(%* rotp(x*p));\n" }{MPLTEXT 1 0 26 "PKK:= unapply(%,x,y,z)@op:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 123 "NKK := `@`(proc (x, y, z) options operator, arrow; [x*p*(q*z^ 2+y^2*r), y*q*(r*x^2+z^2*p), z*r*(q*x^2+p*y^2)] end proc, op);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "subs(zipq(pp, pX(6)), PKK(px)), PK(px): zipd(%);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "PKK(px); isotom(isoc(pu)); \+ evalm(%% &* %): expand(% + cub2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "map(ency@isogon@pX, [2,4,5,20,30,98,99,100,110]);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "subs( zipq(pp, pX(6)), cub2): collect(%, pu, expand);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "(factor@evalmm)(PK(px)*x*y*z):\n" }{MPLTEXT 1 0 71 "xcollect(%, pX(6), expand); barymul(px, isotom(pX(6))); evalm(%% &* %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "# page 1 0" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 69 "the root is the trilipo of \+ the line through the \"third\" intersections" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "factor(subs(x=0, cub1)); [solve](%, \{y,z\}); \n" } {MPLTEXT 1 0 43 "(reduce@subs)(x=0, remove(has,%,0)[1], px);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "[0, -v, w],[u,0,-w],[-u,v,0] ; Matrix([%]); wedge(%%[1],%%[2]):\n" }{MPLTEXT 1 0 16 "evalmm(%/u/v/w );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "1,44,88,239,241,292,2 94,1931;1,105,243,296,518,1155,1156;2,6,13,14,15,16,111,524;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "fun:= unapply(cub1,x,y,z)@op ; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "eqs:= map(fun@pX, \{1 ,238,291,899\}): indets(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "subs(ency_, eqs): # subs(zipq(pp,pX(6)), %):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "[solve](%): remove(has,%, \{u=0,q=0\});\n" }{MPLTEXT 1 0 75 "(ency@reduce@subs)(op(%), pp), (ency@reduce@subs)(op(%), pu),s ubs(op(%),k);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "darb:= unapply(subs(zipq(pp, pX(6)), zipq(pu, pX(649)),k=0, ency_, cub1),x,y,z)@op;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "li:= NULL: for j to 0*jmax do\n" } {MPLTEXT 1 0 34 "if fdat[j]=\"ohlala\" then next fi;\n" }{MPLTEXT 1 0 72 "if simplify(darb(subs(ency_, pX(j))))=0 then print (j); li:= li, j ; fi;\n" }{MPLTEXT 1 0 17 "od; j:= 'j': li;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 38 "Points \+ 2106-2119 et cubique pK(31,328)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "pX(238);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "darb:= unapply(subs(zipq(pp, pX(31)), zipq(pu, pX(238)),k=0, ency_, cub2),x,y,z)@op;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "li:= NULL: for j to 0*jmax do\n" } {MPLTEXT 1 0 34 "if fdat[j]=\"ohlala\" then next fi;\n" }{MPLTEXT 1 0 72 "if simplify(darb(subs(ency_, pX(j))))=0 then print (j); li:= li, j ; fi;\n" }{MPLTEXT 1 0 17 "od; j:= 'j': li;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 174 "li:= 1, 2, 6, 31, 105, 238, 292, 365, 672, 1423, 1931, 2053, 2054, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 211 4, 2115, 2116, 2117, 2118, 2119, 2144, 2145, 2146, 2147;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "lj:= seq(ency(isoconjkim(pX(2),pX(j ))), j=li);;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "interface( rtablesize=20): \n" }{MPLTEXT 1 0 77 "[seq](`if`(lj[k] " 0 "" {MPLTEXT 1 0 31 "try close(fd); catch : end try;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "zdat:= table(): fd := open(\"/home/ douillet/public_html/etc/toto2106\", READ):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "for kmax from 1 do zdat[kmax]:= readline(fd); \n" } {MPLTEXT 1 0 22 "if %=0 then break fi;\n" }{MPLTEXT 1 0 29 "od: kmax:= kmax-1; close(fd);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "zzda t:= table():" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "for k from 1 to kma x do zdat[k]; \n" }{MPLTEXT 1 0 21 "RegSubs(\"\\\\[\"=\"(\",%);" } {MPLTEXT 1 0 41 "RegSubs(\"]\"=\")\",%);RegSubs(\"
\"=\"\",%);\n" } {MPLTEXT 1 0 45 "RegSubs(\".*(.*)(.*)(.*)" } {MPLTEXT 1 0 73 ".*\"=\"\"\"\\\\1\"\",\"\"\\\\2\"\",\"\"\\\\3\"\" \", %); zzdat[k]:= parse(%); od: k:='k': " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "zzzdat := Matrix(kmax,6);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "for k to kmax do zzdat[k][1]; tmp:= RegSubs(\": $\"=\"\",%); \n" }{MPLTEXT 1 0 60 " RegSubs(\":.*\"=\"\", tmp); zzzdat[k,1]:= a*parse(substax(%)): \n" } {MPLTEXT 1 0 61 "RegSubs(\".*:\"=\"\", tmp); zzzdat[k,2]:= b*parse(sub stax(%)):od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "for k to kmax do zz dat[k][3]; tmp:= RegSubs(\":[ ]*$\"=\"\",%); \n" }{MPLTEXT 1 0 60 "Reg Subs(\":.*\"=\"\", tmp); zzzdat[k,5]:= a*parse(substax(%)): \n" } {MPLTEXT 1 0 62 "RegSubs(\".*:\"=\"\", tmp); zzzdat[k,6]:= b*parse(sub stax(%)): od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "for k to kmax do p rint(zzdat[k][2]); tmpa,tmpb:= parse(zzdat[k][2]); \n" }{MPLTEXT 1 0 66 "if tmpa=A then zzzdat[k,3]:=pa else zzzdat[k,3]:=pX(op(tmpa)) fi; \n" }{MPLTEXT 1 0 31 "zzzdat[k,4]:=pX(op(tmpb)): od:\n" }{MPLTEXT 1 0 57 "zzzdat[7,5]:=a*zzzdat[7,5]: zzzdat[11,5]:=a*zzzdat[11,5]:" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "k:='k': " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "SubMatrix(zzzdat, 1..5,1..-1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "isoc31:= unapply(subs(zipq(pp,pX(31)),isoc(px) ),x,y,z)@op;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "subs(zipq(p p,pX(31)), zipq(pu,pX(238)), cub2);\n" }{MPLTEXT 1 0 27 "fcub:= unappl y(%,x,y,z)@op:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "(simplify @fcub)(pX(31)),(simplify@fcub)(pX(238));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "for k i n [$1..kmax] do ki1:= [zzzdat[k][1],zzzdat[k][2], subs([b=c,c=b], zzzd at[k][2])];\n" }{MPLTEXT 1 0 66 "ki2:= [zzzdat[k][5],zzzdat[k][6], sub s([b=c,c=b], zzzdat[k][6])];\n" }{MPLTEXT 1 0 37 "(reduce@simplify)(ba rymul(ki1,ki2)),\n" }{MPLTEXT 1 0 66 "simplify(fcub(ki1)), simplify(fc ub(ki2)); print(k,%); od: k:='k': " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "# ki1;isoc31(ki1); simplify([fcub(%), fcub(ki2)]);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "ki3:= [-a^2,b*c,b*c]; pX(238);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "Determinant(Matrix([ki3,pX(238),px]));\n" }{MPLTEXT 1 0 41 "eli:= \+ [eliminate](\{%, fcub(px)\},\{z,y\}); \n" }{MPLTEXT 1 0 35 "map(reduce @subs,map2(op,1,eli),px);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "ki1:= \+ %[2]; ki2:= (reduce@isoc31)(ki1); (simplify@fcub)(ki1),(simplify@fcub) (ki2);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "# latexx(zzzdat);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "k:=1: ppp:= [zzzdat[k,1],zzz dat[k,2],rot(rot(zzzdat[k,2]))];\n" }{MPLTEXT 1 0 25 "ppp:= [zzzdat[k, 1],b,c];\n" }{MPLTEXT 1 0 32 "subs(zipq(pp,pX(31)), isoc(%));\n" } {MPLTEXT 1 0 1 "\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 21 "La cubique pK(31,238)" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "# tmp0:= eigentrans(pu): factor( fcub2(%));\n" } {MPLTEXT 1 0 41 "# tmp00:= isoc(tmp0): factor( fcub2(%));\n" }{MPLTEXT 1 0 45 "tmp1:= cevadiv(pu,pfix): factor( fcub2(%)); \n" }{MPLTEXT 1 0 35 "tmp2:= isoc(%%): factor( fcub2(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "ici:= ency_ union cetriangle union subs(ency_, conv ert(zipq(pp,pX(31)),set) union convert(zipq(pu,pX(238)),set));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "bary2proj(subs(z=1-x-y,px)): (evalf@factor@subsop)(3=NULL, subs(ici, %)):\n" }{MPLTEXT 1 0 46 "cha nge:= plottools[transform](unapply(%,x,y)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "\{solve\}(evalms(barymul(pu,pu)-pp), \{u,v,w\}): m ap(subs,%,pu): tmp:= map(reduce,%);\n" }{MPLTEXT 1 0 123 "plf:= drawna (tmp[1],\"F\",9,optbla),drawna(tmp[2],\"Fc\",1,optbla),drawna(tmp[3], \"Fb\",10,optbla),drawna(tmp[4],\"Fa\",1,optbla):\n" }{MPLTEXT 1 0 59 "#plf0:= textplot([-0.28,0.15,\"Fc\"], font=[TIMES,ROMAN,12]):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "subsop(3=NULL, bary2proj(px)): evalms(%-[X,Y])union \+ \{x+y+z=1\}:\n" }{MPLTEXT 1 0 50 "projx:= (expand@subs)(solve(%, \{x,y ,z\}), ici, px);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "projcub := (expand@subs)(zipq(px,projx), ici, cub2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "shadow:= proc(pp1, pu1,pu2,pu3) \n" }{MPLTEXT 1 0 64 " shadow0(pp1, pu1), shadow0(pp1, pu2), shadow0(pp1, pu3); end: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "shadow0:= proc(pp1,pu1) local eli, sols;\n" }{MPLTEXT 1 0 48 " \{Determinant(Matrix([pp1,pu1, px])), fcub(px)\};\n" }{MPLTEXT 1 0 72 "eli:= [eliminate](%,\{y,z\}); \+ map2(op,1,%): sols:= map(reduce@subs,%,px);\n" }{MPLTEXT 1 0 60 "reduc e(pp1): if %= sols[1] then sols:= subsop(1=NULL, sols)\n" }{MPLTEXT 1 0 80 "elif %=sols[2] then sols:= subsop(2=NULL,sols) else sols:= subs( %=NULL,sols)fi;\n" }{MPLTEXT 1 0 61 "reduce(pu1): if %= sols[1] then s ols:= subsop(1=NULL, sols) \n" }{MPLTEXT 1 0 34 " else sols:= subs(%=N ULL,sols)fi;\n" }{MPLTEXT 1 0 10 "op(sols);\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 87 "pl1x:= implicitplot(evalf(projcub), X=-2.5..2.2, \+ Y=-3..2, grid=[150,150], color=black):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "delt:= [0.05,0.05]*2: optbla:= [color=black]:\n" } {MPLTEXT 1 0 79 "pl2:= drawna(pa,\"A\",5,optbla),drawna(pb,\"B\",10,op tbla),drawna(pc,\"C\",1,optbla):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "black: pl5:= drawna(pu,\"U\",2, [color=%]), drawna(isoc(pu), \"U*\",3, [color=%]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "7: \n" }{MPLTEXT 1 0 32 "p pp1:= pX(1): orig:= rot3v(pa):\n" }{MPLTEXT 1 0 46 "ppp1:= pX(6): orig := rot3v([-a*b*c,b^3,c^3]):\n" }{MPLTEXT 1 0 29 "pouic1:= shadow(ppp1, orig):\n" }{MPLTEXT 1 0 46 "blue: pl70:= drawna(ppp1,\"P1\",12, [colo r=%]):\n" }{MPLTEXT 1 0 77 "[color=blue, thickness=0]: pl7:= seq(drali npts(ppp1, pouic1[j], %), j=1..3):\n" }{MPLTEXT 1 0 19 "factor(pouic1[ 1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "10: pouic3:= (op@m ap)(isoc31, [pouic1]): \n" }{MPLTEXT 1 0 82 "[color=red, thickness=0]: pl10:= seq(dralinpts(pouic3[j], pouic1[j], %), j=1..3):\n" }{MPLTEXT 1 0 19 "factor(pouic3[1]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "11: \n" }{MPLTEXT 1 0 81 "[color=green, thickness=0]: pl11:= seq(dr alinpts(pouic3[j], orig[j], %), j=1..3):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "[seq](wedge(pouic3[j], orig[j]), j=1..3): Rank(Matrix (%));\n" }{MPLTEXT 1 0 68 "(reduce@factor@wedge)(%%[1],%%[2]); ency(%) , factor(%-rot3v(%)[2]);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "display(pl1x, pl2, pl5, plf, pl7, pl70, pl10, pl11, \n" }{MPLTEXT 1 0 22 "scaling=constrained, \n" }{MPLTEXT 1 0 75 "view=[-1.8 ..2.3,-2 .0..0.3], axes=none, labels=[``,``], tickmarks=[[],[]]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 78 "display(pl1x, pl2, pl30, pl5, plf, pl7, \+ pl71, pl8, pl9, scaling=constrained, \n" }{TEXT 210 73 "view=[-1.7 ..2 .5,-2..0.5], axes=none, labels=[``,``], tickmarks=[[],[]]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 0 {PARA 3 "" 0 "" {TEXT 213 21 "Gestion Encyclopedie " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 17 "A propos de omega" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "k:='k': fdat[38]: \+ \n" }{MPLTEXT 1 0 75 "k*[rot3](parse(fdat[38])) -[sin(A + omega),sin(B + omega),sin(C + omega)]:\n" }{MPLTEXT 1 0 57 "(expand@evalms)(%) uni on \{sin(omega)^2+cos(omega)^2=1\}: \n" }{MPLTEXT 1 0 50 "subs(sin(ome ga)=sino, cos(omega)=coso, kashi, %);\n" }{MPLTEXT 1 0 34 "eli:= elimi nate(%, \{sino, coso\}); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "subs(isolate(defS2, a+b+c), defR2); \n" }{MPLTEXT 1 0 49 "defR:= m ap(sqrt, %) assuming a>0,b>0,c>0,R>0,S>0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "elj:= subs(defR, eli); (factor@isolate)(op(elj[2]), \+ k^2);\n" }{MPLTEXT 1 0 43 "map(sqrt, %) assuming a>0,b>0,c>0,k>0,S>0: \n" }{MPLTEXT 1 0 61 "subs((-1/16)*(rhs=lhs)(defS2), %): (simplify@map )(expand,%);\n" }{MPLTEXT 1 0 22 "elk:= subs(%, elj[1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "(-1/16)*(rhs=lhs)(defS2): kevoS:= m ap(sqrt, expand(%)) assuming S>0;\n" }{MPLTEXT 1 0 55 "valom:= subs(%, coso=cos(omega), sino=sin(omega), elk);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "subs(kevoS, defR); isolate(%, 1/(op@indets)(%, sqrt)) :\n" }{MPLTEXT 1 0 23 "valom:= subs(%, valom);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "d efR2: valR:= simplify(map(sqrt,%)) assuming R>0, a>0,b>0,c>0,a+b-c>0, \+ a-b+c>0, b+c-a>0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "[sin(A + omega),sin(B + omeg a),sin(C + omega)];\n" }{MPLTEXT 1 0 57 "(reduce@factor@subs)(valom, k ashi, expand(%)); reduce(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "[rot3](parse(fdat[38]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "tmp:= sin(A/2)=s qrt((1-cos(A))/2): (factor@subs)(kashi, %):\n" }{MPLTEXT 1 0 68 "rhs(% ): sqrtka01:= lhs(tmp)=simplify(%) assuming b>0, c>0, a+b-c>0; " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "tmp:= cos(A/2)=sqrt((1+cos(A ))/2): (factor@subs)(kashi, %):\n" }{MPLTEXT 1 0 68 "rhs(%): sqrtka02: = lhs(tmp)=simplify(%) assuming b>0, c>0, a+b-c>0;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "(factor@subs)(sqrtka01, sqrtka02, sin((1/2 )*A)^2+cos(A/2)^2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "kash kash:= rot3(sqrtka01), rot3(sqrtka02);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "e=(1-4*sin(omega)^2)^(1/2); (factor@subs)(valom, map( 1/id, defR2), %);\n" }{MPLTEXT 1 0 49 "rhs(%)^2; vale:= e=sqrt(numer(% ))/sqrt(denom(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "ri*R= factor(f_r(a,b,c)*f_R(a,b,c)): simplify(%) assuming a+b>c:\n" } {MPLTEXT 1 0 56 "simplify(%) assuming a+c>b: simplify(%) assuming b+c> a:\n" }{MPLTEXT 1 0 21 "valr:= isolate(%,ri);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "ki tcircle:= isolate(defR, S), vale, valom, valr, sp=(a+b+c)/2;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "WW1:= sqrt(a^2*b^2+a^2*c^2+b ^2*c^2);\n" }{MPLTEXT 1 0 50 "WW2:= sqrt(-a^2*c^2+c^4-b^2*c^2-a^2*b^2+ a^4+b^4);\n" }{MPLTEXT 1 0 87 "WW3:= sqrt(a^6-a^4*b^2-a^4*c^2-a^2*b^4+ 3*a^2*b^2*c^2-a^2*c^4+b^6-b^4*c^2-b^2*c^4+c^6);\n" }{MPLTEXT 1 0 68 "W W4:= sqrt(b^3-b^2*c-b*c^2+c^3-a*b^2+3*a*b*c-a*c^2-a^2*b-a^2*c+a^3);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 23 "Les rou tines de syntaxe" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "apbpc:= \+ (factor@isolate)(defR2, a+b+c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "conway:= proc(qui); qui; \n" }{MPLTEXT 1 0 42 "RegSubs(\"SA\"=\"b*c*cos(A)\", %);\n" }{MPLTEXT 1 0 42 "RegSubs(\"SB< /sub>\"=\"c*a*cos(B)\", %);\n" }{MPLTEXT 1 0 42 "RegSubs(\"SC\"=\"a*b*cos(C)\", %);\n" }{MPLTEXT 1 0 34 "RegSubs(\"sqr([^t])\"=\" sqrt\\\\1\", %);" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 5 "end: " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "guess:= proc() global tmp0;\n" }{MPLTEXT 1 0 38 "tmp 0:= RegSubs(\"QQ.*\"=\"\", fdat[www]);\n" }{MPLTEXT 1 0 77 "if not mem ber (tmp0, \{\"(sin(A))f(A,B,C)\",\"af(a,b,c)\"\}) then return tmp0; f i;\n" }{MPLTEXT 1 0 54 "tmp0:= RegSubs(\"'\"=\"\",RegSubs(\"QQ.*\"=\" \", Qdat[www]));\n" }{MPLTEXT 1 0 72 "if SearchText(\"A\", tmp0)+Searc hText(\"B\", tmp0)+SearchText(\"C\", tmp0)<>0\n" }{MPLTEXT 1 0 78 "the n tmp0:= cat(\"sin(A)*(\", tmp0, \")\") else tmp0:= cat(\"a*(\", tmp0, \")\") fi; \n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "sinsq:= U->sin(U)^2; cossq:= U->cos(U)^2; tansq:= U-> tan(U)^2;\n" }{MPLTEXT 1 0 64 "cotsq:= U->cot(U)^2; secsq:= U->sec(U)^ 2; cscsq:= U->csc(U)^2; \n" }{MPLTEXT 1 0 64 "cospk:= U->cos(U)^4; csc pk:= U->csc(U)^4; secpk:= U->sec(U)^4; \n" }{MPLTEXT 1 0 63 "sinpt:= U ->sin(U)^3; cospt:= U->cos(U)^3; tanpt:= U->tan(U)^3;\n" }{MPLTEXT 1 0 63 "cotpt:= U->cot(U)^3; secpt:= U->sec(U)^3; cscpt:= U->csc(U)^3; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "substax:= proc(U)\n" } {MPLTEXT 1 0 29 "SubstituteAll(U, \"

\", \"\"):\n" }{MPLTEXT 1 0 27 "SubstituteAll(%, \"?\", \"\"):\n" }{MPLTEXT 1 0 28 "RegSubs(\"esin\"= \"e*sin\", %);\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 42 "RegSubs(\"SA\"=\"b*c*cos(A)\", %);\n" }{MPLTEXT 1 0 42 "RegSubs(\"S B\"=\"c*a*cos(B)\", %);\n" }{MPLTEXT 1 0 42 "RegSubs(\"SC\"=\"a*b*cos(C)\", %);\n" }{MPLTEXT 1 0 35 "RegSubs(\"sqr([^t])\"= \"sqrt\\\\1\", %);\n" }{MPLTEXT 1 0 43 "RegSubs(\"\\\\^-([123456789]) \"=\"^(-\\\\1)\", %);\n" }{MPLTEXT 1 0 30 "RegSubs(\"\\\\^1/2\"=\"^(1/ 2)\", %);" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 40 "RegSubs(\"sin3([ABC])\"=\"sin(3*\\\\1)\", %);\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 32 "RegSubs(\"cos\\\\^4\"=\"cospk\", %): \n" }{MPLTEXT 1 0 40 "RegSubs(\"cospk([ABC])\"=\"cospk(\\\\1)\", %):" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 32 "RegSubs(\"csc\\\\^4\"=\"cscpk\", %): \n" } {MPLTEXT 1 0 40 "RegSubs(\"cscpk([ABC])\"=\"cscpk(\\\\1)\", %):" } {MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 32 "RegSubs(\"sec\\\\^4\"=\"secpk\", %): \n" }{MPLTEXT 1 0 40 "RegSubs(\"secpk([ABC])\"=\"secpk(\\\\1)\", \+ %):" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 31 "RegSu bs(\"sin\\\\^3\"=\"sinpt\", %):\n" }{MPLTEXT 1 0 40 "RegSubs(\"sinpt([ ABC])\"=\"sinpt(\\\\1)\", %):" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 31 " RegSubs(\"cos\\\\^3\"=\"cospt\", %):\n" }{MPLTEXT 1 0 40 "RegSubs(\"co spt([ABC])\"=\"cospt(\\\\1)\", %):" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 31 "RegSubs(\"tan\\\\^3\"=\"tanpt\", %):\n" }{MPLTEXT 1 0 40 "RegSub s(\"tanpt([ABC])\"=\"tanpt(\\\\1)\", %):" }{MPLTEXT 1 0 1 "\n" } {MPLTEXT 1 0 31 "RegSubs(\"cot\\\\^3\"=\"cotpt\", %):\n" }{MPLTEXT 1 0 40 "RegSubs(\"cotpt([ABC])\"=\"cotpt(\\\\1)\", %):" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 31 "RegSubs(\"csc\\\\^3\"=\"cscpt\", %):\n" } {MPLTEXT 1 0 40 "RegSubs(\"cscpt([ABC])\"=\"cscpt(\\\\1)\", %):" } {MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 31 "RegSubs(\"sec\\\\^3\"=\"secpt\", %):\n" }{MPLTEXT 1 0 40 "RegSubs(\"secpt([ABC])\"=\"secpt(\\\\1)\", % ):" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 31 "RegSub s(\"sin\\\\^2\"=\"sinsq\", %):\n" }{MPLTEXT 1 0 42 "RegSubs(\"sinsq([A BC])\"=\"sinsq(\\\\1)\", %): \n" }{MPLTEXT 1 0 32 "RegSubs(\"cos\\\\^2 \"=\"cossq\", %): \n" }{MPLTEXT 1 0 40 "RegSubs(\"cossq([ABC])\"=\"cos sq(\\\\1)\", %):" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 31 "RegSubs(\"tan \\\\^2\"=\"tansq\", %):\n" }{MPLTEXT 1 0 41 "RegSubs(\"tansq([ABC])\"= \"tansq(\\\\1)\", %):\n" }{MPLTEXT 1 0 31 "RegSubs(\"cot\\\\^2\"=\"cot sq\", %):\n" }{MPLTEXT 1 0 41 "RegSubs(\"cotsq([ABC])\"=\"cotsq(\\\\1) \", %):\n" }{MPLTEXT 1 0 31 "RegSubs(\"sec\\\\^2\"=\"secsq\", %):\n" } {MPLTEXT 1 0 40 "RegSubs(\"secsq([ABC])\"=\"secsq(\\\\1)\", %):" } {MPLTEXT 1 0 5 " \n" }{MPLTEXT 1 0 32 "RegSubs(\"csc\\\\^2\"=\"cscs q\", %): \n" }{MPLTEXT 1 0 41 "RegSubs(\"cscsq([ABC])\"=\"cscsq(\\\\1) \", %):\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 41 "RegSubs(\"\\\\^([123 4567890])\"=\"^(\\\\1)\", %);" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 1 " \n" }{MPLTEXT 1 0 41 "SubstituteAll(%, \"cotD\", \"cot(D)\"): \n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 34 "RegSubs(\")([(ftu])\"= \")* \\\\1\", %); " }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 36 "SubstituteAll(%, \")cot\", \")*cot\"): \n" }{MPLTEXT 1 0 35 "SubstituteAll(%, \")cos\" , \")*cos\"):\n" }{MPLTEXT 1 0 36 "SubstituteAll(%, \")csc\", \")*csc \"); \n" }{MPLTEXT 1 0 35 "SubstituteAll(%, \")sin\", \")*sin\");\n" } {MPLTEXT 1 0 32 "SubstituteAll(%, \"bc\", \"b*c\"): \n" }{MPLTEXT 1 0 32 "SubstituteAll(%, \"ab\", \"a*b\"): \n" }{MPLTEXT 1 0 32 "Substitut eAll(%, \"ac\", \"a*c\"): \n" }{MPLTEXT 1 0 31 "SubstituteAll(%, \"a( \", \"a*(\");\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 53 "## abc) suivi \+ de abc( ## exception avec sec( et csc(\n" }{MPLTEXT 1 0 8 "RegSubs(" } {MPLTEXT 1 0 30 "\"([abc)])([abc(])\"=\"\\\\1*\\\\2\", " }{MPLTEXT 1 0 5 "%): \n" }{MPLTEXT 1 0 36 "SubstituteAll(%, \"sec*(\", \"sec(\" ); \n" }{MPLTEXT 1 0 35 "SubstituteAll(%, \"csc*(\",\"csc(\") ;\n" } {MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 30 "## puissances qui se suivent \n" }{MPLTEXT 1 0 8 "RegSubs(" }{MPLTEXT 1 0 36 "\"([abc])^2([abc])^2\"= \"\\\\1^2*\\\\2^2\", " }{MPLTEXT 1 0 4 "%):\n" }{MPLTEXT 1 0 8 "RegSub s(" }{MPLTEXT 1 0 43 "\"([23456789])([ABCabcst(])\"=\"\\\\1*\\\\2\", % );\n" }{MPLTEXT 1 0 37 "RegSubs(\"([abc)])sec\"=\"\\\\1*sec\", %):\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 36 "SubstituteAll(%, \"^1/2\", \"^( 1/2)\");\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 35 "## les (A/2) \303\2 51taient devenus (A)/2\n" }{MPLTEXT 1 0 3 "Reg" }{MPLTEXT 1 0 35 "Subs (\"\\\\(([ABCD]))/2\"=\"(\\\\1/2)\",%);" }{MPLTEXT 1 0 1 "\n" } {MPLTEXT 1 0 3 "Reg" }{MPLTEXT 1 0 35 "Subs(\"\\\\(([ABCD]))/3\"=\"( \\\\1/3)\",%);" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 3 "Reg" }{MPLTEXT 1 0 35 "Subs(\"\\\\(([ABCD]))/4\"=\"(\\\\1/4)\",%);" }{MPLTEXT 1 0 1 " \n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "bctax:= proc(U) global choiy, choiy0, oussb; \n" }{MPLTEXT 1 0 46 "try choiy0:=insidetax(sor t(factor(U),[b,c]));\n" }{MPLTEXT 1 0 21 "catch: choiy0:=NULL;\n" } {MPLTEXT 1 0 9 "end try;\n" }{MPLTEXT 1 0 40 "choiy:=[convert(sort(U,[ b,c]), string),\n" }{MPLTEXT 1 0 50 " convert(sort(factor(U),[b,c]), s tring), choiy0];\n" }{MPLTEXT 1 0 39 "map(U->length(convert(U,string)) , %); \n" }{MPLTEXT 1 0 47 "member(min(%),%,'oussb'): parse(choiy[ouss b]);\n" }{MPLTEXT 1 0 5 "end:\n" }{MPLTEXT 1 0 38 "abctax:= U-> collec t(U, [R,a], bctax):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "sordeg:= li-> sort(li, boosordeg): \n" }{MPLTEXT 1 0 37 "boosordeg:= proc(u,v) local dgu,dgv;\n" } {MPLTEXT 1 0 52 "dgu,dgv:= degree(u,\{a,b,c,R\}),degree(v,\{a,b,c,R\}) ; \n" }{MPLTEXT 1 0 43 "if dgu=dgv then evalb(length(u) " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "c onstring:= proc(quoi) local den, num, resu, lesfac, fac, star; \n" } {MPLTEXT 1 0 61 "if not type(quoi, `*`) then return convert(quoi, stri ng) fi;\n" }{MPLTEXT 1 0 24 "num:= NULL; den:= NULL;\n" }{MPLTEXT 1 0 34 "for fac in convert(quoi, list) do\n" }{MPLTEXT 1 0 44 " if not typ e(fac, `^`) then num:= num, fac;\n" }{MPLTEXT 1 0 40 " elif subs(Q=2, \+ T=3, K=4, op(2,fac))>0 \n" }{MPLTEXT 1 0 48 " then num:= num, fac \+ else den:= den, 1/fac;\n" }{MPLTEXT 1 0 3 "fi\n" }{MPLTEXT 1 0 73 "od; num:=sordeg([num]); den:=sordeg([den]); if num=[] then num:=[1]; fi; \n" }{MPLTEXT 1 0 22 "resu:=\"\"; star:= \"\"; \n" }{MPLTEXT 1 0 19 " \+ for fac in num do\n" }{MPLTEXT 1 0 80 " if type (fac,`+`) then resu:= cat(resu, star, \"(\", convert(fac,string), \")\") \n" }{MPLTEXT 1 0 51 " else resu:= cat(resu, star, convert(fac,string))\n" }{MPLTEXT 1 0 17 " fi: star:=\"*\";\n" }{MPLTEXT 1 0 5 " od;\n" }{MPLTEXT 1 0 18 "if den <> [] then\n" }{MPLTEXT 1 0 15 " star:= \"/\"; \n" }{MPLTEXT 1 0 20 " for fac in den do\n" }{MPLTEXT 1 0 81 " if type (fac,`+`) \+ then resu:= cat(resu, star, \"(\", convert(fac,string), \")\") \n" } {MPLTEXT 1 0 52 " else resu:= cat(resu, star, convert(fac,string))\n " }{MPLTEXT 1 0 8 " fi: \n" }{MPLTEXT 1 0 6 " od;\n" }{MPLTEXT 1 0 5 "fi; \n" }{MPLTEXT 1 0 6 "resu;\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "insidetax:= proc(tmqq) global tmq; convert(tmqq, stri ng):\n" }{MPLTEXT 1 0 47 "SubstituteAll(%, \"/(b-c)/(b+c)\",\"/(b^2-c^ 2)\");\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 47 "# SubstituteAll(%, \" (b-c)*(b+c)\",\"(b^2-c^2)\"):\n" }{MPLTEXT 1 0 8 "RegSubs(" }{MPLTEXT 1 0 45 "\"\\\\(b-c)[*]\\\\(b\\\\+c)([^^])\"=\"(b^2-c^2)\\\\1\", %" } {MPLTEXT 1 0 3 ");\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 51 "Substitut eAll(%, \"(b-c)^2*(b+c)^2\",\"(b^2-c^2)^2\"):\n" }{MPLTEXT 1 0 53 "Sub stituteAll(%, \"/(b-c)^2/(b+c)^2\",\"/(b^2-c^2)^2\"):\n" }{MPLTEXT 1 0 53 "SubstituteAll(%, \"/(b+c)^2/(b-c)^2\",\"/(b^2-c^2)^2\"):\n" } {MPLTEXT 1 0 51 "SubstituteAll(%, \"(b-c)^4*(b+c)^4\",\"(b^2-c^2)^4\") ;\n" }{MPLTEXT 1 0 52 "SubstituteAll(%, \"(-b^2-c^2)\", \"((-1)*(b^2+c ^2))\"):\n" }{MPLTEXT 1 0 48 "SubstituteAll(%, \"(-2*b-2*c)\", \"((-2) *(b+c))\"):\n" }{MPLTEXT 1 0 44 "SubstituteAll(%, \"(-b-c)\", \"((-1)* (b+c))\"):\n" }{MPLTEXT 1 0 56 "SubstituteAll(%, \"(-2*b^2-2*c^2)\", \+ \"((-2)*(b^2+c^2))\"):\n" }{MPLTEXT 1 0 56 "SubstituteAll(%, \"(-3*b^2 -3*c^2)\", \"((-3)*(b^2+c^2))\"):\n" }{MPLTEXT 1 0 54 "SubstituteAll(% , \"(3*b^2+3*c^2)\", \"((3)*(b^2+c^2))\"):\n" }{MPLTEXT 1 0 56 "Substi tuteAll(%, \"(-4*b^2-4*c^2)\", \"((-4)*(b^2+c^2))\");\n" }{MPLTEXT 1 0 54 "SubstituteAll(%, \"(3*b^4+3*c^4)\", \"((3)*(b^4+c^4))\");\n" } {MPLTEXT 1 0 52 "SubstituteAll(%, \"(-b^6-c^6)\", \"((-1)*(b^6+c^6))\" );\n" }{MPLTEXT 1 0 61 "SubstituteAll(%, \"(a^2-b^2-c^2)\", \"((-1)*`` (b^2+c^2-a^2))\");\n" }{MPLTEXT 1 0 49 "SubstituteAll(%, \"(a-b-c)\", \+ \"((-1)*``(b+c-a))\");\n" }{MPLTEXT 1 0 62 "RegSubs(\"cos\\\\(([ABC]) \\\\+1/6\\\\*Pi)\"=\"(-1)*sin(\\\\1-pi/3)\", %);\n" }{MPLTEXT 1 0 57 " RegSubs(\"sin\\\\(([ABC])\\\\+1/6\\\\*Pi)\"=\"cos(\\\\1-pi/3)\", %);\n " }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 38 "(yjoli@parse)(%): # map(sort, %,[a]); \n" }{MPLTEXT 1 0 64 "tmq:= subs(1/2=1/Q, 1/3=1/T, -1/3=-1/T, \+ 1/4=1/K, -1/4=-1/K, %):\n" }{MPLTEXT 1 0 15 "constring(%); \n" } {MPLTEXT 1 0 30 "SubstituteAll(%, \"/Q\", \"/2\");\n" }{MPLTEXT 1 0 61 "SubstituteAll(%, \"/T\", \"/3\"); SubstituteAll(%, \"/K\", \"/4\") ; \n" }{MPLTEXT 1 0 31 "SubstituteAll(%, \"pi\", \"Pi\"); \n" } {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "# elimifac has moved" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "fintax0:= proc(tmq01, expan) global tmqq, tmpp, lonchoix, choix, oussa;\n" }{MPLTEXT 1 0 33 "## tm q est modifi\303\251 par insidetax\n" }{MPLTEXT 1 0 16 "if nargs>1 the n\n" }{MPLTEXT 1 0 63 " choix:= [map(abctax, factor(tmq01)), sort(tmq0 1, [a,b,c,R]), \n" }{MPLTEXT 1 0 65 " map(sort, factor(tmq01), [a,b, c,R]), abctax(expand(tmq01))]: \n" }{MPLTEXT 1 0 5 "else\n" }{MPLTEXT 1 0 39 " choix:= [map(abctax, factor(tmq01)), \n" }{MPLTEXT 1 0 63 " s ort(tmq01, [a,b,c,R]), map(sort, factor(tmq01), [a,b,c,R])]:\n" } {MPLTEXT 1 0 6 "fi; \n" }{MPLTEXT 1 0 62 "lonchoix:= map(U->length(co nvert(U,string)), %); # print(%); \n" }{MPLTEXT 1 0 47 "member(min(%), %,'oussa'): tmqq:= choix[oussa];\n" }{MPLTEXT 1 0 3 "if " }{MPLTEXT 1 0 56 "www <> (ency)(tmqq) then error \"erreur au test n\302\2601\" fi; \n" }{MPLTEXT 1 0 24 "tmpp:=insidetax(tmqq); \n" }{MPLTEXT 1 0 61 "if \+ www <> (ency@parse)(tmpp) then error \"erreur finale\" fi; \n" } {MPLTEXT 1 0 5 "tmpp\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "fintax:= proc(tmq01);\n" }{MPLTEXT 1 0 29 "finta x0(tmq01, args[2..-1]);\n" }{MPLTEXT 1 0 61 "if not type(tmqq,`*`) or \+ tmpp[1] <> \"-\" then return tmpp fi;\n" }{MPLTEXT 1 0 31 "fintax0(-tm q01, args[2..-1]); \n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "#kernelopts(ASSERT=false); fintax(tmqx); kernelop ts(ASSERT=true);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 15 "Lecture de barz" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 67 "Par d\303\251faut : [;] entre les champs et [\"] comme d \303\251limiteur --- barz " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "j:='j ': try close(fd); catch : end try;\n" }{MPLTEXT 1 0 39 "fdat,qdat,Qdat ,tdat,gdat,gera,trigat:=\n" }{MPLTEXT 1 0 61 " table(),table(),table() , table(), table(), table(), table():" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "fd := open(\"/home/douillet/public_html/etc/barz.csv\", READ):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "for jmax from 1 do tmp:= readlin e(fd); \n" }{MPLTEXT 1 0 22 "if %=0 then break fi;\n" }{MPLTEXT 1 0 50 "tmp1:= SubstituteAll(SubstituteAll(SubstituteAll(\n" }{MPLTEXT 1 0 45 " tmp, \" \", \"\"), \"\"\";\"\"\", \" \"), \"\"\"\", \"\");\n " }{MPLTEXT 1 0 63 "tmp2:= sscanf(tmp1, \"%d %d %d %s %s %s %s %s\" ); jj:= tmp2[1];\n" }{MPLTEXT 1 0 73 " gdat[jj], tdat[jj], fdat[jj], qda t[jj], Qdat[jj], gera[jj],trigat[jj]:=\n" }{MPLTEXT 1 0 19 " op(tmp2 [2..8]);\n" }{MPLTEXT 1 0 29 "od: jmax:= jmax-1; close(fd);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "lesj:= map(op, \{indices(fdat)\}): \{$1..j max\} minus %;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "saver:= t able();" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 20 "Probl\303\250mes de s yntaxe" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "todo:=table(): for jj in \+ lesj do\n" }{MPLTEXT 1 0 28 "if jj < 3515 then next fi; \n" }{MPLTEXT 1 0 46 "tmp:= fdat[jj]; if tmp=\"ohlala\" then next fi;\n" }{MPLTEXT 1 0 23 "try tmq:= parse(tmp); \n" }{MPLTEXT 1 0 46 "repons:= ency(%); \+ if jj=repons then next fi; \n" }{MPLTEXT 1 0 38 "print(\"???\", jj=tmp ); todo[jj]:= jj; \n" }{MPLTEXT 1 0 24 "catch: todo[jj]:= jj; \n" } {MPLTEXT 1 0 59 "end try; od: todo:= sort(map(op,[entries](todo))); no ps(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 28 "# Remors en 1/quelque_ chose\n" }{TEXT 210 56 "todo:=table(): for jj in [$ 1..jmax] do tmp:= \+ fdat[jj];\n" }{TEXT 210 31 "if tmp[1] <> \"1\" then next fi;\n" }{TEXT 210 82 "try tmq:= parse(tmp); if not member(numer(tmq), \{-1,+1\}) th en todo[jj]:= jj; fi; \n" }{TEXT 210 57 "catch: end try; od: todo:= so rt(map(op,[entries](todo)));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 24 " # Remors en sqrt(a+b+c)\n" }{TEXT 210 56 "todo:=table(): for jj in [$ \+ 1..jmax] do tmp:= fdat[jj];\n" }{TEXT 210 72 "try tmq:= parse(tmp); if has(tmq, sqrt(a+b+c)) then todo[jj]:= jj; fi; \n" }{TEXT 210 57 "catc h: end try; od: todo:= sort(map(op,[entries](todo)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "# www:=595;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 6 "ohlala" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "jmax;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "# \+ li:= NULL; for j to jmax do if fdat[j]= \"ohlala\" then li:= li, j; fi ; od: j:='j':" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "li;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 42 "368, solution d'une \303\251quation du 5\303\250me degr \303\251" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 4 "K018" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "eqcub:= subs(zipq(pp, pX(6)), zipq(pu, pX(523)), \+ k=0, cub1);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 33 "anticomplem de Ki eppert hyperbola" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "conicir (pX(523)): subs(zipq(px, complem(px)), %): eqcon:= collect(numer(%), p x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "eqs0:= \{eqcon, eqcu b, x+y+z=1\}: eqs1:= subs(ency_, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "eli:= eliminate(eqs1, \{x,y\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "solz:= fsolve(op(eli[2])/(3*z-1),\{z\}); " }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "subs(eli[1], solz, px); enc y(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 30 "L'\303\251quation abstr aite est moche" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 43 "X369, solution d'une equation du 3\303\250me degr\303\251" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 161 "yffeq:= subs(t=K, 2*t^3 - \+ 3*(a + b + c)*t^2 + (a^2 + b^2 + c^2 + 8*b*c + 8*c*a + 8*a*b)*t - (c*b ^2 + a*c^2 + b*a^2 + 5*b*c**2 + 5*c*a**2 + 5*a*b**2 + 9*a*b*c));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "yffsol:= (K^2-(2*c + a)*K + \+ (- a**2 + b**2 + 2*c**2 + 2*b*c + 3*c*a + 2*a*b));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "latexx(yffeq);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "latexy(yffsol);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "[rot3](yffsol):\n" }{MPLTEXT 1 0 65 "subs(fsolve(subs (ency_, yffeq), \{K\}), ency_, %); %/add(k, k=%); \n" }{MPLTEXT 1 0 20 "latexz(%), ency(%);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 4 "X370 " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "con1 := (x*y*(a^2-b^2+c^ 2)+x*z*(a^2+b^2-c^2)+2*z*y*a^2)*sqrt(3)-a*b*c*x*(y+z+2*x)/R;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "con1: eqs:= subs(ency_, \{%, rot(%)\}); eli:= [eliminate](%, \{y,z\}):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 73 "Digits:= 30: evalf(eli[1]); (reduce@subs)(%[1], px) ; ency(%); Digits:=10:" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 4 "X848" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "subs(qui=1/(cot (A) - cot (Az)), Az = 2*Pi*a/(a + b + c), qui);\n" }{MPLTEXT 1 0 8 "ency(%);" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 5 "X1144" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "eqs := a**2/(a - L) + b**2/(b - L) + c**2/(c - L) - 2*S/L; latexx(%);\n" } {MPLTEXT 1 0 62 "-(numer@subs)(ency_,%): collect(%, L); fso:= [fsolve] (%, \{L\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "tmpbar:= [a* *2/(a - L), b**2/(b - L), c**2/(c - L)]; latexy(%);\n" }{MPLTEXT 1 0 25 "map(subs,fso, ency_, %);\n" }{MPLTEXT 1 0 44 "map(ency,%); %%[1]: \+ %/add(k,k=%); latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "conicir(pp); \{subs(zipq(px, pX(1)),%),subs(zipq(px, pX(6)),%)\};\n" }{MPLTEXT 1 0 54 "eliminate(%,\{p,q\}); (reduce@subs)(%[1], pp); ency( %);\n" }{MPLTEXT 1 0 19 "con1:= conicir(%%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "(simplify@subs)(zipq(px,tmpbar), con1); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 40 "Gestion des probl\303\250mes de syntaxe \+ simples" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 137 "lesexclus:= \{\" a*(f(a*b*c))\",\"af(A,B,C)\",\"a^(2)/f(a*b*c)\",\"a/f(a,b,c)\",\"ag(a* b*c)\", \"sin(A)*f(ABC)\", \"sin(A)*(f(ABC))\", \"f(ABC)*sin(A)\", \n" }{MPLTEXT 1 0 62 "\"sin(A)*(-(cos(A))/x+(cos(B))/y+(cos(C))/zx)\",\"( y+z)*tan(A)\"\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "badzalo 2:=\"f(a,b,c):f(b,c,a):f(c,a,b)(seenoteaboveX(1166))\" ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "cutt:= \+ proc() local quoi, tmp1,tmp2; global tmqq;\n" }{MPLTEXT 1 0 52 "gera[w ww]; RegSubs(\"_$\"=\"\",%); RegSubs(\"^=\"=\"\",%); \n" }{MPLTEXT 1 0 81 "cat(\"[[\",SubstituteAll(%,\"=\",\"],[\"), \"]]\"); SubstituteAl l(%,\"_\",\",\"); print(%); \n" }{MPLTEXT 1 0 61 "quoi:= parse(%); if \+ nops(quoi)>3 then quoi:= quoi[1..-2] fi;\n" }{MPLTEXT 1 0 40 "quoi:= s ort(%,(j,k)->evalb(j[2] " 0 "" {MPLTEXT 1 0 52 "cutt23:= \+ proc() local quoi, tmp1,tmp2; global tmqq;\n" }{MPLTEXT 1 0 52 "gera[w ww]; RegSubs(\"_$\"=\"\",%); RegSubs(\"^=\"=\"\",%); \n" }{MPLTEXT 1 0 81 "cat(\"[[\",SubstituteAll(%,\"=\",\"],[\"), \"]]\"); SubstituteAl l(%,\"_\",\",\"); print(%); \n" }{MPLTEXT 1 0 61 "quoi:= parse(%); if \+ nops(quoi)>3 then quoi:= quoi[1..-2] fi;\n" }{MPLTEXT 1 0 40 "quoi:= s ort(%,(j,k)->evalb(j[2] " 0 "" {MPLTEXT 1 0 52 "cutt13:= \+ proc() local quoi, tmp1,tmp2; global tmqq;\n" }{MPLTEXT 1 0 52 "gera[w ww]; RegSubs(\"_$\"=\"\",%); RegSubs(\"^=\"=\"\",%); \n" }{MPLTEXT 1 0 81 "cat(\"[[\",SubstituteAll(%,\"=\",\"],[\"), \"]]\"); SubstituteAl l(%,\"_\",\",\"); print(%); \n" }{MPLTEXT 1 0 61 "quoi:= parse(%); if \+ nops(quoi)>3 then quoi:= quoi[1..-2] fi;\n" }{MPLTEXT 1 0 40 "quoi:= s ort(%,(j,k)->evalb(j[2] " 0 "" {MPLTEXT 1 0 43 "methguess := proc() global tmqq; local tmp;\n" }{MPLTEXT 1 0 4 "try " }{MPLTEXT 1 0 43 "printf(\"now trying guess www= %d\\n\", www);\n" }{MPLTEXT 1 0 36 "guess(): if tmp0=\"x\" then error fi;\n" }{MPLTEXT 1 0 45 " tmp: = substax(SubstituteAll(tmp0,\",\",\"\")); \n" }{MPLTEXT 1 0 77 " if m ember(tmp, lesexclus) then error sprintf(\"%d to deal later\", www); f i: \n" }{MPLTEXT 1 0 75 " tmqq:= subs(area=S, isolate(defR,S), csc=1/s in, eval(parse(tmp))); true; \n" }{MPLTEXT 1 0 27 "catch: false; end t ry; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "methtrili:= pro c() global tmqq, zalo; local zalor, zalocom, fac; \n" }{MPLTEXT 1 0 43 "printf(\"now trying trili www= %d\\n\", www);\n" }{MPLTEXT 1 0 4 " try\n" }{MPLTEXT 1 0 49 " qdat[www]:; RegSubs(\",[ ]*QQ\"=\"QQ\", Qdat [www]):\n" }{MPLTEXT 1 0 67 " SubstituteAll(%, \"QQ---------QQ\",\"QQ \"): SubstituteAll(%, \"'\",\"\"):\n" }{MPLTEXT 1 0 1 " " }{MPLTEXT 1 0 70 "SubstituteAll(%, \"QQ\",\"\\n\"): zalor:= RegSubs(\"[,]*[ ]*wher e\"=\"\\n\", %):" }{MPLTEXT 1 0 2 " \n" }{MPLTEXT 1 0 51 " zalo:= ssca nf(zalor, \"%s %s %s %s %s %s %s %s\"): \n" }{MPLTEXT 1 0 41 " print(< <($1..nops(%))> |Vector(zalo)>);\n" }{MPLTEXT 1 0 47 " if zalo[2]=badz alo2 then error \"badzalo2\" fi;\n" }{MPLTEXT 1 0 67 " substax(zalo[2] ); parse(%); zalocom:= `if`(type(%,`=`),rhs(%),%):\n" }{MPLTEXT 1 0 53 " zalocom:=subs(area=S, ABC=1, isolate(defR,S), %); \n" }{MPLTEXT 1 0 60 " fac:=`if`(indets(zalocom) intersect\{A,B,C\}=\{\},a,sin(A) ); \n" }{MPLTEXT 1 0 59 " tmqq:= zalocom*fac: if ency(%)<> www then erro r fi; true;\n" }{MPLTEXT 1 0 27 "catch: false; end try; end:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "methiliev:= proc() global tm qq, zalo; local zalocom, fac;\n" }{MPLTEXT 1 0 42 "printf(\"now trying iliev www= %d\\n\", www);" }{MPLTEXT 1 0 2 " \n" }{MPLTEXT 1 0 5 "try ;\n" }{MPLTEXT 1 0 66 "substax(zalo[1]); parse(%); zalocom:= `if`(type (%,`=`),rhs(%),%):\n" }{MPLTEXT 1 0 51 "zalocom:=subs(area=S, ABC=1, i solate(defR,S), %): \n" }{MPLTEXT 1 0 58 "if type(%,`*`) then zalocom: = remove(has,%,\{M.Iliev\}) fi;\n" }{MPLTEXT 1 0 59 "fac:=`if`(indets( zalocom) intersect\{A,B,C\}=\{\},a,sin(A) ); \n" }{MPLTEXT 1 0 59 " tm qq:= zalocom*fac: if ency(%)<> www then error fi; true;\n" }{MPLTEXT 1 0 27 "catch: false; end try; end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "methcutt:= proc() global tmqq;\n" }{MPLTEXT 1 0 43 " printf(\"now trying cutt www= %d\\n\", www);\n" }{MPLTEXT 1 0 25 "try tmqq:=cutt(1); true;\n" }{MPLTEXT 1 0 27 "catch: false; end try; end: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "methiso:= proc() global tmqq;\n" }{MPLTEXT 1 0 43 "printf(\"now trying isogt www= %d\\n\", w ww);" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 5 "try \n" }{MPLTEXT 1 0 77 " fdat[gdat[www]]; tmqq:= a^2/parse(%); if ency(%)= www then return tru e; fi;\n" }{MPLTEXT 1 0 16 "catch: end try;\n" }{MPLTEXT 1 0 6 "try \+ \n" }{MPLTEXT 1 0 77 " fdat[tdat[www]]; tmqq:= 1/parse(%); if ency(% )= www then return true; fi;\n" }{MPLTEXT 1 0 27 "catch: end try; fals e: end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "# todo:=[2167,2168,2169,op(todo)]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 96 "todo:= subs(9999=NULL, t odo): convert(todo, set) minus map(op, \{indices\}(saver)): www:= min( %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "while www infinity\n" } {MPLTEXT 1 0 66 "convert(todo, set) minus map(op, \{indices\}(saver)): www:= min(%);\n" }{MPLTEXT 1 0 71 "methguess() or methtrili() or meth iliev() or methcutt() or methiso(); \n" }{MPLTEXT 1 0 2 " \n" } {MPLTEXT 1 0 45 "try printf(\"--> %d = %a\", www, ency(tmqq)); \n" } {MPLTEXT 1 0 38 "elimifac(factor(tmqq)); printf(\"\\n\"); " }{MPLTEXT 1 0 45 "fintax(tmqx,1): saver[www]:= tmpp; print(%);\n" }{MPLTEXT 1 0 36 "catch: todo:= subs(www=NULL, todo); " }{MPLTEXT 1 0 38 "printf(\"k illing %d\\n\", www); end try:\n" }{MPLTEXT 1 0 3 "od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "www:=2168; fdat[%];" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "tmqx:='tmqx'; tmp:= substax( SubstituteAll(tmp0,\",\",\"\"));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "methguess(); tmqx; ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "tmp0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "lesw:= map(op, \{indices\} (saver)) minus \{infinity\};" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "nops(lesw);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 60 "Il faut envoyer cela dans un r\30 3\251pertoire lisible et navigable" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "try close(fd); catch : end try;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "fd := open(\"/home/douillet/public_html/etc/ryba.csv\", WRITE):\n" }{MPLTEXT 1 0 19 "for www in lesw do\n" }{MPLTEXT 1 0 48 "fprintf(fd, \"\"\"%d\"\";\"\"%s\"\"\\n\", www, saver[www])\n" }{MPLTEXT 1 0 14 "o d: close(fd);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 33 "Gestion des probl\303 \250mes r\303\251sistants " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "todo:= [$3515..jmax];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "M:= 'M':; todo:= subs(9999=NULL, todo): #www:=2671;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "# todo:=[61, op(todo)]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "convert(todo, set) minus map(op, \{indices\}(saver)): www:= min(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "qdat[ww w]:; RegSubs(\",[ ]*QQ\"=\"QQ\", Qdat[www]):\n" }{MPLTEXT 1 0 66 "Subs tituteAll(%, \"QQ---------QQ\",\"QQ\"): SubstituteAll(%, \"'\",\"\"): \n" }{MPLTEXT 1 0 70 "SubstituteAll(%, \"QQ\",\"\\n\"): zalor:= RegSub s(\"[,]*[ ]*where\"=\"\\n\", %):" }{MPLTEXT 1 0 1 " " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "zalo:= sscanf(zalor, \"%s %s %s %s %s %s %s %s\") : <<($1..nops(%))> |Vector(zalo)>;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "substax(zalo[1]); \n" }{MPLTEXT 1 0 48 "parse(%); za locom:= `if`(type(%,`=`),rhs(%),%):\n" }{MPLTEXT 1 0 42 "zalocom:=subs (ca=c*a, ABC=1, area=S, %); \n" }{MPLTEXT 1 0 79 "if type(%,`*`) then \+ zalocom:= remove(has,%,\{M.Iliev,D.Grinberg,E.Danneels\}) fi;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "fac:=`if`(indets(zalocom) in tersect\{A,B,C\}=\{\},a,sin(A) ); \n" }{MPLTEXT 1 0 53 "tmqq:= zaloco m*fac: ency(%); elimifac(factor(tmqq));\n" }{MPLTEXT 1 0 47 "#subs(def R2, expand(%)); elimifac(factor(%)): \n" }{MPLTEXT 1 0 41 "tmqx:= xcol lect(%, [R], factor); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "# cutt(): tmqx:= xcollect(%, [R, sqrt(3)], factor);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "tmqx:= a^2*b*c/(b+c-a)-sqrt( -a^2+2*a*b+2*a*c-b^2+2*b*c-c^2)*a*R;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "www:=2059; tmppz:= tmpp; ency(parse(tmpp)), length(%) ;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "fintax(tmqx); length( tmpp), parse(%); ency(%[2]); # mpp:=\"ohlala\";" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "saver[www]:= tmpp;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "lesw:= map(op, \{indices\}(saver)); nops(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 60 "Il faut envoyer cela dans un r\303\251pertoire lisible e t navigable" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "try close(fd); catch : end try;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "fd := open(\"/home/d ouillet/public_html/etc/ryba.csv\", WRITE):\n" }{MPLTEXT 1 0 19 "for w ww in lesw do\n" }{MPLTEXT 1 0 48 "fprintf(fd, \"\"\"%d\"\";\"\"%s\"\" \\n\", www, saver[www])\n" }{MPLTEXT 1 0 14 "od: close(fd);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 33 "Gestion des probl\303 \250mes incertains " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "M:= ' M':; todo:= subs(9999=NULL, todo): #www:=2671;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "# todo:=[61, op(todo)]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "c onvert(todo, set) minus map(op, \{indices\}(saver)): www:= min(%); nop s(%%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "qdat[www]:; Reg Subs(\",[ ]*QQ\"=\"QQ\", Qdat[www]):\n" }{MPLTEXT 1 0 66 "SubstituteAl l(%, \"QQ---------QQ\",\"QQ\"): SubstituteAll(%, \"'\",\"\"):\n" } {MPLTEXT 1 0 70 "SubstituteAll(%, \"QQ\",\"\\n\"): zalor:= RegSubs(\"[ ,]*[ ]*where\"=\"\\n\", %):" }{MPLTEXT 1 0 1 " " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "zalo:= sscanf(zalor, \"%s %s %s %s %s %s %s %s\"): << ($1..nops(%))> |Vector(zalo)>;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "substax(zalo[1]);\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 48 "pa rse(%); zalocom:= `if`(type(%,`=`),rhs(%),%):\n" }{MPLTEXT 1 0 42 "zal ocom:=subs(ca=c*a, ABC=1, area=S, %); \n" }{MPLTEXT 1 0 79 "if type(%, `*`) then zalocom:= remove(has,%,\{M.Iliev,D.Grinberg,E.Danneels\}) fi ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "fac:=`if`(indets(zaloc om) intersect\{A,B,C\}=\{\},a,sin(A) ); \n" }{MPLTEXT 1 0 44 "tmqq:= \+ zalocom*fac: elimifac(factor(tmqq));\n" }{MPLTEXT 1 0 47 "#subs(defR2, expand(%)); elimifac(factor(%)): \n" }{MPLTEXT 1 0 27 "xcollect(%, [R ], factor); \n" }{MPLTEXT 1 0 58 "(elimifac@factor@subs)(kashi, valR4, convert(%, sincos));\n" }{MPLTEXT 1 0 24 "tmqx1:= sort(%,[a,b,c]);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "cutt(): tmqx2:= xcollect(( elimifac@factor@subs)(valR4,%), [R, sqrt(3)], factor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "cutt23(): tmqx3:= xcollect((elimifa c@factor@eval@subs)(valR4, %), [R, sqrt(3)], factor); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "www;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "#tmqx1:= (elimifacu@factor)(bary2norm(pX(2))+bary2nor m(pX(3146)))[1];\n" }{MPLTEXT 1 0 51 "# tmqx1:= (elimifacu@factor@comp lem)(pX(3089))[1]; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "#tmq x1:= expand(a**2/(pX(3146))[1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "# map(sort, \{tmqx1,tmqx2,tmqx3\}, [a,b,c]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "# tmqx1:tmqx1:= %*signum(lcoeff(%, a)):tmqx2:tmqx2:= %*signum(lcoeff(%,a)):tmqx3:tmqx3:= %*signum(lcoeff( %,a)):\n" }{MPLTEXT 1 0 81 "\{tmqx2,tmqx3,tmqx1\};if nops(%)=1 then co nvert(op(%), string); saver[www]:= %; fi;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "lesw:= map(op, \{indices\}(saver)); nops(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 60 "Il faut envoyer cela dans un r\303\251pertoire lisible e t navigable" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "try close(fd); catch : end try;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "fd := open(\"/home/d ouillet/public_html/etc/ryba.csv\", WRITE):\n" }{MPLTEXT 1 0 19 "for w ww in lesw do\n" }{MPLTEXT 1 0 48 "fprintf(fd, \"\"\"%d\"\";\"\"%s\"\" \\n\", www, saver[www])\n" }{MPLTEXT 1 0 14 "od: close(fd);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "#gera[3574];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 4 "3568" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "www; Vector(zalo);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "# zalo[1]:= cat(zalo[1],zalo[2],zalo[3]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "substax(zalo[1]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 255 "\"b*c*(a^(12)-2*(b^(2)+c^(2 ))*a^(10)+(b^(4)+4*b^(2)*c^(2)+c^(4))*a^(8)-2*(b^(6)+c^(6))*a^(6)+(3*b ^(8)-3*b^(6)*c^(2)+b^(4)*c^(4)-3*b^(2)*c^(6)+3*c^(8))*a^(4)-(b^(10)-b^ (6)*c^(4)-b^(4)*c^(6)+c^(10))*a^(2)+b^(4)*c^(4)*(b^(2)-c^(2))^(2))\"; \+ tmqx:= parse(%)/b/c;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "Det (Matrix([pX(2),pX(3),[rot3](tmqx)])); factor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "tmqx-subs([b=c,c=b],tmqx): expand(%);;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 4 "3544" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "www;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 120 "\"30,511 64,879 669,3265 1640,1853 2088 ,3143 2489,2506 2491,2524\": RegSubs(\" *\"=\"=\", %):RegSubs(\", \"=\"_\", %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "gera[www];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "reduc:= proc(tmp) subs(ency_, [rot3](tmp)) ; evalf(%,20); %/add(k,k=%); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "reduz:= proc(tmp) subs(enzy_, [rot3](tmp)); evalf(%,2 0); %/add(k,k=%); end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "substax(zalo[1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 150 "\"b*c*(a^(2)*(b^(2)+c^(2))-(b^(2)-c^(2))^(2))*(2*a^( 6)+b^(6)+c^(6)-3*a^(4)*b^(2)-3*a^(4)*c^(2)-b^(2)*c^(4)-b^(4)*c^(2))\"; tmqx1:= factor(parse(%))/b/c;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "sort(tmqx2, [a,b,c]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "tmqx1; " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 27 "C'est pas le m\303\252me point... " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "tmqx2:= cutt(); encyclo(tmqx2);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "tmqx3:= (elimifac@factor@su bs)(valR4, cutt13()); encyclo(tmqx3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "tmqx4:= (elimifac@factor@subs)(valR4, cutt23()); ency clo(tmqx4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "# tmqx5:= ba ry2norm(pX(4))+bary2norm([rot3](parse(saver[3524])));\n" }{MPLTEXT 1 0 34 "# tmqx5:= (elimifac@factor)(%[1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "25,232: cevamul(pX(%[1]),pX(%[2]))[1]: tmqx5:= (elim ifac@factor)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "#3565,3 : reflection(pX(%[2]),pX(%[1]))[1]: tmqx5:= (elimifac@factor)(%);\n" }{MPLTEXT 1 0 93 "# 3565,3: reflection(pX(%[2]), [rot3](parse(saver[%[ 1]])))[1]: tmqx5:= (elimifac@factor)(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 117 "#1740,1918, 1955,2947: wedge(wedge(pX(%[1]),pX(%[ 2])),wedge(pX(%[3]),pX(%[4]))): factor(%)[1]: tmqx6:= elimifac(%);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "1..4: <<($%)> | Matrix([seq(reduc(tmqx||k), k=%)])>,\n" }{MPLTEXT 1 0 35 "M atrix([seq](reduz(tmqx||k), k=%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "xcollect(tmqx4, sqrt(-a^2*c^2+c^4-b^2*c^2-a^2*b^2+a^4 +b^4), factor);\n" }{MPLTEXT 1 0 45 "simplify(subs(WW2^2=W2^2, %)) ass uming W2>0:\n" }{MPLTEXT 1 0 51 "collect(%/W2, W2, factor); tmqx6:= su bs(W2=WW2, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "subs(WW2= -WW2, tmqx5)*tmqx6: (factor@expand)(%): tmp:= xcollect(%, WW2, factor) ;\n" }{MPLTEXT 1 0 75 "subs(WW2=-WW2, tmqx5)*tmqx5: (factor@expand)(%) : xcollect(%, WW2, factor);\n" }{MPLTEXT 1 0 30 "(factor)(UUU*tmp/%); \+ %/rot(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "www;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "www;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "#cros sdifference of every pair of points on the line X(647)X(2441)" }}}} {SECT 1 {PARA 5 "" 0 "" {TEXT 215 4 "3535" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "www;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "cutt ();" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "cutt23();" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "tmqx1:= cutt13();" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "1870,3086: Determinant(Matrix([[rot3](tmq x1), pX(%[1]),pX(%[1])]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "571,3087;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "www;\n" }{MPLTEXT 1 0 18 "tmqx1;tmqx2;tmqx3;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "tmqx2:= (elimifac@factor@sub s)(apbpc, tmqx2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "subs(R =-R, numer(tmqx1))*tmqx3: collect(%, R, factor);\n" }{MPLTEXT 1 0 59 " subs(valR4,%):collect(%, R, factor): (elimifac@factor)(%); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "subs(R=-R, numer(tmqx1))*tmq x1: collect(%, R, factor);\n" }{MPLTEXT 1 0 59 "subs(valR4,%):collect( %, R, factor): (elimifac@factor)(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "(elimifac@factor@subs)(apbpc , tmqx3): collect(%, R, factor);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "tmqx4:= (elimifac@factor@subs)(valR4, cutt13()): coll ect(%, R);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "encyclo(tmqx4 );encyclo(tmqx3);encyclo(tmqx2);encyclo(tmqx1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 26 "Gestion des trili 3515-fin" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "saver:= table(): todo:= [$ 3515..jm ax];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "M:= 'M':; todo:= su bs(9999=NULL, todo): #www:=2671;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "# todo:=[61, op (todo)]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "convert(todo, s et) minus map(op, \{indices\}(saver)): www:= min(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "qdat[www]:; RegSubs(\",[ ]*QQ\"=\"Q Q\", Qdat[www]):\n" }{MPLTEXT 1 0 66 "SubstituteAll(%, \"QQ---------QQ \",\"QQ\"): SubstituteAll(%, \"'\",\"\"):\n" }{MPLTEXT 1 0 70 "Substit uteAll(%, \"QQ\",\"\\n\"): zalor:= RegSubs(\"[,]*[ ]*where\"=\"\\n\", \+ %):" }{MPLTEXT 1 0 1 " " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "zalo:= s scanf(zalor, \"%s %s %s %s %s %s %s %s\"): <<($1..nops(%))> |Vector(za lo)>;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "substax(zalo[1]); \n" }{MPLTEXT 1 0 48 "parse(%); zalocom:= `if`(type(%,`=`),rhs(%),%): \n" }{MPLTEXT 1 0 42 "zalocom:=subs(ca=c*a, ABC=1, area=S, %); \n" } {MPLTEXT 1 0 79 "if type(%,`*`) then zalocom:= remove(has,%,\{M.Iliev, D.Grinberg,E.Danneels\}) fi;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 69 "fac:=`if`(indets(zalocom) intersect\{A,B,C\}=\{\},a,sin(A) ); #f ac:=a: \n" }{MPLTEXT 1 0 59 "tmqq:= zalocom*fac: tmqx:= elimifac(fact or(tmqq)); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "fint ax(tmqx,1); length(tmpp), parse(%); ency(%[2]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "[rot3](tmqx): (evalf@subs)(enzy_, convert(%,si ncos)): %/add(k,k=%) - zxyz[www]:\n" }{MPLTEXT 1 0 20 "(max@op@map)(ab s,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "saver[www]:= tmpp;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "lesw:= map(op, \{indices\}(saver)); nops(%);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "saver:=table():" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 210 60 "Il faut envoyer cela dans un r\30 3\251pertoire lisible et navigable" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "try close(fd); catch : end try;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "fd := open(\"/home/douillet/public_html/etc/ryba.csv\", WRITE):\n" }{MPLTEXT 1 0 19 "for www in lesw do\n" }{MPLTEXT 1 0 48 "fprintf(fd, \"\"\"%d\"\";\"\"%s\"\"\\n\", www, saver[www])\n" }{MPLTEXT 1 0 14 "o d: close(fd);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 4 "3527" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "recos:= eliminate(subs(a2toAA, kashi), \{AA,BB,CC\})[ 1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "select(has,kashi,sin ); resin:= eliminate(%, \{a,b,c\})[1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "www:=3529; CC:='CC': pX(www)[1]; simplify(%/sin(A), a 2toAA);\n" }{MPLTEXT 1 0 56 "(factor@subs)(recos,resin, %): elimifac(% ); combine(%);\n" }{MPLTEXT 1 0 77 "subs(A+B+C=Pi, rot3(A+B-C=Pi-2*C), rot3(-A-B+C=-Pi+2*C), rot3(B+C=Pi-A), %);\n" }{MPLTEXT 1 0 47 "tmqx:= (elimifac@factor)(2*%)*sin(A); ency(%);\n" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 62 "[rot3](tmqx): (evalf@subs)(enzy_,%): %/add(k,k=%); \+ zxyz[www]; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "3527; 3532; gg[%]; trigat[%]; parse(%); tmqx:= sin(A) ^2/%; ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "3529; " }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "3531; gg[%]; parse(saver[%] ); tmqx:= sin(A)^2/%; ency(%);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "\" 4 *cos (A) - 3 *sin (B)* sin (C) \"; substax(%); tmqx:= sin (A)/parse(%);ency(%);\n" }{MPLTEXT 1 0 21 "sin(A)^2/%%; ency(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "www; CC:='CC': pX(www)[1]; s implify(%, a2toAA);\n" }{MPLTEXT 1 0 64 "(factor@subs)(recos,resin, %) : elimifac(%): collect(%, sin(A));\n" }{MPLTEXT 1 0 58 "xtrig(%,B,C): \+ (factor@eval@subs)(B+C=Pi-A, %); combine(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 28 "3544 col lision des hashcodes" }}{EXCHG {PARA 0 "" 0 "" {TEXT 210 67 "X(3544) l ies on these lines: 2,3 121,519 3070,3317 3071,3316 " }}{PARA 0 "" 0 "" {TEXT 210 55 " X(3544) = inverse-in-orthocentroidal-circle of \+ X(3528)" }}{PARA 0 "" 0 "" {TEXT 210 76 " X(3544) = crossdifference of every pair of points on the line X(647)X(2441)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "cutX:= \+ proc(qa,qb,qc,qd);\n" }{MPLTEXT 1 0 69 "wedge(wedge(xyz[qa],xyz[qb]),w edge(xyz[qc],xyz[qd])): %/add(k,k=%): \n" }{MPLTEXT 1 0 79 "wedge(wedg e(zxyz[qa],zxyz[qb]),wedge(zxyz[qc],zxyz[qd])); %%, %/add(k,k=%) end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "tmp:= [rot3]((5*cos(B)*c os(C)+4*sin(B)*sin(C))*sin(A)): subs(ency_,%): \n" }{MPLTEXT 1 0 67 "% /add(k,k=%): subs(enzy_,tmp): evalf(%%,10),evalf(%/add(k,k=%),10);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "2,3, 121,519: evalf(cutX( %),10);\n" }{MPLTEXT 1 0 41 "3070,3317, 121,519: evalf(cutX(%),10); \n" }{MPLTEXT 1 0 38 "2,3, 3070,3317 : evalf(cutX(%),10);\n" } {MPLTEXT 1 0 38 "2,3, 3071,3316 : evalf(cutX(%),10);\n" }{MPLTEXT 1 0 84 "[-.5595776774, -1.087050205, 2.646627883],[-.5595776774, -1.0870 50205, 2.646627883];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "sub s(enzy_, crossdiff(pX(647),pX(2441))): evalf(%/add(k,k=%),10);\n" } {MPLTEXT 1 0 65 "subs(ency_, crossdiff(pX(647),pX(2441))): evalf(%/add (k,k=%),10);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "evalf(xyz[3 544],10), evalf(zxyz[3544],10);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "2,3, 121,519: cutX(%)[1]; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "(elimifacu@factor@wedge)(pX(121),pX(519));\n" } {MPLTEXT 1 0 39 "(elimifacu@factor@wedge)(pX(2),pX(3));\n" }{MPLTEXT 1 0 81 "(elimifacu@factor@wedge)(%%,%); (reduce@subs)(ency_, %),(reduc e@subs)(enzy_, %);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "(eli mifacu@factor@wedge)(pX(3070),pX(3317));\n" }{MPLTEXT 1 0 39 "(elimifa cu@factor@wedge)(pX(2),pX(3));\n" }{MPLTEXT 1 0 88 "tmqq:= (elimifacu@ factor@wedge)(%%,%); -(reduce@subs)(ency_, %),(reduce@subs)(enzy_, %); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "tmqq[1]: collect(%, R, \+ factor); subs(a2toAA, recos, resin, %);\n" }{MPLTEXT 1 0 27 "tmqx:= el imifac(factor(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "-(eli mifac@factor@subs)(valR4, tmqq[1]); convert(%, string);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "2,3, 3070,3317: cutX(%)[1]; ency(% );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT 215 4 "3550" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 " www;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "cutt(); ency(%);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 ": evalf(cutX(%),10);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "1, 3, 31, 34: evalf(cutX(%), 10);\n" }{MPLTEXT 1 0 33 "1, 3, 31, 43: evalf(cutX(%),10);\n" } {MPLTEXT 1 0 35 "1, 3, 614,1054: evalf(cutX(%),10);\n" }{MPLTEXT 1 0 38 "595, 978, 609, 1018:evalf(cutX(%),10);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "zalo[ 1]: substax(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 125 "\"(a^(5 )+b^(5)+c^(5)+b*c^(4)-c*a^(4)-b*a^(4)+b*c^(4)+a*c^(4)+a*b^(4)+2*a*b*c* (b*c-c*a-a*b))\"; sort(expand(parse(%)), [a,b,c]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "-a^5+b^5+c^5-b*c^4+a*c^4\n" }{MPLTEXT 1 0 61 "-a^4*b-a^4*c+2*a^2*b ^2*c+2*a^2*b*c^2+a*b^4-2*a*b^2*c^2-b^4*c;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "ency(%*a^2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "www; tmqx:= parse(fdat[www]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "substax(zalo[1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "(a^(4)+b^(4)+c^(4)+a^(2)*(-2*b^(2)-2*c^(2))-2*b^(2)*c ^(2)+3*b*c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "tmqx:= pX(www)[1];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "tmqx;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "hc[3544];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {PARA 0 "" 0 "" {TEXT 210 0 "" }}{PARA 0 "" 0 "" {TEXT 210 0 "" }} {PARA 0 "" 0 "" {TEXT 210 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 56 "Gestion de la trigo : tous les A qui restent ===> ohlala" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 174 "rule5:= \{ cos(2*Pi/5)=(1/4)*sqrt(5)-1/4, sin(2*Pi/5 )=(1/4)*sqrt(2)*sqrt(5+sqrt(5)), cos(Pi/5)= (1/4)*sqrt(5)+1/4, sin((1/ 5)*Pi) = (1/8)*sqrt(2)*sqrt(5+sqrt(5))*(sqrt(5)-1)\};\n" }{MPLTEXT 1 0 22 "evalf(map(lhs-rhs,%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 143 "rule8:= \{cos(3*Pi/8)=sin(Pi/8), sin(3*Pi/8)=cos(Pi/8), sin(Pi/ 8)=(1/2)*sqrt(2-sqrt(2)),cos(Pi/8)=(1/2)*sqrt(2+sqrt(2))\}; evalf(map( lhs-rhs,%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 48 "On s'occupe de la trigo.... mais avec ou sans Pi" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "todo:=table(): for jj i n [$ 1..jmax] do tmp:= fdat[jj];\n" }{MPLTEXT 1 0 53 "try tmq:= parse( tmp); if has(tmq, Pii) then next fi;\n" }{MPLTEXT 1 0 63 "if has(tmq, \+ \{A,B,C\}) then todo[jj]:= jj; fi; # print (jj, tmq)\n" }{MPLTEXT 1 0 82 "catch: end try; od: map(op,\{entries\}(todo)) minus \{\}: # \{356, 357, 358, 359, 360\}\n" }{MPLTEXT 1 0 30 "todo:= sort(convert(%, list ));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "defR2pow:= seq(map(i d^k, defR2),k=-3..4), R*defR2, 1/R*map(1/id, defR2):;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "convert(todo, set) minus map(op, \{ indices\}(saver)): www:= min(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "parse(fdat[www]); tmqx0:= subs(valom,kashi, kashkash,(expand@ convert)(%, sincos)):\n" }{MPLTEXT 1 0 45 "tmqx1:=collect( factor(%/R) , R, factor); ; \n" }{MPLTEXT 1 0 60 "tmqx:= (factor@expand@subs)(def R2pow, %);# tmpp:=\"ohlala\"; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 " # tmqx:= simplify(tmqx) assuming a>0,b>0,c>0, a+c-b>0 , R>0; " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "# tmqx:= subs(defR2, tmqx);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "tmqx:= collect(elimifac( factor(tmqx*4))/sqrt(1),R,factor); \n" }{MPLTEXT 1 0 54 "#tmqx:= simpl ify(%) assuming a>0, b>0, c>0 ; ency(%);\n" }{MPLTEXT 1 0 45 "# tmpp:= convert(%%, string); tmpp:=\"ohlala\";" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "# tmqx:= xcollect(tmqx, [(op@indets)(tmqx, sqrt)],fac tor);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "# xcollect(tmqx, ( op@indets)(tmqx,sqrt), abctax@factor); tmpp:= convert(%, string); ency (parse(%));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "fintax(-tmqx ,1); length(%), parse(%); #ency(%[2]); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "saver[www]:= tmpp;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "lesw:= map(op, \{indices\}(saver)) minus \{infinity\} ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "# convert(todo, set) m inus lesw;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 60 "Il faut envoyer cela dans un r\303\251pe rtoire lisible et navigable" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "try \+ close(fd); catch : end try;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "fd : = open(\"/home/douillet/public_html/etc/ryba.csv\", WRITE):\n" } {MPLTEXT 1 0 19 "for www in lesw do\n" }{MPLTEXT 1 0 48 "fprintf(fd, \+ \"\"\"%d\"\";\"\"%s\"\"\\n\", www, saver[www])\n" }{MPLTEXT 1 0 14 "od : close(fd);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "tmq; memo; encyclo(%%);" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 214 10 "Euler line " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 45 "Ne se p ose pas de questions sur les variables" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "elimifac2:= proc(tmqx_)\n" }{MPLTEXT 1 0 45 " global jjj, \+ lili, lon, fac, toto, tmqx;\n" }{MPLTEXT 1 0 22 " tmqx := tmqx_; \n" }{MPLTEXT 1 0 26 " for jjj to 2 do \n" }{MPLTEXT 1 0 69 " \+ if not type(tmqx, `*`) then print(\"fini\"); break; end if; \n" }{MPLTEXT 1 0 41 " lili := convert(tmqx, list); \n" } {MPLTEXT 1 0 49 " lon := length(convert(tmqx, string));\n" } {MPLTEXT 1 0 60 " for fac in lili do if evalb(rot(fac) = fac ) then\n" }{MPLTEXT 1 0 37 " tmqx := (tmqx)/(fac);\n" } {MPLTEXT 1 0 53 " lon := length(convert(tmqx, string)); \n" }{MPLTEXT 1 0 21 " next;\n" }{MPLTEXT 1 0 21 " \+ end if;\n" }{MPLTEXT 1 0 49 " toto := factor((tmqx) /(rotp(fac)));\n" }{MPLTEXT 1 0 57 " if length(convert(tot o, string)) < lon then\n" }{MPLTEXT 1 0 29 " tmqx := tot o;\n" }{MPLTEXT 1 0 53 " lon := length(convert(tmqx, str ing));\n" }{MPLTEXT 1 0 21 " end if;\n" }{MPLTEXT 1 0 19 " end do;\n" }{MPLTEXT 1 0 17 " end do;\n" }{MPLTEXT 1 0 13 " tmqx;\n" }{MPLTEXT 1 0 14 " end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "lineul: = (reduce@subs)(ency_, wedge(pX(2),pX(3))); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "listeul:= table(): for jj to jmax do \n" } {MPLTEXT 1 0 67 "if ps(lineul, subs(ency_, pX(jj)))=0 then listeul[jj ]:=1; fi; od; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "listeul:= sort(ma p(op, [indices](listeul)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "interface(rtablesize=25):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "uu:= 2: hirst||uu:= table(): \n" }{MPLTEXT 1 0 54 "for jj in lis teul do (ency@hirstmul)(pX(jj), pX(uu));\n" }{MPLTEXT 1 0 54 "if membe r(%, listeul) then hirst||uu[jj]:= %; fi; od:\n" }{MPLTEXT 1 0 22 "(op @eval)(hirst||uu):\n" }{MPLTEXT 1 0 52 "map( min@[lhs,rhs]=max@[lhs,rh s], convert(%, set)):\n" }{MPLTEXT 1 0 47 "convert(%, list): map([lhs, rhs],%): Matrix(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "uu: = 3: hirst||uu:= table(): \n" }{MPLTEXT 1 0 54 "for jj in listeul do ( ency@hirstmul)(pX(jj), pX(uu));\n" }{MPLTEXT 1 0 54 "if member(%, list eul) then hirst||uu[jj]:= %; fi; od:\n" }{MPLTEXT 1 0 22 "(op@eval)(hi rst||uu):\n" }{MPLTEXT 1 0 52 "map( min@[lhs,rhs]=max@[lhs,rhs], conve rt(%, set)):\n" }{MPLTEXT 1 0 47 "convert(%, list): map([lhs, rhs],%): Matrix(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "uu:= 4: hirs t||uu:= table(): \n" }{MPLTEXT 1 0 54 "for jj in listeul do (ency@hirs tmul)(pX(jj), pX(uu));\n" }{MPLTEXT 1 0 54 "if member(%, listeul) then hirst||uu[jj]:= %; fi; od:\n" }{MPLTEXT 1 0 22 "(op@eval)(hirst||uu): \n" }{MPLTEXT 1 0 52 "map( min@[lhs,rhs]=max@[lhs,rhs], convert(%, set )):\n" }{MPLTEXT 1 0 55 "tmpli:= convert(%, list): map([lhs, rhs],%): \+ Matrix(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "barymul(pX(29 ), isotom(pX(21))); ency(%);\n" }{MPLTEXT 1 0 41 "barymul(pX(25), isot om(pX(31))); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "ba rymul(pX(21), isotom(pX(29))); ency(%);\n" }{MPLTEXT 1 0 41 "barymul(p X(31), isotom(pX(25))); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "sort(map(op@[lhs,rhs], tmpli)):\n" }{MPLTEXT 1 0 46 "map([id, U-> ency(barymul(pX(U),pX(63)))], %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "uu:= 5: hirst||uu:= table(): \n" }{MPLTEXT 1 0 54 "f or jj in listeul do (ency@hirstmul)(pX(jj), pX(uu));\n" }{MPLTEXT 1 0 54 "if member(%, listeul) then hirst||uu[jj]:= %; fi; od:\n" }{MPLTEXT 1 0 22 "(op@eval)(hirst||uu):\n" }{MPLTEXT 1 0 52 "map( min@[lhs,rhs] =max@[lhs,rhs], convert(%, set)):\n" }{MPLTEXT 1 0 47 "convert(%, list ): map([lhs, rhs],%): Matrix(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "uu:= 21: hirst||uu:= table(): \n" }{MPLTEXT 1 0 54 "for jj in listeul do (ency@hirstmul)(pX(jj), pX(uu));\n" }{MPLTEXT 1 0 54 "if m ember(%, listeul) then hirst||uu[jj]:= %; fi; od:\n" }{MPLTEXT 1 0 22 "(op@eval)(hirst||uu):\n" }{MPLTEXT 1 0 52 "map( min@[lhs,rhs]=max@[lh s,rhs], convert(%, set)):\n" }{MPLTEXT 1 0 47 "convert(%, list): map([ lhs, rhs],%): Matrix(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "uu:= 26: hirst||uu:= table(): \n" }{MPLTEXT 1 0 54 "for jj in listeul do (ency@hirstmul)(pX(jj), pX(uu));\n" }{MPLTEXT 1 0 54 "if member(%, listeul) then hirst||uu[jj]:= %; fi; od:\n" }{MPLTEXT 1 0 22 "(op@eva l)(hirst||uu):\n" }{MPLTEXT 1 0 52 "map( min@[lhs,rhs]=max@[lhs,rhs], \+ convert(%, set)):\n" }{MPLTEXT 1 0 47 "convert(%, list): map([lhs, rhs ],%): Matrix(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 " (u2 - \+ vw)sec A : (v2 - wu)sec B : (v2 - uv)sec C, where " }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 82 " u : v : w = X(21); e.g., u = u(A,B,C) = 1/(cos B + cos C)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "hirstmul(pX(2), barymul( pu,isotom(pX1))): barymul(%, pX(92), pX(1),pX(1));;\n" }{MPLTEXT 1 0 34 "(ency@subs)(zipq(pu, pX(29)), %);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "tmp:= barymul((factor@hirst@barymul)(pX(75),pu),pX(4) );\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "subs(zipq(pu, pX(21 )), tmp): ency(%); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "elif zalo[1]=\"(1/v)^2+(1/w)^2-(1/u)^2\" then\n" } {MPLTEXT 1 0 64 "tmq0:= barymul((factor@sinvsq@barymul)(pX(75),pX(give n)),pX(1)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "eval(sinvsq) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "cmd:= \"(1/v)^2+(1/w)^ 2-(1/u)^2\";\n" }{MPLTEXT 1 0 18 "cmd:= \"u^2 + v*w\";" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 "zipq(pu, (barymul)(isotom(pX(1)), p x)); [rot3](subs(%, parse(cmd))): \n" }{MPLTEXT 1 0 44 "fcmd:= unapply (barymul(%, pX(1)),x,y,z)@op;;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "map(ency@fcmd@pX, listeul);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "listeul;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "pX648:= (normal@isotom@wedge)(pX(2),pX(3)): ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "(subs)(ency_,pX648)*8;" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 214 12 "Brocard line" }}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 73 "(reduce@subs)(shika, pX(3)); barymul(subs(rot3(a=si n(A)), pX(1)),pX(1));\n" }{MPLTEXT 1 0 47 "broc:= collect(evalmm(cot(D /2)*%%+%), [a,b,c]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "col lect(subs(kashi, broc)*2, [R, cot], ``);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "aboutlin('a1'=3,'a2'=6);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 77 "evalms(broc -k* pu): subs(cot(D/2)=cotDo2, %): eli: = eliminate(%,\{k,cotDo2\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(op)(eli[2])/a/b/c*2*R: collect(subs(kashi, -%), pu, factor);iso tom(pX(110));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "valcotD:= \+ (factor@subs)(eli[1], kashi, cotDo2): \n" }{MPLTEXT 1 0 43 "valcotD:= \+ cot(D/2)=collect(%, pu, factor);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 101 "qqq1:= pX(500): cot10:= (factor@subs)(zipq(pu, qqq1) , valcotD); subs(isolate(defS2,a+b+c), defR, %);\n" }{MPLTEXT 1 0 45 " simplify(%, \{defS2\}): collect(%, S, factor):\n" }{MPLTEXT 1 0 46 "(f actor@subs)(%, isolate(defR,S), cot(D/2)); \n" }{MPLTEXT 1 0 66 "cot11 := subs(R^2=R2, map(id, defR), R2=R^2, %); cot1:= rhs(cot10);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "tmq1:= subs(cot(D/2)= cot1, \+ kashi, broc); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "t mq2:= subs(cot(D/2)= -cot1, kashi, broc); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "tmq3:= subs(cot(D/2)= -1/cot1, kashi, broc) ; ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "tmq4:= subs(c ot(D/2)= 1/cot1, kashi, broc); ency(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "(reduce@normal@wedge)(pX(2), pX(94)):\n" }{MPLTEXT 1 0 52 "qqq2:= (reduce@factor@wedge)(%, wedge(pX(3),pX(6)));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(factor@subs)(zipq(pu, qqq2), valcotD); s ubs(isolate(defS2,a+b+c), defR, %);\n" }{MPLTEXT 1 0 45 "simplify(%, \+ \{defS2\}): collect(%, S, factor):\n" }{MPLTEXT 1 0 77 "(factor@subs)( %, isolate(defR,S), cot(D/2)); cot2:= subs(map(1/id, defR), %);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 92 "qqq1:= pX(50): (factor@subs) (zipq(pu, qqq1), valcotD); subs(isolate(defS2,a+b+c), defR, %);\n" } {MPLTEXT 1 0 45 "simplify(%, \{defS2\}): collect(%, S, factor):\n" } {MPLTEXT 1 0 77 "(factor@subs)(%, isolate(defR,S), cot(D/2)); cot1:= s ubs(map(1/id, defR), %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "(reduce@normal@wedge)(pX(5), pX(49)):\n" }{MPLTEXT 1 0 63 "qqq3:= (re duce@factor@wedge)(%, wedge(pX(3),pX(6))); # ency(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(factor@subs)(zipq(pu, qqq3), valcotD); subs(iso late(defS2,a+b+c), defR, %);\n" }{MPLTEXT 1 0 45 "simplify(%, \{defS2 \}): collect(%, S, factor):\n" }{MPLTEXT 1 0 46 "(factor@subs)(%, isol ate(defR,S), cot(D/2)); \n" }{MPLTEXT 1 0 46 "cot3:= subs(R^2=R2, map( id, defR), R2=R^2, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "( reduce@normal@wedge)(pX(4), pX(94)):\n" }{MPLTEXT 1 0 63 "qqq4:= (redu ce@factor@wedge)(%, wedge(pX(3),pX(6))); # ency(%);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "(factor@subs)(zipq(pu, qqq4), valcotD); subs(isola te(defS2,a+b+c), defR, %);\n" }{MPLTEXT 1 0 45 "simplify(%, \{defS2\}) : collect(%, S, factor):\n" }{MPLTEXT 1 0 46 "(factor@subs)(%, isolate (defR,S), cot(D/2)): \n" }{MPLTEXT 1 0 46 "cot4:= subs(R^2=R2, map(id, defR), R2=R^2, %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "map( ency, [qqq1,qqq2,qqq3,qqq4]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "cot1+cot2, cot3*cot2, cot3+cot4, cot1*cot4, cot3+cot4;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "cot(A)*cot(Pi/2-A); simplify (%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 210 0 "" }}} {SECT 0 {PARA 3 "" 0 "" {TEXT 213 11 "Check lines" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "# relire();" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "On commence \+ par v\303\251rifier la bonne syntaxe" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "for j to jmax do gerdat[j]; \n" }{MPLTEXT 1 0 34 "if gerdat[j]= \"none\" then next fi;\n" }{MPLTEXT 1 0 41 "RegSubs(\"_$\"=\"\",%); Re gSubs(\"^=\"=\"\",%); \n" }{MPLTEXT 1 0 72 "cat(\"[[\",SubstituteAll(% ,\"=\",\"],[\"), \"]]\"); SubstituteAll(%,\"_\",\",\"); \n" }{MPLTEXT 1 0 56 "quoi:= parse(%); [seq](`if`(nops(k)=2,NULL,k),k=quoi); \n" } {MPLTEXT 1 0 31 "if %<>[] then print(j,%) fi;; \n" }{MPLTEXT 1 0 52 "i f max(map(op, quoi))> jmax then print(j, quoi) fi;\n" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 3 "od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "# 888,805,892; Det(Mat rix([zxyz[%[1]],zxyz[%[2]],zxyz[%[3]]]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "# 3312,41,1321; Det(Matrix([zxyz[%[1]],zxyz[%[2]],zx yz[%[3]]]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "# sprintf(\"%04d_%04d\",4,15); sort ([2,33,17]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "gerd:=proc( j); gerdat[j]; RegSubs(\"_$\"=\"\",%); RegSubs(\"^=\"=\"\",%); \n" } {MPLTEXT 1 0 72 "cat(\"[[\",SubstituteAll(%,\"=\",\"],[\"), \"]]\"); S ubstituteAll(%,\"_\",\",\"); \n" }{MPLTEXT 1 0 14 "parse(%); end:" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "# dro:= table(); dro[41]:= \+ 4; assigned(dro[1]);assigned(dro[41]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "dro:=table(): tot:=0: \n" }{MPLTEXT 1 0 25 "for j fro m 1 to jmax do \n" }{MPLTEXT 1 0 34 "if gerdat[j]=\"none\" then next f i;\n" }{MPLTEXT 1 0 52 "gerdat[j]; RegSubs(\"_$\"=\"\",%); RegSubs(\"^ =\"=\"\",%); \n" }{MPLTEXT 1 0 72 "cat(\"[[\",SubstituteAll(%,\"=\",\" ],[\"), \"]]\"); SubstituteAll(%,\"_\",\",\"); \n" }{MPLTEXT 1 0 38 " quoi:= parse(%); tot:=tot+nops(quoi);\n" }{MPLTEXT 1 0 17 "for k in qu oi do\n" }{MPLTEXT 1 0 77 "if j " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 48 "lesdr:= sort(map(lhs, op(eval(dro)))): nops (%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 71 "lesqq sont des droites contenant au plus les deu x points de d\303\251finition " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "l esqq:= table():for j to nops(lesdr) do tmp:= lesdr[j];tmp1:= iquo(tmp, 10000,'tmp2');\n" }{MPLTEXT 1 0 17 "drok:= dro[tmp]:\n" }{MPLTEXT 1 0 73 "if nops([drok])<3 and \{drok\} minus \{tmp1,tmp2\} =\{\} then lesq q[tmp]:=1 fi\n" }{MPLTEXT 1 0 3 "od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "lesqq:= sort(map(op, [indices](lesqq)));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 35 "lesqq[13]; q1:= iquo(%,10000,'q0'):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 53 "gerd(q1); select(has,%,\{q0,1384\}); q2, q3:= op(op(%));" }}{PARA 0 "" 0 "" {TEXT 210 26 "q2, gerd(q2); q3,gerd (q3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 41 "q0,gerd(q0);1384: %,ger d(%); #gerd(1143);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "q1,q2,q3:2,1285,1384; Det(Ma trix([seq](zxyz[k],k=%)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "for j to nops(lesdr) do tmp:= lesdr[j]; tmp1:= iquo(tmp,10000,'tmp 2'); \n" }{MPLTEXT 1 0 56 "if dro[tmp][1]<>tmp1 then dro[tmp]:= tmp1,d ro[tmp] fi; \n" }{MPLTEXT 1 0 68 "if dro[tmp][2]<>tmp2 then dro[tmp]:= tmp1,tmp2,dro[tmp][2..-1] fi; \n" }{MPLTEXT 1 0 3 "od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "add(nops([dro[k]]), k=lesdr);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "combien:= [seq](nops([dro[k]]), k=lesdr):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "nops(combien);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "# seq(`if`(nops([dro[k]])=2,k,NULL) ,k=lesdr);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "stats[transform,tally](combien): tm p1, tmp2:= selectremove(has,%,Weight); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "# seq(seq(`if`(nops([dro[k]])=kk,k,NULL),k=lesdr), kk =tmp2);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "nops(tmp1)+nops (tmp2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 162 "siz:=8: sep:= < (A$siz)>:interface(rtablesize=20): [(op@eval@subs)(Weight=((U,V)-> [U, V]), tmp1), (op@map)(U-> [U,1], tmp2)]: sort(%, (aa,bb)->evalb(aa[1] " 0 "" {MPLTEXT 1 0 134 "tmp:= <, Matrix(%) , seq(,j=1..6) >: Matrix([seq(, k=0..5)]); latexx(0), latexz(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "colin:= proc(a_,b_,c_); Det(Matrix([pX(a_),pX(b_),pX (c_)])); \n" }{MPLTEXT 1 0 31 "(simplify@subs)(valR4, %); end;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "crowded:= seq(`if`(nops([dro [k]])>5,k,NULL),k=lesdr):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "nops(lesdr), nops([crowded]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "Digits;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 93 " tmq0:= [rot3]((a^6+(b^2+c^2)*a^4-5*(b^2-c^2)^2*a^2+(3*(b^2+c^2))*(b^2- c^2)^2)/(b^2+c^2-a^2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 " tmq:= subs(ency_, tmq0): tmq:= evalf(%/add(k,k=%)); resu:= NULL;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "for j in lesdr do tmp1:= iqu o(j,10000,'tmp2'); \n" }{MPLTEXT 1 0 46 "abs(Det(Matrix([tmq,xyz[tmp1] ,xyz[tmp2]]))); \n" }{MPLTEXT 1 0 56 "if % " 0 "" {MPLTEXT 1 0 5 " resu;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "(factor@Det@Matrix )([infor71[1],pX(57),pX(1354)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 210 14 "Les doublons-2" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "for j fro m 1 to 1 do tmp:= gerd(j); \n" }{MPLTEXT 1 0 32 "if tmp= [[none]] then next; fi;\n" }{MPLTEXT 1 0 15 "nu:= nops(%); \n" }{MPLTEXT 1 0 44 "[s eq](wedge(zxyz[k[1]],zxyz[k[2]]), k=tmp):\n" }{MPLTEXT 1 0 61 "tmq:= m ap(U-> evalf(signum(U[1])*U/sqrt(add(k^2, k=U))), %);\n" }{MPLTEXT 1 0 44 "tmqq:= sort(tmq, (U,V)-> evalb(U[1] " 0 "" {MPLTEXT 1 0 54 "# gerd(3113); # aboutlin( xbar=wedge(pX(1),pX(3312)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "# colin(1,3460,3470):; subs(ency_,%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "gerd(3250); tmp:= convert(map(op,%), set):;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "dro[10054]; \{%\} intersect tmp;" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "xres_ini(400, [` j`,` m`,` n`,` z`,` kim`]):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "tot:=0: for j from 1 to jmax do \n" }{MPLTEXT 1 0 34 "if gerdat[j]=\"none\" then ne xt fi;\n" }{MPLTEXT 1 0 54 "gerdat[j]; # RegSubs(\"_$\"=\"\",%); RegSu bs(\"^=\"=\"\",%); \n" }{MPLTEXT 1 0 72 "cat(\"[[\",SubstituteAll(%,\" =\",\"],[\"), \"]]\"); SubstituteAll(%,\"_\",\",\"); \n" }{MPLTEXT 1 0 38 "quoi:= parse(%); tot:=tot+nops(quoi);\n" }{MPLTEXT 1 0 70 "for k in quoi do tmp:= Det(Matrix([zxyz[j],zxyz[k[1]],zxyz[k[2]]])); \n" } {MPLTEXT 1 0 73 "if abs(%) > Float(1,-10) then Det(Matrix([xyz[j],xyz[ k[1]],xyz[k[2]]]));\n" }{MPLTEXT 1 0 42 " [j,op(k), evalf(tmp,10), e valf(%,10)];\n" }{MPLTEXT 1 0 17 " xres_run(%); \n" }{MPLTEXT 1 0 60 " # printf(\"%6d, %6d, %6d, %14.10f, %14.10f \\n\", op(%%)); \n" }{MPLTEXT 1 0 4 "fi;\n" }{MPLTEXT 1 0 4 "od;\n" }{MPLTEXT 1 0 43 "# if j mod 100 = 0 then print(\"---\",j); fi\n" }{MPLTEXT 1 0 26 "od: 'tot '=tot; xres_cut():" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "rres:= SubMat rix(Matrix(res),2..-1,1..-1): Dimension(rres);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "# relire();" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 81 "lesj:= `union`(seq(convert(convert(Column(rres,j),lis t), set), j=1..3)): nops(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "# lesdeso:= seq(`if`(rres[j,1]< rres[j,3],j,NULL),j=1..RowDimens ion(rres));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "lescas8:= \n" }{MPLTEXT 1 0 90 "\{s eq\}(`if`(abs(rres[j,5]/rres[j,4]) " 0 "" {MPLTEXT 1 0 11 "lesc as6:= \n" }{MPLTEXT 1 0 81 "\{seq\}(`if`(abs(rres[j,5]/rres[j,4]) " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "for j in lescas6 do Row(rres , j); print(j, %, evalf(%[5]/%[4],3)); \n" }{MPLTEXT 1 0 54 "x1,x2,x3: = %[1],%[2],%[3]: (factor@colin)(x1,x2,x3): \n" }{MPLTEXT 1 0 119 "eva lb(%=0), subs(enzy_,%), subs(ency_, %); print(%[1], evalf(%[2],5), eva lf(%[3],5)); select(has, gerd(x1), \{x2,x3\}), \n" }{MPLTEXT 1 0 76 "s elect(has, gerd(x2), \{x1,x3\}), select(has, gerd(x3), \{x1,x2\}); pri nt(%);od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "1912,1166,1203 ; [[1918,393,465]" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "# [pX( 1912),pX(1166),pX(1203)]; subs(ency_, %); map(U-> U/add(k,k=U), %);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "[pX(1918),pX(393),pX(465)] ; subs(ency_, %); \n" }{MPLTEXT 1 0 68 "map(U-> (factor@evalmm)(U/add( k,k=U)), %); Det(Matrix(%)); evalf(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "[pX(1920),pX(1002),pX(1611)]; subs(ency_, %); \n" } {MPLTEXT 1 0 68 "map(U-> (factor@evalmm)(U/add(k,k=U)), %); Det(Matrix (%)); evalf(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "x1,x2,x3 := 3420, 2163, 2291; tmp:= [pX(x1),pX(x2),pX(x3)];subs(ency_, %); \n" }{MPLTEXT 1 0 60 "Det(Matrix(%)); factor(Det(Matrix(tmp))): convert(%, list);\n" }{MPLTEXT 1 0 16 "subs(ency_, %);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 109 " # [pX(1358),pX(1120),pX(1125)];[[5/52, 49/104, 45/104], [-96/119, 129/ 119, 86/119], [17/56, 37/112, 41/112]];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "1616, 42, 1293" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "for j to RowDimension(rres) do Row(rres, j); x1,x2,x3:= %[1],% [2],%[3]: \n" }{MPLTEXT 1 0 55 "tmp:= (Determinant@Matrix)([pX(x1), pX (x2), pX(x3)]): \n" }{MPLTEXT 1 0 39 "if (simplify@subs)(ency_, tmp)=0 then \n" }{MPLTEXT 1 0 19 "tmp:= factor(tmp);\n" }{MPLTEXT 1 0 43 "se q(`if`(subs(ency_, k)=0,k,NULL), k=tmp);\n" }{MPLTEXT 1 0 29 "print([x 1,x2,x3], %); fi; od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "se q(ff[k], k=[3420, 2163, 2291]);b^2+a^2+2*b*c+2*a*c-3*c^2; subs(ency_, \+ %);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "enzy_; ency_;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {TEXT 210 67 "for j to \+ jmax do evalf(subs(enzy_, pX(j))); %/sqrt(add(k^2,k=%)); \n" }{TEXT 210 77 "wedge(%,zxyz[j]): add(abs(k),k=%); if % > Float(1,-10) then pr int (j,%) fi; \n" }{TEXT 210 40 "if j mod 100=0 then print(\"---\",j); fi;\n" }{TEXT 210 3 "od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "enc_dat[1..jmax]: sort(%): min(seq(%[j+1]-%[j], j=1..nops(%)-1)); \+ sprintf(\"%e\",%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "max(s eq(`if`(ff[j]=1, abs(add(k,k=xyz[j]))/add(abs(k), k=xyz[j]), NULL), j= 1..jmax));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "Digits:=10: \n" }{MPLTEXT 1 0 78 "s eq(`if`(ff[j]=1, abs(add(k,k=pX(j)))/add(abs(k), k=pX(j)), NULL), j=1. .550);\n" }{MPLTEXT 1 0 11 "Digits:=30:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "\{seq\}(`if`(ff[j]=1, \{indets\}(pX(j)),NULL), j=1..j max);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "seq(`if`(ff[j]=1, \+ (denom)(add(k,k=pX(j)) ), NULL), j=1..jmax);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 105 "lespetits:= min( seq(`if`(ff[j]=0, (abs@evalf)(s ubs(ency_, (numer)(add(k,k=pX(j))))), NULL), j=1..jmax));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "[seq]((factor)(add(k, k=subs(ency_, pX(j))) ), j=lespetits);\n" }{MPLTEXT 1 0 9 "evalf(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "www:=2133: pX(www)[1]; factor(%): t mqx:= elimifac(%); fintax(%); length(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "www,fintax(tmqx);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "www,fintax(tmqx);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 186 "\"(b-c)*(-a+b+c)*((a^2*b+a^2*c-2*a*b*c-b^3+b^2*c+b*c ^2-c^3)*a^(1/2)*b^(1/2)*c^(1/2)+(b^2+c^2-a^2)*(a^3-a^2*b-a^2*c-a*b^2+3 *a*b*c-a*c^2+b^3-b^2*c-b*c^2+c^3)^(1/2)*a)\": parse(%); indets(%);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 66 "[rot3](tmqx): (factor@zipd)(%, pX(3307)): (factor@s ubs)(enzy_,%);;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "WW1:= sqrt(a^2*b^2+a^2*c^2+b ^2*c^2);\n" }{MPLTEXT 1 0 50 "WW2:= sqrt(-a^2*c^2+c^4-b^2*c^2-a^2*b^2+ a^4+b^4);\n" }{MPLTEXT 1 0 87 "WW3:= sqrt(a^6-a^4*b^2-a^4*c^2-a^2*b^4+ 3*a^2*b^2*c^2-a^2*c^4+b^6-b^4*c^2-b^2*c^4+c^6);\n" }{MPLTEXT 1 0 68 "W W4:= sqrt(b^3-b^2*c-b*c^2+c^3-a*b^2+3*a*b*c-a*c^2-a^2*b-a^2*c+a^3);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {MARK "0 0 0" 0 }{VIEWOPTS 1 1 0 125 100 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }