{VERSION 7 0 "Windows XP" "7.0" } {USTYLETAB {PSTYLE "Normal256" -1 200 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "He ading 4" -1 20 1 {CSTYLE "" -1 -1 "Times" 1 10 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 "Ordered List 5" -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 144 2 0 2 2 -1 1 }{PSTYLE "Ordered List 1" -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 0 2 0 2 2 -1 1 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 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 "Bul let 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 "Left Justified Maple Out put" -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 "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 "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 "Diagnosti c" -1 9 1 {CSTYLE "" -1 -1 "Courier" 1 10 64 128 64 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 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 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 "Ordered List 3" -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 72 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 "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 "Dash Item" -1 16 1 {CSTYLE "" -1 -1 "Tim es" 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 "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Times" 1 12 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 "Ordered List 4" -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 108 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 "Line Printed Output" -1 6 1 {CSTYLE "" -1 -1 "Cour ier" 1 10 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 "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 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 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 "Error" -1 8 1 {CSTYLE "" -1 -1 "Cou rier" 1 10 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 "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 "Headin g 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 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 "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 0 0 1 }3 1 0 0 12 12 2 0 2 0 2 2 -1 1 }{PSTYLE "Ordered List 2" -1 205 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 }{CSTYLE " Help Variable" -1 25 "Courier" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "Text" -1 200 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "2D Math Italic Small201203204" -1 201 "Times" 1 1 0 0 0 1 1 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 "Page Number" -1 33 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small" -1 202 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Nonterminal" -1 24 "Courier" 1 12 0 0 0 1 2 1 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 "Maple Comment" -1 21 "Courier" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small202204207 " -1 203 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Maple Input " -1 0 "Courier" 1 12 255 0 0 1 2 1 2 2 1 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 "Help Fix ed" -1 23 "Courier" 1 10 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 "Plot Titl e" -1 27 "Times" 1 10 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Input" -1 19 "Times" 1 12 255 0 0 1 2 2 2 2 1 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 "Maple Input P laceholder" -1 204 "Courier" 1 12 200 0 200 1 2 1 2 2 1 2 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" -1 2 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small202" -1 205 "Times" 1 1 0 0 0 1 1 2 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 "Help Underlined Bold" -1 41 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 0 0 0 1 }{CSTYLE "Hyperlink" -1 17 "Times" 1 12 0 128 128 1 2 2 1 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 "Plot Text" -1 28 "Times" 1 8 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small201" -1 206 "Tim es" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Italic" -1 42 "Time s" 1 12 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "Output Labels" -1 29 "Ti mes" 1 8 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Heading" -1 26 "Ti mes" 1 14 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Help Normal" -1 30 "Ti mes" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Comment" -1 18 "Tim es" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Help Maple Name" -1 35 "Times" 1 12 104 64 92 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "2D Output" -1 20 "Times" 1 12 0 0 255 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Dictionary Hyp erlink" -1 45 "Times" 1 12 147 0 15 1 2 2 1 2 2 2 0 0 0 1 }{CSTYLE "He lp Emphasized" -1 22 "Times" 1 12 0 0 0 1 1 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 "LaTeX" -1 32 "Times" 1 12 0 0 0 1 2 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 "2D Math Italic Small202204206" -1 207 "Times" 1 1 0 0 0 1 1 2 2 2 2 2 0 0 0 1 }{CSTYLE "2D Math Italic Small202204" -1 208 "Times" 1 1 0 0 0 1 1 2 2 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 "Help Underlined" -1 44 "Times" 1 12 0 0 0 1 2 2 1 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 "2D Math Italic S mall201203" -1 209 "Times" 1 1 0 0 0 1 1 2 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 }{PSTYLE "" -1 206 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 }{CSTYLE "" -1 210 "Times" 1 26 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{PSTYLE "" -1 207 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 "" -1 208 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 "" -1 209 1 {CSTYLE "" -1 -1 "Tim es" 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 } {CSTYLE "" -1 211 "Times" 1 20 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{PSTYLE "" -1 210 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 "" -1 211 1 {CSTYLE "" -1 -1 "Tim es" 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 "" -1 212 1 {CSTYLE "" -1 -1 "Times" 1 20 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 "" -1 213 1 {CSTYLE "" -1 -1 "Times" 1 20 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 }} {SECT 0 {SECT 1 {PARA 3 "" 0 "" {XPPEDIT 2 0 "%?;" "%#%?G" }}}{EXCHG {PARA 206 "" 0 "" {TEXT 210 74 "Mod\351lisation de la propagation des \+ tsunamis \340 travers les oc\351ans." }}{PARA 207 "" 0 "" {TEXT 200 0 "" }}{PARA 208 "" 0 "" {TEXT 200 0 "" }}{PARA 209 "" 0 "" {TEXT 211 17 "Emmanuel Branlard" }}{PARA 210 "" 0 "" {TEXT 200 49 "(Juillet 2006 )\nhttp://emmanuel.branlard.free.fr/" }}{PARA 211 "" 0 "" {TEXT 200 0 "" }}{PARA 212 "" 0 "" {TEXT 200 17 "Informations : \n" }{TEXT 200 63 "Ce document n'est pr\351sent en ligne qu'\340 titre informatif." }} {PARA 213 "" 0 "" {TEXT 200 57 "Ces algorithmes se rapportent \340 mon rapport, partie V." }}}{EXCHG {PARA 0 "> " 0 "" {XPPEDIT 19 1 "%?;" " %#%?G" }}}{EXCHG {PARA 0 "> " 0 "" {XPPEDIT 19 1 "%?;" "%#%?G" }}} {SECT 1 {PARA 3 "" 0 "" {TEXT 212 14 "Initialisation" }}{EXCHG {PARA 0 "> " 0 "" {XPPEDIT 19 1 "%?;" "%#%?G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "restart:\n" }{MPLTEXT 1 0 14 "with(plots):\n" } {MPLTEXT 1 0 16 "with(plottools):" }}{PARA 7 "" 1 "" {TEXT 213 49 "War ning, the name changecoords has been redefined" }}{PARA 7 "" 1 "" {TEXT 213 57 "Warning, the assigned name arrow now has a global bindin g" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 214 38 "Donnees relatives a l'asp ect graphique" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "E:=700000: #echelle 700km est repr\351sent\351 par 1\n" }{MPLTEXT 1 0 61 "Xmin :=-18: #fenetre que l'on affiche (ici l'ocean indien)\n" }{MPLTEXT 1 0 12 "Xmax:=8.5:\n" }{MPLTEXT 1 0 11 "Ymin:=-8:\n" }{MPLTEXT 1 0 10 "Ymax:=6:\n" }{MPLTEXT 1 0 1 " " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 215 164 "L'echelle a \351t\351 choisie de telle sorte que les deux princip aux \351picentres du s\351ismes de Sumatra soient respectivement aux c oordonn\351es (0,0) et (-1,1)" }}}{EXCHG {PARA 200 "" 0 "" {TEXT 214 44 "Donn\351es relatives aux sources de tsunamis" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "x0:=0:\n" }{MPLTEXT 1 0 8 "y0:=0:\n" }{MPLTEXT 1 0 9 "x1:=-1:\n" }{MPLTEXT 1 0 6 "y1:=1:" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 8 "g:=9.81:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "c:=(x,y)->(g*abs(h(x ,y)))^(1/2);" }}{PARA 11 "" 1 "" {XPPMATH 20 ">I\"cG6\"f*6$I\"xGF$I\"y GF$F$6$I)operatorGF$I&arrowGF$F$*$)*&I\"gGF$\"\"\"-I$absG%*protectedG6 #-I\"hGF$F&F0#F0\"\"#F0F$F$F$" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {XPPEDIT 19 1 "%?;" "%#%?G" }}} {SECT 1 {PARA 3 "" 0 "" {TEXT 212 20 "Fonctions auxiliares" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "donne_droite:= (e,f,c,d) ->[(f-d)/( e-c),d-(f-d)/(e-c)*c]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "a ffiche:=proc(arg,xmin,xmax,ymin,ymax)\n" }{MPLTEXT 1 0 7 "PLOT(\n" } {MPLTEXT 1 0 104 "POLYGONS([[-8,-4],[-7.4,-2],[-6.4,-2],[-7,-4]],COLOR (RGB,0.43,0.22,0),STYLE(PATCHNOGRID)), #Madagascar\n" }{MPLTEXT 1 0 77 "##POLYGONS([[-6,0],[-4.5,-1.5],[-4.5,-1],[-6,0.5]],COLOR(RGB,0.43, 0.22,0)),\n" }{MPLTEXT 1 0 77 "##POLYGONS([[-4.5,-1],[-5,-3],[-5.3,-3] ,[-4.8,-1]],COLOR(RGB,0.43,0.22,0)),\n" }{MPLTEXT 1 0 84 "POLYGONS([[4 ,4],[-10,4],[-10,6],[4,6]],COLOR(RGB,0.43,0.22,0),STYLE(PATCHNOGRID)), \n" }{MPLTEXT 1 0 88 "POLYGONS([[-1,4],[-2.5,1.5],[-4,4]],COLOR(RGB,0. 43,0.22,0),STYLE(PATCHNOGRID)), ##Inde\n" }{MPLTEXT 1 0 94 "POLYGONS([ [3,-5],[3,-3],[6.5,-2],[8,-4],[7,-5]], COLOR(RGB,0.43,0.22,0),STYLE(PA TCHNOGRID)),\n" }{MPLTEXT 1 0 80 "POLYGONS([[2,1],[0,4],[0,5],[3,5]],C OLOR(RGB,0.43,0.22,0),STYLE(PATCHNOGRID)),\n" }{MPLTEXT 1 0 96 "POLYGO NS( [[0,1],[2,-1],[3,-1],[1,1]] ,COLOR(RGB,0.43,0.22,0),STYLE(PATCHNOG RID) ) , ##Sumatra\n" }{MPLTEXT 1 0 116 "POLYGONS( [[-7,4],[-9.5,-5],[ -12,-5],[-13,0],[-17,0],[-17,5],[-7,5]] ,STYLE(PATCHNOGRID), COLOR(RGB ,0.43,0.22,0)),\n" }{MPLTEXT 1 0 10 "op(arg),\n" }{MPLTEXT 1 0 82 "POL YGONS([[-18,-15],[-18,8],[10,8],[10,-15]], COLOR(RGB,0.58,0.59,1)), \+ ## fond\n" }{MPLTEXT 1 0 69 "AXESSTYLE(FRAME),VIEW(xmin..xmax,ymin..ym ax),SCALING(CONSTRAINED));\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "donne_droite(-5.3,-3,-4.8,-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 7$$\"+++++S!\"*$\"++++?=!\")" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 212 23 "Mod\351lisation du fond" }}{PARA 3 "" 0 "" {TEXT 212 29 " oc\351aniqu e et des c\364tes" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "Indonesie:= (x,y) -> 0<= x and y >= -x+1 and y<= -x+2 and y<=1 and y>=-1:\n" }{MPLTEXT 1 0 70 " Chine:=(x,y)-> x>=0 and y>=-1.5*x+4 and y>=4*x-7 and y>=0:\n " }{MPLTEXT 1 0 41 "Asie := (x,y)-> y>=4 and x<=4:\n" } {MPLTEXT 1 0 85 "Afrique := (x,y) -> y>= 3*x+24 and y>=-5 and (y> =-5*x-65 or y>=0) and x>=-17 :\n" }{MPLTEXT 1 0 84 "Madagascar := (x,y ) -> y<=3.34*x+22.67 and y>=3.34*x+19.34 and y>=-4 and y<=-2 :\n" } {MPLTEXT 1 0 63 "Inde := (x,y) -> y>=-1.67*x-2.67 and y>=1.67* x+4.67 :\n" }{MPLTEXT 1 0 114 "Australie:=(x,y) -> x>=3 and y<=1/ 4*x-23/4+2 and y<=-x+3+2 and y>=3*x-33+2 and (y>=-5) and y>=-14*x-17/4 : \n" }{MPLTEXT 1 0 58 "CoteAfrique := (x,y) -> y>= 3*x+21 and y>-5 \+ and x>=-10:\n" }{MPLTEXT 1 0 50 "CoteInde1 := (x,y) -> y>=-0.1*x+1. 5 and x<=4:\n" }{MPLTEXT 1 0 75 "CoteIndonesie1 := (x,y) ->x>=0 and y \+ >=-x and y<=-x+1 and y<=1 and y>=-1:\n" }{MPLTEXT 1 0 59 "CoteIndonesi e2 := (x,y) ->x>=1 and y >=-x+2 and y<=4*x-7:\n" }{MPLTEXT 1 0 74 "Des sus_madag1 := (x,y) -> y>=-x-6 and y<=-x-5.5 and x>=-6 and x<=-4.5: \+ \n" }{MPLTEXT 1 0 76 "Dessus_madag2 := (x,y) -> y>=4*x+17 and y<=4*x+ 18.2 and y>=-3 and y<=-1: \n" }{MPLTEXT 1 0 52 "Dorsale1Bas:=(x,y) -> \+ y<=5*x+6 and y>= 5*x+3.5:\n" }{MPLTEXT 1 0 52 "Dorsale1Haut:=(x,y) \+ -> y>=5*x+6 and y<= 5*x+8.5:\n" }{MPLTEXT 1 0 72 "Dorsale2Bas:=(x,y) -> y<=5*(x+2)+6 and y>= 5*(x+2)+3.5 and y>=-1.5:\n" }{MPLTEXT 1 0 70 "Dorsale2Haut:=(x,y) -> y>=5*(x+2)+6 and y<= 5*(x+2)+8.5 and y>=- 1.5:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 144 "h:=(x,y)->1000/E*p iecewise( Inde(x,y) or Asie(x,y) or Afrique(x,y) or Madagascar(x,y) o r Indonesie(x,y) or Chine(x,y) or Australie(x,y) , 0 ,\n" }{MPLTEXT 1 0 47 " CoteIndonesie2(x,y), -1.5,\n" }{MPLTEXT 1 0 46 " CoteInde1(x,y) , 1.5*y-6,\n" }{MPLTEXT 1 0 53 " CoteAfrique(x,y), -4*x+4/3*y-32,\n" }{MPLTEXT 1 0 52 " CoteIndonesie1(x,y), 4*x+4*y-4,\n" }{MPLTEXT 1 0 44 " Dessus_madag1(x,y), -1,\n" }{MPLTEXT 1 0 44 " Dessus_madag2(x,y), -1,\n" }{MPLTEXT 1 0 57 " \+ Dorsale1Bas(x,y), -2*x+0.4*y-5.4+1 ,\n" }{MPLTEXT 1 0 57 " Dorsale1Haut(x,y), 2*x-0.4*y-0.6+1 ,\n" }{MPLTEXT 1 0 63 " Dorsale2Bas(x,y), -2*(x+2)+0.4*y-5.4+2.5 , \n" }{MPLTEXT 1 0 63 " Dorsale2Haut(x,y), 2*(x+2)-0. 4*y-0.6+2.5 ,\n" }{MPLTEXT 1 0 19 " -5):" }}}{EXCHG {PARA 0 "> " 0 "" {XPPEDIT 19 1 "Typesetting:-mrow(Typesetting:-mi(\" \"), Typesetting:-mrow(Typesetting:-mi(\"##\"), Typesetting:-mspace(he ight = \"0.0 ex\", width = \"0.5 em\", depth = \"0.0 ex\", linebreak = \"auto\"), Typesetting:-mi(\"ici\"), Typesetting:-mspace(height = \"0 .0 ex\", width = \"0.5 em\", depth = \"0.0 ex\", linebreak = \"auto\") , Typesetting:-mi(\"h\"), Typesetting:-mspace(height = \"0.0 ex\", wid th = \"0.5 em\", depth = \"0.0 ex\", linebreak = \"auto\"), Typesettin g:-mi(\"est\"), Typesetting:-mspace(height = \"0.0 ex\", width = \"0.5 em\", depth = \"0.0 ex\", linebreak = \"auto\"), Typesetting:-mi(\"pr is\"), Typesetting:-mspace(height = \"0.0 ex\", width = \"0.5 em\", de pth = \"0.0 ex\", linebreak = \"auto\"), Typesetting:-mi(\"néga tif\")), Typesetting:-mi(\"\"));" "-I%mrowG6#/I+modulenameG6\"I,Typese ttingGI(_syslibGF'6%-I#miGF$6#Q!F'-F#6--F,6#Q###F'-I'mspaceGF$6&/%'hei ghtGQ'0.0~exF'/%&widthGQ'0.5~emF'/%&depthGF9/%*linebreakGQ%autoF'-F,6# Q$iciF'F4-F,6#Q\"hF'F4-F,6#Q$estF'F4-F,6#Q%prisF'F4-F,6#Q/négat ifF'F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "est_en_mer:=proc( x1,y1)\n" }{MPLTEXT 1 0 193 " not( evalf(Inde(x1,y1) or Indonesie(x1 ,y1) or Afrique(x1,y1) or Madagascar(x1,y1) or Asie(x1,y1) or Australi e(x1,y1) or Chine(x1,y1))) and y1<=Ymax and y1>=Ymin and x1>=Xmin and \+ x1<=Xmax :\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 "" {TEXT 200 24 "Affichage des continents" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "affiche([],Xmin,Xmax,Ymin,Ym ax); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 200 30 "Affichage du fond oc\35 1anique" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 148 "plot3d(\{h(x,y) \}, x=Xmin..Xmax,y=Ymin..Ymax,view=-6000/E..1000/E, axes=boxed,numpoin ts=10000,shading=Z, style=PATCHNOGRID,scaling=UNCONSTRAINED); " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 92 "densityplot(h(x,y),x=Xmin..Xmax,y=Ymin..Ymax,axes=bo xed,numpoints=5000,scaling=constrained);" }{TEXT 215 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 212 64 "Mod\350le 1 (propagation rectiligne) - Calculs de coordonn\351 es" }}{PARA 0 "" 0 "" {TEXT 215 389 "Ce mod\350le consid\350re une sou rce ponctuelle de tsunami (coordonn\351es x0, y0), qui g\351n\350re de s ondes dans un nombre fix\351 de direction (donn\351es par 2*k*Pi/ang le) et qui se propagent rectilignement. Leur vitesse et leur position \+ est calcul\351e tout les DT secondes. L'onde s'arrete si elle rencontr e la terre, ou au bout d'un temps prof_max*DT d\351fini par l'utilisat eur.\n" }{TEXT 215 52 "L'indice j permet de definir une couleur d'affi chage" }}{PARA 0 "" 0 "" {TEXT 215 124 "Bcercles est un booleen , qui \+ active ou non l'affichage de cercles (pour comparer avec la propagatio n rectiligne uniforme)\n" }{TEXT 215 178 "La version beta effectue les calculs de coordonn\351es (servira pour affiche_tout plus loin), et \+ modele_m1 est adapt\351 pour la fonction d'affichage affiche_m1 (pour \+ modele 1)." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "modele_m1_beta := proc(x0,y0,DT,ang le,prof_max)\n" }{MPLTEXT 1 0 34 "local k,j,n,L,TabPoints,x1,y1,d;\n" }{MPLTEXT 1 0 8 "L:=[];\n" }{MPLTEXT 1 0 23 "n:=trunc(2*Pi/angle);\n" }{MPLTEXT 1 0 25 "for k from 0 to n-1 do \n" }{MPLTEXT 1 0 10 " x1:=x0 ;\n" }{MPLTEXT 1 0 10 " y1:=y0;\n" }{MPLTEXT 1 0 17 " TabPoints:=[];\n " }{MPLTEXT 1 0 31 " for j from 1 to prof_max do\n" }{MPLTEXT 1 0 31 " if est_en_mer(x1,y1) then \n" }{MPLTEXT 1 0 32 " d:=DT*c(x1,y1)/s qrt(700000);\n" }{MPLTEXT 1 0 35 " x1:=evalf(d*cos(k*angle)+x1,6);\n" }{MPLTEXT 1 0 35 " y1:=evalf(d*sin(k*angle)+y1,6);\n" }{MPLTEXT 1 0 5 "fi;\n" }{MPLTEXT 1 0 37 "TabPoints:=[op(TabPoints),[x1,y1]];\n" } {MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 23 "L:=[op(L),TabPoints];\n" } {MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 4 "L;\n" }{MPLTEXT 1 0 4 "end:" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "modele_1 := proc(x0,y0,DT, angle,prof_max,couleur1,j,Bcercles)\n" }{MPLTEXT 1 0 80 "local k,maxk, max,n,arret,L,TabPoints,x1,y1,d,profondeur,Centre,Points,Cercles;\n" } {MPLTEXT 1 0 8 "L:=[];\n" }{MPLTEXT 1 0 23 "n:=trunc(2*Pi/angle);\n" } {MPLTEXT 1 0 25 "for k from 0 to n-1 do \n" }{MPLTEXT 1 0 9 "x1:=x0;\n " }{MPLTEXT 1 0 9 "y1:=y0;\n" }{MPLTEXT 1 0 16 "TabPoints:=[];\n" } {MPLTEXT 1 0 16 "profondeur:=0;\n" }{MPLTEXT 1 0 15 "arret:=false;\n" }{MPLTEXT 1 0 47 "while (profondeurmax) then max:=nops(L[k]); maxk:=k; fi;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 23 "if(nops(L[k])>0) then\n" }{MPLTEXT 1 0 78 " Points := [op(Points), POINTS( op(L[k]) ,SYMBOL(DIAMOND),COLOR(HUE,j/n)) ];\n" }{MPLTEXT 1 0 5 "fi;\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 19 "if(Bcercles) then\n" }{MPLTEXT 1 0 24 "for k from 1 to max do\n" }{MPLTEXT 1 0 118 " Cercles := [op(Cercles), circle( [x0,y0],sqrt( (L [maxk][k][1]-x0)**2 +(L[maxk][k][2]-y0)**2) ,color=couleur1 ) ];\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 38 "[op(Centre),op(Points),op(Ce rcles)];\n" }{MPLTEXT 1 0 6 "else\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 26 "[op(Centre),op(Points)];\n" }{MPLTEXT 1 0 5 "fi;\n" }{MPLTEXT 1 0 4 "end:" }}{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 3 "" 0 "" {TEXT 212 50 "Mod\350le 1 - Proc\351dures d'affichages de points" }}{PARA 0 "" 0 "" {TEXT 215 244 "La proc\351d ure suivante utilise les fonctions d\351finies plus haut (notamment la fonction auxiliare affiche) pour afficher le r\351sultat obtenu pour \+ un nombre n de sources situ\351es entre deux epicentres de coordonn\35 1es (x0 y0) et (x1 y1)" }{MPLTEXT 1 0 1 "." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "affiche_discret_m1:=proc(x0,y0,x1,y1,n,DT,angle,prof ,Bcercles,xmin,xmax,ymin,ymax)\n" }{MPLTEXT 1 0 13 "local Lt,j;\n" } {MPLTEXT 1 0 34 "Lt:=POLYGONS([[x0,y0],[x1,y1]]);\n" }{MPLTEXT 1 0 23 "for j from 0 to n do \n" }{MPLTEXT 1 0 118 " Lt:=Lt,op(modele_1(x0+( j/n)*(x1-x0) ,y0+(j/n)*(y1-y0) ,DT,angle,prof,dark, j, Bcercles,xmin,x max,ymin,ymax )); od;\n" }{MPLTEXT 1 0 36 "affiche([Lt],xmin,xmax,ymin ,ymax);\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "" 0 "" {TEXT 215 167 "De la principale s ource du tsunami de Sumatra (coordonn\351es (0,0)), on regarde l'evolu tion des ondes partant dans 120 directions pendant 3600*12 secondes (1 2 heures)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "affiche( mode le_1(x0,y0,3600,Pi/60,12,blue,1,false),Xmin,Xmax,Ymin,Ymax);\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "affiche( modele_1(x0,y0,360 0,Pi/60,12,blue,1,true),Xmin,Xmax,Ymin,Ymax);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 215 143 "On dis pose 6 sources entres les deux sources principales (0,0) (-1,1), les a utres param\350tres sont inchang\351s (pas temporelle et angulaire)" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "affiche_discret_m1(x0,y0,x 1,y1,6,3600,Pi/20,15,false,Xmin,Xmax,Ymin,Ymax);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "affiche_discret_m1(x0,y0,x1,y1,10,1800,Pi/6,2 0,false,Xmin,Xmax,Ymin,Ymax);" }}{PARA 13 "" 1 "" {TEXT 216 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }{TEXT 215 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 212 74 "Mod\350le 1 - Proc\351dures d'affichages de Polygones de m\352mes instants" }}{EXCHG {PARA 0 "" 0 "" {TEXT 215 259 "Compte tenu des r\351sultats obtenus ci-dessus (certaines dir ections de propagation sont privil\351gi\351es), on peut r\351soudre \+ le probl\350me de discr\351tisation des directions en reliant les poin ts qui repr\351sente l'onde dans l'espace au meme instant." }}{PARA 0 "" 0 "" {TEXT 215 114 "Cette fonction est complexe car il faut pour ch aque source relier les points qui correspondent au meme instant. \n" } {TEXT 215 343 "Or les fonctions pr\351c\351dentes calculent ces points sources par sources. On a utilis\351 ici, une m\351thode g\351om\351t rique bas\351es sur les angles form\351s dans l'intersection de deux c ercles pour retrouver les points correspondant aux memes instants. Tou tefois cette m\351thode est complexe et nous ferons plus simple dans l a suite." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "polygones_meme_ instant_complex_m1 := proc (x0,y0,x1,y1,n,DT,angle,prof)\n" }{MPLTEXT 1 0 80 " local j,k,l,p,Poly,Pas,Rmoyen,L_disque,theta,theta_min,theta_ max,i_min,i_max;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 32 "p := 2*trun c(evalf(Pi/angle));\n" }{MPLTEXT 1 0 43 "Pas := sqrt((x0-x1) ** 2+(y0- y1) ** 2)/n;\n" }{MPLTEXT 1 0 35 "theta := arctan((y0-y1)/(x0-x1));\n" }{MPLTEXT 1 0 15 "Poly := NULL;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 139 "L_disque := [seq(modele_m1_beta(x0+((j-1)/n)*(x1-x0) ,y0+((j-1) /n)*(y1-y0),DT,angle,prof,blue,COLOR(RGB,(j-1)/n,0,1-(j-1)/n)),j=1 .. \+ n)];\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 62 " f or l from 1 to prof do ## on est a une certaine profondeur\n" } {MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 17 "Rmoyen := NULL;\n" }{MPLTEXT 1 0 29 "theta_min := array(1 .. n);\n" }{MPLTEXT 1 0 29 "theta_max := ar ray(1 .. n);\n" }{MPLTEXT 1 0 25 "i_min := array(1 .. n);\n" }{MPLTEXT 1 0 25 "i_max := array(1 .. n);\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 58 "## pour chaque disque on calcul le rayon moyen Rmoyen[j]\n" } {MPLTEXT 1 0 161 " Rmoyen := [ seq(sum( sqrt( (L_disque[j][k][l][1]-(x 0+((j-1)/n)*(x1-x0))) ** 2+(L_disque[j][k][l][2]-(y0+((j-1)/n)*(y1-y0) )) ** 2 ), k=1 .. p)/p, j=1 .. n)] ; \n" }{MPLTEXT 1 0 3 " \n" } {MPLTEXT 1 0 60 "## pour chaque disque on calcule les deux angles mini maux \n" }{MPLTEXT 1 0 26 " for j from 1 to n-1 do \n" }{MPLTEXT 1 0 79 " theta_max[j] := evalf(Pi-evalf(arccos((Pas-Rmoyen[j+1])/Rmoyen[j] ))+theta); \n" }{MPLTEXT 1 0 77 " theta_min[j+1] := evalf(evalf(arccos ((Pas-Rmoyen[j])/Rmoyen[j+1]))+theta);\n" }{MPLTEXT 1 0 7 " od ;\n" } {MPLTEXT 1 0 26 "theta_min[1] := 0+theta;\n" }{MPLTEXT 1 0 27 "theta_m ax[n] := Pi+theta;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 32 "## a chaq ue angles son indice \n" }{MPLTEXT 1 0 24 " for j from 1 to n do \n" } {MPLTEXT 1 0 54 " i_max[j] := trunc(evalf(theta_min[j]/angle)) mod p; \n" }{MPLTEXT 1 0 57 " i_min[j] := trunc(evalf(theta_max[j]/angle)+1) \+ mod p; \n" }{MPLTEXT 1 0 7 " od ;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 39 "## on est apte a faire les polygones \n" }{MPLTEXT 1 0 94 " Poly := Poly, POLYGONS( [ seq(seq(L_disque[j][k][l],k=i_min[j] .. i_max[j] ),j=1 .. n)] ); \n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 7 " od ;\n" } {MPLTEXT 1 0 9 "[Poly];\n" }{MPLTEXT 1 0 5 "end :" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 83 "polygones_meme_instant_m1:=proc(x0,y0,DT,ang le,prof,Bcercles,xmin,xmax,ymin,ymax)\n" }{MPLTEXT 1 0 54 "local L_dis que,k,j,Poly ,Centre,Cercles,max,maxk,p ;\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 32 "p := 2*trunc(evalf(Pi/angle));\n" }{MPLTEXT 1 0 13 "P oly:=NULL;\n" }{MPLTEXT 1 0 50 "L_disque := modele_m1_beta(x0,y0,DT,an gle,prof);\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 25 "for k from 1 to p rof do\n" }{MPLTEXT 1 0 100 " Poly:=Poly,POLYGONS( [seq(L_disque[j][k ],j=1..p )],COLOR(HUE,k/prof),THICKNESS(0),LINESTYLE(0));\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 60 "Centre:=[POINTS([x0,y0],SYMBOL(CROSS) ,COLOR(RGB,1,0,0) )];\n" }{MPLTEXT 1 0 14 "Cercles:=[];\n" }{MPLTEXT 1 0 9 "max:=1;\n" }{MPLTEXT 1 0 10 "maxk:=1;\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 35 "for k from 1 to nops(L_disque) do\n" }{MPLTEXT 1 0 56 " if(nops(L[k])>max) then max:=nops(L[k]); maxk:=k; fi;\n" } {MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 19 "if(Bcerc les) then\n" }{MPLTEXT 1 0 24 "for k from 1 to max do\n" }{MPLTEXT 1 0 114 " Cercles := [op(Cercles), circle( [x0,y0],sqrt( (L[maxk][k][1]- x0)**2 +(L[maxk][k][2]-y0)**2) ,Color=blue ) ];\n" }{MPLTEXT 1 0 5 " od;\n" }{MPLTEXT 1 0 20 "[op(Centre),Poly];\n" }{MPLTEXT 1 0 6 "else\n " }{MPLTEXT 1 0 35 "[op(Centre),Poly,op(Cercles)];fi;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "affiche_polygone s_meme_instant_discret_m1:=proc(x0,y0,x1,y1,n,DT,angle,prof,Styl)\n" } {MPLTEXT 1 0 59 "local Lt,l,L_disque,k,j,Poly ,Centres,Cercles,max,max k,p;\n" }{MPLTEXT 1 0 36 "Poly:=POLYGONS([[x0,y0],[x1,y1]]);\n" } {MPLTEXT 1 0 9 "Lt:=[];\n" }{MPLTEXT 1 0 32 "p := 2*trunc(evalf(Pi/ang le));\n" }{MPLTEXT 1 0 13 "Poly:=NULL;\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 23 "for j from 0 to n do \n" }{MPLTEXT 1 0 83 " Lt:=[op( Lt),(modele_m1_beta(x0+(j/n)*(x1-x0),y0+(j/n)*(y1-y0),DT,angle,prof))] ;\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 140 "Poly:=Poly, seq(seq( P OLYGONS([seq(Lt[k][j][l],j=1..p)],COLOR(HUE,l/(prof)),STYLE(Styl),THIC KNESS(0),LINESTYLE(0)) ,k=1..n+1),l=1..prof) ;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 61 "Centres:=[POINTS([x0,y0],SYMBOL(CROSS),COLOR(RGB,1, 0,0) )];\n" }{MPLTEXT 1 0 21 "[op(Centres),Poly];\n" }{MPLTEXT 1 0 2 " \n" }{MPLTEXT 1 0 38 "affiche([Poly],Xmin,Xmax,Ymin,Ymax);\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 92 "affiche(polygones_meme_instant_complex_m1(x0,y0,x1 ,y1,1,3600,Pi/30,10),Xmin,Xmax,Ymin,Ymax);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 215 98 "Structure \+ : polygones_meme_instant(x0,y0,Pas_temporel,Pas_angulaire,Profondeur, \+ Trace_de_cercles.)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "affic he(polygones_meme_instant_m1(x0,y0,3600,Pi/40,10,false),Xmin,Xmax,Ymin ,Ymax);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "Style:=PATCHNOGR ID:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 215 61 "Style peut accueillir les valeur : PATCHNOGRID,LINE,PATCH...." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "affiche_polygones_meme_instant_discret_m1(x0,y0,x1,y1 ,2,1800,Pi/20,20,Style);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }{TEXT 215 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 212 32 "Mod\350le 2 - Principe d'Huygens" }}{EXCHG {PARA 0 "" 0 "" {TEXT 215 628 "Devant \+ le fait que les r\351sultats que l'on obtient ne permettent pas d'expl iquer le fait que l'onde \"fait le tour des iles\", il nous faut appli quer un mod\350le dans lequel en un point travers\351 par l'onde et \3 40 un instant donn\351, ce point se comporte lui m\352me comme une sou rce. Un tel mod\350le fait \351videmment appel a la recursion. Toutefo is, celle-ci est couteuse en m\351moire pour Maple, et g\351n\350re de s points qui dans la r\351alit\351 n'existerait pas (l'onde repars en \+ arri\350re). On effectuera donc en second lieu, un algorithme it\351ra tif, avec des filtres permettant de supprimer de tels points." }} {PARA 0 "" 0 "" {TEXT 215 0 "" }}{PARA 0 "" 0 "" {TEXT 215 587 "Pour \+ \351viter trop de calcul on introduit une \"restriction\". Meme si le \+ point se comporte comme une source ponctuelle, il ne va se propager da ns toutes les directions (l'onde ne va pas revenir en arri\350re), on \+ suppose donc que le point emet un faisceau d'onde autours de la direct ion de propagation. Restr designe le pourcentage de l'angle du faiscea u par rapport \340 2.Pi. Ainsi, si restr vaut 100%; l'onde emet dans t outes les directions (meme en arri\350re), si restr vaut 50%, l'onde e met seuleument en avant, et si restr vaut 0 on est dans le cas de la p ropagation rectiligne." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "modele_2_rec:=proc(x0,y0, DT,angle,prof,restr,xmin,xmax,ymin,ymax)\n" }{MPLTEXT 1 0 24 "local pa rcours_rec,n ;\n" }{MPLTEXT 1 0 27 "n:=trunc(restr*Pi/angle);\n" } {MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 50 "parcours_rec:= proc(x,y,imin,ima x,prof_en_cours)\n" }{MPLTEXT 1 0 20 "local k,d,x1,y1,L;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 51 "L:=POINTS([x,y],COLO R(HUE,(prof_en_cours/prof)));\n" }{MPLTEXT 1 0 23 "d:=DT*c(x,y)/sqrt(E );\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 28 "for k from imin to imax d o\n" }{MPLTEXT 1 0 32 " x1:=evalf(d*cos(k*angle)+x);\n" }{MPLTEXT 1 0 32 " y1:=evalf(d*sin(k*angle)+y);\n" }{MPLTEXT 1 0 54 "if( est_en_m er(x1,y1) and prof_en_cours " 0 "" {MPLTEXT 1 0 54 "mod ele_2_it:=proc(x0,y0,DT,angle,prof,restr,epsilon)\n" }{MPLTEXT 1 0 68 "local n,d,ori,k,i,l,j,L_aux,L_aux2,L_finale,x1,y1,x2,y2,x3,y3,deb;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 27 "n:=trunc(restr*Pi/angle);\n" } {MPLTEXT 1 0 16 "x1:=x0;y1:=y0;\n" }{MPLTEXT 1 0 59 "L_finale:=POINTS( [x0,y0],COLOR(RGB,0,0,0),SYMBOL(CROSS));\n" }{MPLTEXT 1 0 14 "L_aux:=N ULL;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 30 "d: =DT*c(x1,y1)/sqrt(700000);\n" }{MPLTEXT 1 0 16 "x2:=x0;y2:=y0;\n" } {MPLTEXT 1 0 33 "for k from 0 to 2*Pi/angle-1 do\n" }{MPLTEXT 1 0 35 " x3:=evalf(d*cos(k*angle)+x1);\n" }{MPLTEXT 1 0 35 " y3:=evalf(d *sin(k*angle)+y1);\n" }{MPLTEXT 1 0 30 " if est_en_mer(x3,y3) then\n " }{MPLTEXT 1 0 32 " if(x2=x0 and y2=y0) then \n" }{MPLTEXT 1 0 7 " " }{MPLTEXT 1 0 25 "L_aux:=L_aux,[x3,y3,k];\n" }{MPLTEXT 1 0 55 " L_finale:=L_finale,POINTS([x3,y3],COLOR(HUE,0));" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 23 " x2:=x3;y2:=y3;\n" }{MPLTEXT 1 0 10 " else\n" }{MPLTEXT 1 0 2 " " }{MPLTEXT 1 0 49 " if(sqrt((x3- x2)**2+(y3-y2)**2)>epsilon) then\n" }{MPLTEXT 1 0 32 " L_aux:=L_ aux,[x3,y3,k];\n" }{MPLTEXT 1 0 3 " " }{MPLTEXT 1 0 54 " L_finale :=L_finale,POINTS([x3,y3],COLOR(HUE,0));\n" }{MPLTEXT 1 0 3 " " } {MPLTEXT 1 0 20 " x2:=x3;y2:=y3;\n" }{MPLTEXT 1 0 10 " fi;\n" } {MPLTEXT 1 0 10 " fi; \n" }{MPLTEXT 1 0 7 " fi;\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 17 "L_aux:=[L_aux];\n" } {MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 27 "for j from 1 to prof-1 do\n" } {MPLTEXT 1 0 15 "L_aux2:=NULL;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 113 "##Laux represente la liste des points du niv eau j,[x1,y1,k], ou k est l'origine (la direction dont il viennent)\n" }{MPLTEXT 1 0 4 "##\n" }{MPLTEXT 1 0 4 " \n" }{MPLTEXT 1 0 35 " for i from 1 to nops(L_aux) do \n" }{MPLTEXT 1 0 20 " x1:=L_aux[i][1];\n " }{MPLTEXT 1 0 20 " y1:=L_aux[i][2];\n" }{MPLTEXT 1 0 21 " ori:=L_a ux[i][3];\n" }{MPLTEXT 1 0 4 " \n" }{MPLTEXT 1 0 32 " d:=DT*c(x1,y1) /sqrt(700000);\n" }{MPLTEXT 1 0 16 " x2:=x0;y2:=y0;" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 30 "for k from ori-n to ori+n do\n" }{MPLTEXT 1 0 37 " x3:=evalf(d*cos(k*angle)+x1);\n" }{MPLTEXT 1 0 37 " y3: =evalf(d*sin(k*angle)+y1);\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 31 " \+ if est_en_mer(x3,y3) then \n" }{MPLTEXT 1 0 32 " if(x2=x0 and y2= y0) then \n" }{MPLTEXT 1 0 7 " " }{MPLTEXT 1 0 27 "L_aux2:=L_au x2,[x3,y3,k];\n" }{MPLTEXT 1 0 62 " L_finale:=L_finale,POINTS([x 3,y3],COLOR(HUE,(j)/prof));" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 23 " \+ x2:=x3;y2:=y3;\n" }{MPLTEXT 1 0 8 " else" }{MPLTEXT 1 0 3 " \n " }{MPLTEXT 1 0 51 " if(sqrt((x3-x2)**2+(y3-y2)**2)>epsilon) then \n" }{MPLTEXT 1 0 33 " L_aux2:=L_aux2,[x3,y3,k];\n" }{MPLTEXT 1 0 63 " L_finale:=L_finale,POINTS([x3,y3],COLOR(HUE,(j)/prof));\n" }{MPLTEXT 1 0 22 " x2:=x3;y2:=y3;\n" }{MPLTEXT 1 0 10 " fi; \n" }{MPLTEXT 1 0 9 " fi;\n" }{MPLTEXT 1 0 10 "fi; od;\n" } {MPLTEXT 1 0 4 " \n" }{MPLTEXT 1 0 7 " od;\n" }{MPLTEXT 1 0 20 " L_ aux:=[L_aux2];\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 5 "od;\n" } {MPLTEXT 1 0 13 "[L_finale];\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 2 " \n" }{MPLTEXT 1 0 4 "end:" }{TEXT 215 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "modele _2_it_polygones:=proc(x0,y0,DT,angle,prof,restr,epsilon,xmin,xmax,ymin ,ymax)\n" }{MPLTEXT 1 0 86 "local n,d,ori,k,i,l,j,L_aux,L_aux2,L_final e,L_coords,L_points,x1,y1,x2,y2,x3,y3,deb;\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 25 "n:=trunc(restr*Pi/angle);" } {MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 16 "x1:=x0;y1:=y0;\n" }{MPLTEXT 1 0 59 "L_finale:=POINTS([x0,y0],COLOR(RGB,0,0,0),SYMBOL(CROSS));\n" } {MPLTEXT 1 0 14 "L_aux:=NULL;\n" }{MPLTEXT 1 0 17 "L_points:=NULL;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 25 "d:=DT*c(x1,y1)/sqrt(E);\n" } {MPLTEXT 1 0 16 "x2:=x0;y2:=y0;\n" }{MPLTEXT 1 0 33 "for k from 0 to 2 *Pi/angle-1 do\n" }{MPLTEXT 1 0 35 " x3:=evalf(d*cos(k*angle)+x1); \n" }{MPLTEXT 1 0 35 " y3:=evalf(d*sin(k*angle)+y1);\n" }{MPLTEXT 1 0 30 " if est_en_mer(x3,y3) then\n" }{MPLTEXT 1 0 32 " if(x2=x0 and y2=y0) then \n" }{MPLTEXT 1 0 32 " L_aux:=L_aux,[x3,y3,k]; \n" }{MPLTEXT 1 0 36 " L_points:=L_points,[x3,y3];\n" }{MPLTEXT 1 0 23 " x2:=x3;y2:=y3;\n" }{MPLTEXT 1 0 10 " else\n" } {MPLTEXT 1 0 51 " if(sqrt((x3-x2)**2+(y3-y2)**2)>epsilon) then\n" }{MPLTEXT 1 0 32 " L_aux:=L_aux,[x3,y3,k];\n" }{MPLTEXT 1 0 36 " L_points:=L_points,[x3,y3];\n" }{MPLTEXT 1 0 23 " x2:=x3; y2:=y3;\n" }{MPLTEXT 1 0 10 " fi;\n" }{MPLTEXT 1 0 10 " fi; \n" }{MPLTEXT 1 0 7 " fi;\n" }{MPLTEXT 1 0 3 "od;" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 56 "L_finale:=L_finale, POLYGONS([L _points],COLOR(HUE,0));\n" }{MPLTEXT 1 0 17 "L_points:=NULL;\n" } {MPLTEXT 1 0 17 "L_aux:=[L_aux];\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 27 "for j from 1 to prof-1 do\n" }{MPLTEXT 1 0 15 "L_aux2:=NULL;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 33 "for i from 1 to nops(L_aux) do \+ \n" }{MPLTEXT 1 0 20 " x1:=L_aux[i][1];\n" }{MPLTEXT 1 0 20 " y1:=L_ aux[i][2];\n" }{MPLTEXT 1 0 21 " ori:=L_aux[i][3];\n" }{MPLTEXT 1 0 4 " \n" }{MPLTEXT 1 0 27 " d:=DT*c(x1,y1)/sqrt(E);\n" }{MPLTEXT 1 0 18 " x2:=x0;y2:=y0;\n" }{MPLTEXT 1 0 30 "for k from ori-n to ori+n do \n" }{MPLTEXT 1 0 37 " x3:=evalf(d*cos(k*angle)+x1);\n" }{MPLTEXT 1 0 37 " y3:=evalf(d*sin(k*angle)+y1);\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 31 " if est_en_mer(x3,y3) then \n" }{MPLTEXT 1 0 32 " \+ if(x2=x0 and y2=y0) then \n" }{MPLTEXT 1 0 34 " L_aux2:=L_aux 2,[x3,y3,k];\n" }{MPLTEXT 1 0 36 " L_points:=L_points,[x3,y3];\n " }{MPLTEXT 1 0 23 " x2:=x3;y2:=y3;\n" }{MPLTEXT 1 0 11 " els e \n" }{MPLTEXT 1 0 51 " if(sqrt((x3-x2)**2+(y3-y2)**2)>epsilon) t hen\n" }{MPLTEXT 1 0 33 " L_aux2:=L_aux2,[x3,y3,k];\n" }{MPLTEXT 1 0 35 " L_points:=L_points,[x3,y3];\n" }{MPLTEXT 1 0 22 " x 2:=x3;y2:=y3;\n" }{MPLTEXT 1 0 10 " fi;\n" }{MPLTEXT 1 0 9 " fi ;\n" }{MPLTEXT 1 0 8 "fi; od;" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 4 " \n" }{MPLTEXT 1 0 7 " od;\n" }{MPLTEXT 1 0 18 "L_aux:=[L_aux2];\n" }{MPLTEXT 1 0 80 "L_finale:=L_finale, POLYGONS([L_points],COLOR(HUE,j/ prof),STYLE(PATCHNOGRID));\n" }{MPLTEXT 1 0 17 "L_points:=NULL;\n" } {MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 13 "[L_final e];\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 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 212 46 "Mod\350le 2 - Algorith me \351tape par \351tape" }}{EXCHG {PARA 0 "" 0 "" {TEXT 215 295 "Les \+ algorithmes cr\351\351s \351tant toujours trop long, on effectue les c alcul etape apr\350s \351tape. C'est \340 dire qu'on calcul tout les p oints d'un instant donn\351 t (rang k),puis on relance l'algorithme av ec ce r\351sultat pour qu'il calcule les points \340 l'instant t+dt (r ang k+1).\n" }{TEXT 215 2 "\n" }{TEXT 215 110 "Pour acc\351l\351rer en core le temps de calcul, on utilise deux methodes d'ellimination des p oints parasites :" }}{PARA 0 "" 0 "" {TEXT 215 181 "- On supprime les \+ points situ\351s \340 moins de Rapport*Distance_moyenne_\340_epicentre de l'\351picentre (les points qui sont all\351s trop en arri\350re, q ui sont \340 la traine)" }}{PARA 0 "" 0 "" {TEXT 215 73 "- On supprime les points qui sont a moins de epsilon les uns des autres " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "modele_2_it_purifie_rang0:=p roc(x0,y0,DT,angle,restr,epsilon)\n" }{MPLTEXT 1 0 59 "local n,d,ori,k ,i,l,j,L_aux,L_aux2,x1,y1,x2,y2,x3,y3,deb;\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 16 "x1:=x0;y1:=y0;\n" }{MPLTEXT 1 0 14 "L_aux:=NULL;\n" } {MPLTEXT 1 0 27 "n:=trunc(restr*Pi/angle);\n" }{MPLTEXT 1 0 30 "d:=DT* c(x1,y1)/sqrt(700000);\n" }{MPLTEXT 1 0 18 "x2:=evalf(d+x1);\n" } {MPLTEXT 1 0 16 "y2:=evalf(y1);\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 28 "if est_en_mer(x2,y2) then \n" }{MPLTEXT 1 0 27 " L_aux:=L_aux,[x2,y2,0];\n" }{MPLTEXT 1 0 21 "else x2:=x1;y2:=y1; \n" }{MPLTEXT 1 0 5 "fi;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 26 "for k from 1 to 2*n-1 do\n" }{MPLTEXT 1 0 35 " x3:=evalf(d*cos(k*angle )+x1);\n" }{MPLTEXT 1 0 35 " y3:=evalf(d*sin(k*angle)+y1);\n" } {MPLTEXT 1 0 31 " if est_en_mer(x3,y3) then \n" }{MPLTEXT 1 0 49 " \+ if(sqrt((x3-x2)**2+(y3-y2)**2)>epsilon) then\n" }{MPLTEXT 1 0 29 " \+ L_aux:=L_aux,[x3,y3,k];\n" }{MPLTEXT 1 0 20 " x2:=x3;y2:=y3;\n" } {MPLTEXT 1 0 12 " fi; fi;\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 10 "[L_aux];\n" }{MPLTEXT 1 0 6 "end:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "modele_ 2_it_purifie_rangk:=proc(x0,y0,DT,angle,restr,epsilon,facteur,L_aux)\n " }{MPLTEXT 1 0 79 "local n,d,ori,k,i,l,L_aux2,Suppr,Result,x1,y1,x2,y 2,x3,y3,deb,aux,fin,Rmoyen;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 27 " n:=trunc(restr*Pi/angle);\n" }{MPLTEXT 1 0 15 "L_aux2:=NULL;\n" } {MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 33 "for i from 1 to nops(L_aux) do \+ \n" }{MPLTEXT 1 0 20 " x1:=L_aux[i][1];\n" }{MPLTEXT 1 0 20 " y1:=L_ aux[i][2];\n" }{MPLTEXT 1 0 21 " ori:=L_aux[i][3];\n" }{MPLTEXT 1 0 4 " \n" }{MPLTEXT 1 0 32 " d:=DT*c(x1,y1)/sqrt(700000);\n" }{MPLTEXT 1 0 20 "###########si i =1\n" }{MPLTEXT 1 0 16 " if(i=1) then\n" } {MPLTEXT 1 0 42 " x2:=evalf(d*cos((ori-restr)*Pi/n)+x1);\n" }{MPLTEXT 1 0 42 " y2:=evalf(d*sin((ori-restr)*Pi/n)+y1);\n" }{MPLTEXT 1 0 29 " L_aux2:=L_aux2,[x2,y2,k];\n" }{MPLTEXT 1 0 57 " if est_en_mer(x2,y 2) then L_aux2:=L_aux2,[x2,y2,ori];\n" }{MPLTEXT 1 0 25 " else x2:= x1;y2:=y1;\n" }{MPLTEXT 1 0 7 " fi;\n" }{MPLTEXT 1 0 19 "deb:=ori-res tr+1;\n" }{MPLTEXT 1 0 22 "else deb:=ori-restr;\n" }{MPLTEXT 1 0 17 "f i;############\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 17 "fin:=ori+rest r;\n" }{MPLTEXT 1 0 48 "if(deb>fin) then fin:=deb; deb:=ori+restr; fi; \n" }{MPLTEXT 1 0 26 "for k from ori to fin do\n" }{MPLTEXT 1 0 36 " \+ x3:=evalf(d*cos(k*Pi/n)+x1);\n" }{MPLTEXT 1 0 36 " y3:=evalf( d*sin(k*Pi/n)+y1);\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 31 " if est _en_mer(x3,y3) then \n" }{MPLTEXT 1 0 3 " \n" }{MPLTEXT 1 0 51 " i f(sqrt((x3-x2)**2+(y3-y2)**2)>epsilon) then\n" }{MPLTEXT 1 0 33 " \+ L_aux2:=L_aux2,[x3,y3,k];\n" }{MPLTEXT 1 0 22 " x2:=x3;y2:=y3;\n " }{MPLTEXT 1 0 10 " fi;\n" }{MPLTEXT 1 0 10 "fi; od;\n" } {MPLTEXT 1 0 26 "for k from deb to ori do\n" }{MPLTEXT 1 0 36 " x 3:=evalf(d*cos(k*Pi/n)+x1);\n" }{MPLTEXT 1 0 36 " y3:=evalf(d*sin (k*Pi/n)+y1);\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 31 " if est_en_m er(x3,y3) then \n" }{MPLTEXT 1 0 3 " \n" }{MPLTEXT 1 0 51 " if(sqr t((x3-x2)**2+(y3-y2)**2)>epsilon) then\n" }{MPLTEXT 1 0 33 " L_au x2:=L_aux2,[x3,y3,k];\n" }{MPLTEXT 1 0 22 " x2:=x3;y2:=y3;\n" } {MPLTEXT 1 0 10 " fi;\n" }{MPLTEXT 1 0 10 "fi; od;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 78 "############################### fonction de p urification 1 (point trop pres)\n" }{MPLTEXT 1 0 21 "L_aux2:=\{L_aux2 \};\n" }{MPLTEXT 1 0 14 "Suppr:=NULL;\n" }{MPLTEXT 1 0 15 "Result:=NUL L;\n" }{MPLTEXT 1 0 7 "i:=1;\n" }{MPLTEXT 1 0 27 "while i< nops(L_aux2 ) do \n" }{MPLTEXT 1 0 21 " x1:=L_aux2[i][1];\n" }{MPLTEXT 1 0 21 " \+ y1:=L_aux2[i][2];\n" }{MPLTEXT 1 0 29 " Result:=Result,L_aux2[i];\n" }{MPLTEXT 1 0 38 " for k from (i+1) to nops(L_aux2) do\n" }{MPLTEXT 1 0 21 " x2:=L_aux2[k][1];\n" }{MPLTEXT 1 0 21 " y2:=L_aux2[k][2];\n" }{MPLTEXT 1 0 54 " if(evalf(sqrt((x1-x2)**2+(y1-y2)**2)) " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {SECT 1 {PARA 3 "" 0 "" {TEXT 212 36 "Mod\350le 2 - Procedures d'affic hage" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "donne_points_m2:=pro c(L_aux,ind,max)\n" }{MPLTEXT 1 0 17 "local L_points;\n" }{MPLTEXT 1 0 61 " L_points:=POINTS([x0,y0],COLOR(RGB,0,0,0),SYMBOL(CROSS));\n" } {MPLTEXT 1 0 96 " L_points:= seq(POINTS( [L_aux[k][1] ,L_aux[k][2] ] \+ ,COLOR(HUE,ind/max)),k=1..nops(L_aux) );\n" }{MPLTEXT 1 0 11 "L_point s;\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "donne_polygones_m2:=proc(L_aux,ind,max,Style)\n" }{MPLTEXT 1 0 127 " POLYGONS( [seq( [L_aux[k][1] ,L_aux[k][2]], k=1..nops(L_aux))], COLOR(HUE,ind/max),STYLE(Style),THICKNESS(0),LINESTYLE(0)) ;\n" } {MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {SECT 1 {PARA 3 "" 0 "" {TEXT 212 21 "Mod\350le 2 - Exemple" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 122 "L0_p:=NULL:L1_p:=NULL:L2_p:=NULL:L3_p:=NULL:L4_p:=NU LL:L5_p:=NULL:L6_p:=NULL:L7_p:=NULL:L8_p:=NULL:L9_p:=NULL:L10_p:=NULL: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 133 "L0_pl:=NULL:L1_pl:=NUL L:L2_pl:=NULL:L3_pl:=NULL:L4_pl:=NULL:L5_pl:=NULL:L6_pl:=NULL:L7_pl:=N ULL:L8_pl:=NULL:L9_pl:=NULL:L10_pl:=NULL:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "L0:=[]:L1:=[]:L2:=[]:L3:=[]:L4:=[]:L5:=[]:L6:=[]:L7: =[]:L8:=[]:L9:=[]:L10:=[]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "Dt:=:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "Angle:=:" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 25 "N:=10:Style:=PATCHNOGRID:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 217 6 "Calcul" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "L0 :=modele_2_it_purifie_r ang0(x0,y0,3600,Pi/20,0,0):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "L1 :=modele_2_it_purifie_rangk(x0,y0,3600,Pi/20,10,0.4,1/4,L0):" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "L2 :=modele_2_it_purifie_r angk(x0,y0,3600,Pi/20,10,0.3,2/3,L1):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "L3 :=modele_2_it_purifie_rangk(x0,y0,3600,Pi/20,4,0.5 ,3/4,L2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "L4 :=modele_2_ it_purifie_rangk(x0,y0,3600,Pi/20,10,0.3,4/5,L3):" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 62 "L5 :=modele_2_it_purifie_rangk(x0,y0,3600,Pi /20,5,0.4,3/5,L4):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "L6 := modele_2_it_purifie_rangk(x0,y0,3600,Pi/20,10,0.5,3/4,L5):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "L7 :=modele_2_it_purifie_rangk(x0,y 0,3600,Pi/20,10,0.5,2/3,L6):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "L8 :=modele_2_it_purifie_rangk(x0,y0,3600,Pi/20,10,0.3,2/3,L7):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "L9 :=modele_2_it_purifie _rangk(x0,y0,3600,Pi/20,5,0.2,1/4,L8):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "L10:=modele_2_it_purifie_rangk(x0,y0,3600,Pi/20,5,0.1 ,1/3,L9):" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 217 19 "Affichage de points" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L0_p :=donne_points_m2(L0,0,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L1_p :=donne_points_m2(L1,1,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L2_p :=donne_points_m2(L2,2,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L3_p :=donne_points_m2(L3,3,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L4_p :=donne_points_m2(L4,4,N):" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L5_p :=donne_points_m2(L5,5 ,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L6_p :=donne_points _m2(L6,6,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L7_p :=donn e_points_m2(L7,7,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L8_ p :=donne_points_m2(L8,8,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "L9_p :=donne_points_m2(L9,9,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "L10_p:=donne_points_m2(L10,10,N):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 87 "affiche([L0_p,L1_p,L2_p,L3_p,L4_p,L5_p,L6_p,L7_p,L8_p,L9_p,L10_p], Xmin,Xmax,Ymin,Ymax);" }}}}{EXCHG {PARA 0 "> " 0 "" {TEXT 215 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 217 22 "Affichage de polygones" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L0_pl : =donne_polygones_m2(L0,0,N,Style):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L1_pl :=donne_polygones_m2(L1,1,N,Style):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L2_pl :=donne_polygones_m2(L2,2,N,S tyle):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L3_pl :=donne_pol ygones_m2(L3,3,N,Style):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L4_pl :=donne_polygones_m2(L4,4,N,Style):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 41 "L5_pl :=donne_polygones_m2(L5,5,N,Style):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L6_pl :=donne_polygones_m2(L 6,6,N,Style):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L7_pl :=do nne_polygones_m2(L7,7,N,Style):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "L8_pl :=donne_polygones_m2(L8,8,N,Style):" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 41 "L9_pl :=donne_polygones_m2(L9,9,N,Style):" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "L10_pl:=donne_polygones_m2 (L10,10,N,Style):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 98 "affiche([L0_pl,L1_pl,L2_pl,L 3_pl,L4_pl,L5_pl,L6_pl,L7_pl,L8_pl,L9_pl,L10_pl],Xmin,Xmax,Ymin,Ymax); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {TEXT 215 0 "" } }{PARA 13 "" 1 "" {TEXT 216 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "modele_2_rec(x0,y0,3600,Pi/6,4,0.3,Xmin,Xmax,Ymin,Ymax);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "modele_2_rec(x0,y0,3600,Pi/1 0,4,0.3,Xmin,Xmax,Ymin,Ymax);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "affiche(modele_2_ it(x0,y0,3600,Pi/2,2,1,0.6),Xmin,Xmax,Ymin,Ymax);" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 79 "affiche(modele_2_it_polygones(x0,y0,3600,Pi/ 10,8,0.3,0.7),Xmin,Xmax,Ymin,Ymax);" }}{PARA 7 "" 1 "" {TEXT 213 33 "W arning, computation interrupted" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {XPPEDIT 19 1 "" "%#%?G" }}}} {MARK "0 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }