perl寫Foueier Transform的問題

看板Perl作者 (vck)時間18年前 (2006/10/18 13:42), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
以下是我寫的程式!新手請各位大大指教 寫的是離散時候的傅立葉轉換 其中我覺得寫的數值有點不是很正確...但又不知道怎麼配到正確值 還有虛部i值的處理要怎麼解決? 煩請各位大大給點建議^^謝謝您 use Math::Trig; use Math::complex; printf "輸入累加範圍上界:"; $top = <STDIN>; printf "輸入累加範圍下界:"; $low = <STDIN>; print"請輸入x[n]=:"; $Y=<STDIN>; $N =($top)-($low)+1; printf"範圍內個數為(取整數):$N\n"; print"Because x<k>[n]=x[n/k]\n"; print"請輸入<k>=:"; $k=<STDIN>; $M=$Y/$k; for ($t=0; $t<10; $t++) { $w=0.6283*$t; $W=int($w); $sum =cosx(); $sum1=sinx(); $Sum=int($sum*$M); $Sum1=int($sum1*$M); printf "w為%.1f\n", $W; printf "累加cos結果為%.1f\n", $sum; printf "累加sin結果為%.1f\n", $sum1; print"Equal x(e**jkw)=Σxk[n]5*e**-jwn=xk[n]\n"; printf" Answer = %.3f+i(%.3f)\n",$sum,$sum1; $sum =0; $sum1 =0; sub cosx{ for ($i=0; $i<$N; $i++) { $sum =$sum + cos($x) ;#加總 $x =$x + $N; #下一個X座標 } return $sum; } sub sinx{ for ($i=0; $i<$N; $i++) { $sum1 =$sum1 + sin($x) * $N; $x =$x + $N; } return $sum1; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.230.194

10/18 17:32, , 1F
10/18 17:32, 1F
文章代碼(AID): #15DRxXrR (Perl)
文章代碼(AID): #15DRxXrR (Perl)