忍者ブログ
20080511~ 13と7と11の倍数の論理積は13と7と11の積の倍数である。 和ァ・・・
[2969] [2968] [2967] [2966] [2965] [2963] [2962] [2960] [2959] [2958] [2957]
学生時代に挫折してからずーっとほったらかしにしてたのを、つい先日この話で盛り上がったのをきっかけに、十何年ぶりに完成させました。


今回相手にする3次方程式というのは、
解も係数も複素数のものを言います。
したがって、3種類の係数は実数と純虚数の2元ありますし
解も2元ありますし、その解は一般に3つがワンセットです。


それを、一発で求めたい、それも代数的に。
というのが、カルダノの方法と呼ばれるものです。


その前に2次方程式の解の公式の話をしておきましょう。

よく習う際、
ax^2+bx+c=0 

x=(-b±√(b^2-4ac))/(2a) 


というのを相手にするかと思いますが

x^2+ax+b=0 


x=(-a±√(a^2-4c))/2 

でも結果は変わらないしこのほうが単純なので、一番高い次数の係数は1とします。




同様に、3次方程式も

ax^3+bx^2+cx+d=0 

ではなく
x^3+ax^2+bx+c=0 
として扱います。


3次方程式の解の公式であるカルダノの方法によれば
x=-a/3+uw^(3-n)+vw^n 

具体的には
n=1のとき
 x=-a/3+uw+vw^2
n=2のとき
 x=-a/3+uw^2+vw
n=3のとき
 x=-a/3+u+v

とされています。

ここで、
nは0,1,2のいずれかの整数
w=(-1+i√3)/2 
u,v^3=-q/2±√(p^3/27+q^2/4) 
p=b-a^2/3、q=c-ab/3+2a^3/27 


ただし、uv=-p/3となるuとvのカップリングとする。

と、変数の定義はしておきますが、
解説は他の媒体に丸投げします。


Excelで複素数を扱うには、エンジニアリング関数という関数群の中にある
「複素数を扱う関数群」を用いると手っ取り早いです。

ただ、1つのセルに1つの数値しか入れられないExcelで複素数という元が2つある数を扱うため
半ば無理矢理に実部+i虚部という文字列として扱います。
あんまりキレイには見えないかと思います。


複素関数群の中には
・2つの元を連結して複素数として表現するためのcomplex関数
・複素数同士の積improduct関数(多項演算)
・複素数同士の商imdiv関数(二項演算子の代わり)
・複素数同士の和imsum関数(タコ)
・複素数同士の差imsub関数(ニコ)
・複素変数に拡張対応した指数関数imexp関数(基本的に虚数単位にはiという文字を用いれば良い)
・複素数の絶対値imabs関数
・複素数の偏角imargument関数
・複素数の実数乗impower関数
・複素数の実部imreal関数
・複素数の虚部imaginary関数
あと複素共役やら三角関数とその逆数・逆関数はないですね・双曲線関数・対数関数
とかがあるようです。


uとvの3乗まではこの図のような感じで、
加減乗除と累乗関数だけでなんとかなります。

uとvそのものがクセモノでしてね・・・

組み合わせが最大9パターンほど現れるんですよ・・・


というのも、uとvがそれぞれ3つずつ現れるからなんです。
3次方程式の複素解が一般に3つあるのと同様に、複素3乗根は一般に3つ、複素n乗根は一般にn個現れます
なぜかというと、オイラーの公式、またはド・モアブルの定理あたりで、べき乗根(n分の1乗)というのは、偏角をn等分するため、「根を取る前に周回遅れだったやつら」もフォローしなくてはならなくなるからです


そのうち代表的なのを主値と呼びますが
uとvそのものはちょうど3乗根の形をしているので
主値にwの1乗か2乗(wの複素共役でもある)を掛け算(120度の三相交流)すれば全部求まることがわかるかと思います。


そして、uかvどちらかを決定してしまえば、もう片方の3つのうち1つを選べばそれで済みます
 →


実際この部分ではvを固定し、uの候補だけを3つ出してます。

それから、uv=-p/3となる条件を満たすuを探すのですが
ここでu=-p/(3v)などと横着してはいけません。

往々にしてpもvもゼロの、0/0(有限値:不定)が現れるでしょう。


そこで用いられるのがvlookup関数やhlookup関数などの、行か列を探索する関数です。


この一見わけわかんないルールの関数は、業務上割りとありがたがられる関数でして
たとえば商品の名前をコードで管理している場合などに、
コードから商品名に変換する役目を持つ関数です。

今回は、
 バン○イのクダモデル
の代わりに
 


の表を用いて、uの候補から花道オンステージとなる主役のuを選抜してみます。

しかし、
3uv+pが複素数なので、一旦これの絶対値を取りましょう
それから3つのうち一番小さくなるuの候補を選抜することにします。

この図ではhlookup関数を用いて
G7=HLOOKUP(MIN($G$8:$I$8),$G$8:$I$9,2,FALSE)
このように記述しています。
関数の末尾にfalseがあるのは、重複した場合を考慮してのことで

たとえば
 

という表の場合でもエラーを出さないようにする措置のためです。
この表の場合、要件としてはオレンジでもバナナでもどっちでもいいのです。コードさえ001で合っていれば。

3つの3uv+pのうち、2つ以上が同時にゼロになる場合があるのですが、ゼロならばどのuでもいいのです
どっちなのか迷うならその選択肢ーは割りとどうでもいい選択肢ーである(優柔不断さん対策)
というスタンスですね!白とか黒とかどうでもいいよ!!!


ということで、いよいよ明日は求めたxを可視化してみようと思います。
つづく
 ブログランキング・にほんブログ村へ
にほんブログ村

拍手[0回]

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


忍者ブログ [PR]
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
ブログランキング
ブログランキング参戦中
にほんブログ村 アニメブログ 深夜アニメへ
にほんブログ村 漫画ブログ SF・ファンタジー漫画へ
にほんブログ村 科学ブログ 自然科学へ
よかったらポチッとお願いします^^
最新CM
[12/30 buy steroids credit card]
[09/26 Rositawok]
[03/24 hydraTep]
[03/18 Thomaniveigo]
[03/17 Robertaverm]
最新TB
プロフィール
HN:
量子きのこ
年齢:
43
性別:
男性
誕生日:
1981/04/04
職業:
WinDOS.N臣T
趣味:
妄想・計算・測定・アニメ
自己紹介:
日記タイトルの頭についてるアルファベットは日記の番号です
26進数を右から読みます
例:H→7番目、XP→15(P)×26+23(X)=413番目。
A=0とする仕様につき一番右の桁はAにできませんのでご了承くださいズコー
バーコード
ブログ内検索
アクセス解析