{VERSION 4 0 "IBM INTEL NT" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "Hyperlink" -1 17 "" 0 1 0 128 128 1 0 0 1 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" 0 21 "" 0 1 0 0 0 1 0 0 0 0 2 0 0 0 0 1 }{CSTYLE "Help Head ing" -1 26 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 " Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 } } {SECT 0 {SECT 0 {PARA 0 "" 0 "" {TEXT 26 9 "Bug fix: " }{TEXT -1 17 "R esidue returns 0" }}{PARA 0 "" 0 "" {TEXT -1 13 "The function " } {MPLTEXT 0 21 7 "residue" }{TEXT -1 74 " computes the residue of an an alytic function at a pole of the function. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "residue(sin(z)/z^2,z=0);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{PARA 0 "" 0 "" {TEXT -1 55 "In some cases r esidue returns an incorrect answer of 0." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "f:= x/(1+x^7): p:= cos(Pi/7)+I*sin(Pi/7):\nresidue(f, x=p);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 36 "pr:= RootOf(1+Z^7);\nresidue(f,x=pr);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#prG-%'RootOfG6#,&\"\"\"F)*$)%#_ZG\" \"(F)F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{PARA 0 "" 0 "" {TEXT -1 27 "This is usually due to the " }{MPLTEXT 0 21 6 "series" } {TEXT -1 72 " command not recognizing that the denominator is 0 at the given point. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "series(f, x=p,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#+',(%\"xG\"\"\"-%$cosG6#,$% #PiG#F&\"\"(!\"\"*&^#F.F&-%$sinGF)F&F&*&,&F'F&*&^#F&F&F1F&F&F&,&F&F&*$ )F4F-F&F&F.\"\"!-%\"OG6#F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "series(f,x=pr,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#+',&%\"xG\" \"\"-%'RootOfG6#,&F&F&*$)%#_ZG\"\"(F&F&!\"\"*&F'F&,&F&F&*$)F'F.F&F&F/ \"\"!-%\"OG6#F&F&" }}}{PARA 0 "" 0 "" {TEXT -1 86 "Sometimes this prob lem can be helped by using a different representation of the point " } {XPPEDIT 18 0 "p" "6#%\"pG" }{TEXT -1 83 ". In this case using comple x exponentials instead of sines and cosines would work." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "residue(f,x=convert(p,exp));" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#,$*$)!\"\"#\"\"#\"\"(\"\"\"#F&F)" }}} {PARA 0 "" 0 "" {TEXT -1 80 "Another possibility which sometimes works is to change the environment variable " }{MPLTEXT 0 21 8 "Testzero" } {TEXT -1 116 ", whose value is the procedure used in series to determi ne when the leading coefficient is 0. By default this uses " } {MPLTEXT 0 21 10 "Normalizer" }{TEXT -1 54 ", another environment vari able whose default value is " }{MPLTEXT 0 21 6 "normal" }{TEXT -1 9 ". Since " }{MPLTEXT 0 21 7 "residue" }{TEXT -1 5 " and " }{MPLTEXT 0 21 6 "series" }{TEXT -1 10 " have the " }{MPLTEXT 0 21 8 "remember" } {TEXT -1 21 " option, we must use " }{MPLTEXT 0 21 6 "forget" }{TEXT -1 34 " to remove results obtained using " }{MPLTEXT 0 21 10 "Normaliz er" }{TEXT -1 28 " from their remember tables." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "Testzero:= proc(O) evalb(simplify(O)=0) end:\nfo rget(series);\nforget(residue);\nresidue(f,x=pr);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$*&\"\"\"F%*$)-%'RootOfG6#,&F%F%*$)%#_ZG\"\"(F%F%\"\"& F%!\"\"#F%F/" }}}{PARA 0 "" 0 "" {TEXT -1 47 "However, this does not w ork in the case of our " }{XPPEDIT 18 0 "p" "6#%\"pG" }{TEXT -1 1 "." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "residue(f,x=p);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{PARA 0 "" 0 "" {TEXT -1 136 "Anot her way this problem can arise is when you have a floating-point appro ximation to a singularity rather than an actual singularity. " }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "pf:= evalf(p);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%#pfG^$$\"+y')o4!*!#5$\"+$RP)QVF(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "residue(f,x=pf);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#\"\"!" }}}{PARA 0 "" 0 "" {TEXT -1 62 "In this case i t's arguably not Maple's fault: the given point " }{XPPEDIT 18 0 "pf; " "6#%#pfG" }{TEXT -1 34 " is not actually a singularity of " } {XPPEDIT 18 0 "f" "6#%\"fG" }{TEXT -1 50 ", but only an approximation \+ of a singularity. At " }{XPPEDIT 18 0 "pf;" "6#%#pfG" }{TEXT -1 9 " i tself, " }{XPPEDIT 18 0 "f" "6#%\"fG" }{TEXT -1 36 " has a finite (tho ugh large) value. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "eval(f ,x=pf);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#^$$!+mi+ND!\"\"$\"+4v!zL'F& " }}}{PARA 0 "" 0 "" {TEXT -1 17 "If you know that " }{XPPEDIT 18 0 "f " "6#%\"fG" }{TEXT -1 112 " should have a simple pole at the given poi nt, you may be able to calculate the residue \"by hand\". For example :" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "eval(numer(f)/diff(deno m(f),x),x=p);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$*&\"\"\"F%*$),&-%$c osG6#,$%#PiG#F%\"\"(F%*&^#F%F%-%$sinGF+F%F%\"\"&F%!\"\"F." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "eval(numer(f)/diff(denom(f),x),x=pf );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#^$$!+%=(*p!*)!#6$!+<@!p6\"!#5" } }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 0 "" 0 "" {TEXT 26 9 "See also:" }{TEXT -1 1 " " }{HYPERLNK 17 "convert[exp]" 2 "convert[ex p]" "" }{TEXT -1 2 ", " }{HYPERLNK 17 "Exact vs floating-point computa tions" 2 "Exact_vs._floating-point_computations" "" }{TEXT -1 2 ", " } {HYPERLNK 17 "forget" 2 "forget" "" }{TEXT -1 2 ", " }{HYPERLNK 17 "No rmalizer" 2 "Normalizer" "" }{TEXT -1 2 ", " }{HYPERLNK 17 "residue" 2 "residue" "" }{TEXT -1 2 ", " }{TEXT -1 0 "" }{HYPERLNK 17 "series" 2 "series" "" }{TEXT -1 2 ", " }{HYPERLNK 17 "Testzero" 2 "Testzero" " " }}}{SECT 0 {PARA 0 "" 0 "" {TEXT 26 24 "Maple Advisor Database, " } {TEXT -1 15 " R. Israel 2000" }}}}{MARK "0 18 4" 44 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }