看板Programming
标 题Re: c的复数要怎麽写?
发信站KKCITY (Mon Jul 14 15:35:17 2008)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ntu!news.au!zoonews.ee.ntu!news
这倒是让我想起一个问题
如果今天我必须在一个没有complex arithmetics的环境下自己开发相关运算
例如老的C,或是VB6
那我要开发出哪些operation才算把complex arithmetic做完整?
(i)算数加/减
这很简单
(ii)算术乘
(a + bi) = (p + qi)(m + ni) , a = p*m - q*n , b = p*n + q*m (1)
(iii)norm(绝对值)
|a + bi| = sqrt(a^2 + b^2) (2)
(iv)转极座标式
for (a + bi)
(1) let r = |a + bi|
(2) let a' = a/r , b' = b/r
(3) let θ = arctan(b'/a') [主辐角]
then (a + bi) = <r, θ> (3)
(v)乘法律
<r, θ> * <s, φ> = r (cosθ+isinθ) * s(cosφ+isinφ) (4)
= (r*s) (cos(θ+φ)+isin(θ+φ))
<r, θ> / <s, φ> = r (cosθ+isinθ) / s(cosφ+isinφ) (5)
= (r/s) (cos(θ-φ)+isin(θ-φ))
(vi)算术除
利用 (5) 式。
(vii)De Moivre's Theorem
<r, θ> ^ k = (r (cosθ+isinθ))^ k (6)
= (r^k) (cos(kθ)+isin(kθ))
以上有 k in N 的限制,也就是说只能算自然数次方。
避开(6)的限制:
<r, θ> ^ (m/n) = ((r (cosθ+isinθ))^ m) / (7)
((r (cosθ+isinθ))^ n)
= (r^(m/n))(cos((m/n)θ)+isin((m/n)θ))
这样可以算所有的有理数次方,包括 n 次方根。
(viii)指数律
利用(6)式,但限於正整数
(ix)n次方根
利用(7)式
这样算做完了吗?
[ 在fortran里面还可以算(a, b)**(c, d)(复数的复数次方)
多麽简单,只要一行
可是我根本不知道那要怎麽自己implement…
那可以忽略吗?就一般的复数运算来说?]
--
蒙帝派松正体中文计画 (4/23)
- 如何隐身 - SPAM - 英国杀人笑话
http://www.wretch.cc/blog/journeyman&article_id=14377810
▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂
■法外科学暨工程顾问公司■ http://www.wretch.cc/blog/journeyman/
▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
--
┌─────◆KKCITY◆─────┐ ◢ ╱ 想要成立班系社团站台吗?
│ bbs.kkcity.com.tw │ █▉ ─ KKCity即日起开放BBS站申请罗!
└──《From:59.115.196.71
》──┘ ◥ ╲ 免程式技术、硬体成本的选择!!
--
1F:推 meltice:复数的复数次方可以预测哪支股票会涨麽 117.19.38.195 07/14 19:59
2F:→ MOONRAKER:问这干嘛? 59.115.192.119 07/14 23:22
3F:→ MOONRAKER:你为人一定要这麽G7+1吗? 59.115.192.119 07/14 23:26