/*=================================================*\ | filename: Nth_roots.mu | |---------------------------------------------------| | scopo: routines per la calcolare e disegnare le | | radici n-esime di un numero complesso. | |---------------------------------------------------| | autore: Claudio Marsan | | Liceo cantonale di Mendrisio | | Via Agostino Maspoli | | CH-6850 Mendrisio | | claudio.marsan@liceomendrisio.ch | |---------------------------------------------------| | ultima modifica: 28.10.2005 | |---------------------------------------------------| | testato con: MuPAD Pro 3.1.1 for Windows | |---------------------------------------------------| | OS: Microsoft Windows XP Professional sp2 | |---------------------------------------------------| | uso: read("...\\Nth_roots.mu"): | \*=================================================*/ // Calcola le n radici n-esime di z nth_roots := proc(z:Type::Complex, n:Type::PosInt) local r, omega, radici, k; begin r := (abs(z))^(1/n); omega := arg(z); radici := r*cos((omega + 2*PI*k)/n) + I*r*sin((omega + 2*PI*k)/n) $ k = 0..n-1; return(radici); end: // Disegna le n radici n-esime di z plot_nth_roots := proc(z:Type::Complex, n:Type::PosInt) local r, omega, radici, k; begin r := (abs(z))^(1/n); omega := arg(z); radici := [r*cos((omega + 2*PI*k)/n), r*sin((omega + 2*PI*k)/n)] $ k = 0..n-1; plot(plot::PointList2d([radici], PointSize=2, PointColor=RGB::Red, Scaling=Constrained, ViewingBoxXMin=-1.05*r, ViewingBoxXMax=1.05*r, ViewingBoxYMin=-1.05*r, ViewingBoxYMax=1.05*r)): end: