
3次式
y=Ax^3+Bx+C
を
x=
の形に書き換えたいのですが、解法がさっぱりわかりません。
(x^3はxの3乗と思ってください)
類似の質問を検索してみても、回答中の参照先サイトがなくなっていたり、
難解すぎて理解できなかったりで解決しませんでした。
解法のわかる方、改めて教えていただけないでしょうか。
いまはエクセルのゴールシーク機能を使って、yの値からxの値を求めているのですが、
数が多いのでとても手間がかかります。
複数のyの値を、1操作でゴールシークできれば、あえて逆関数をもとめる必要もないんですが。
そういう手段もあれば教えてください。
No.1ベストアンサー
- 回答日時:
三次関数のx^2の係数が0であることに着目すれば、”カルダノの公式”そのものです。
”カルダノの公式”で検索してください。内容は理解できなくても、手順どおりにやればエクセルに実装できます。
反復法だと、”ニュートン法”もヒントになるでしょう。
とりあえずエクセルで回答させることができました。ありがとうございました。
ただ虚数が発生するとエクセルではエラーになってしまうので、100%完成まではこぎつけてません。
そこらへんをもうちょっとつめてみます。
No.2
- 回答日時:
マクロを作る手ですかね。
function gyakukansu(a,b,c,y)
を自分で作れば、excelのセルの中から(組み込みの関数と同じように)利用できます。複数の解を出力するためには、
DIM solution(0 to 2)
solution(0) = ...
solution(1) = ....
solution(2) = ....
gyakukansu = solution
のようにして配列を返すようにすればOKです。スプレッドシート上では、複数の数値を返す組み込み関数(minverseとかlinestとか)を使うのと同じ要領で利用します。
じゃ、マクロの中身です。
y = A x^3 + Bx + C
の逆関数ってのは、
x^3 + (B/A)x + (C-y)/A = 0
という方程式の実数解を求めていることに他なりません。
p = B/A
q = (C-y)/A
f(x) = x^3 + px + q
(ちなみに、y = a x^3 + b x^2 + cx + d の場合も、x=X-b/(3a)と変数変換すればこの形に帰着します。(チルンハウス変換))
とおくと、方程式は
f(x) = 0
これを、解がどこにあるかによって分類します。そのために、fをxで微分したもの
f'(x) = 3(x^2)+p
を考えておきます。f'(x)=0となるxでf(x)は極大か極小になるわけですね。
(1) p>0 → f(x)には極大・極小がない。なので、f(x)=0には1つの実数解と2つの虚数解がある。
(1-1) q>0 → x<0の範囲に唯一の実数解がある。
(1-2) q=0 → x=0が唯一の実数解。
(1-3) q<0 → x>0の範囲に唯一の実数解がある。
(2) p=0 → x=(qの符号)×(|q|^(1/3))が唯一の実数解。
(3) p<0 → f(x)には極大・極小がひとつずつある。f'(x)=0を解いて
極大fmax = f(-√(-p/3))
極小fmin = f(√(-p/3))
であると分かります。そして、
(3-1) fmin >0 → x<-√(-p/3)の範囲に唯一の実数解がある。
(3-2) fmin = 0 → 二重解 x=√(-p/3)のほかにもうひとつ、x<-√(-p/3)の範囲に実数解がある。
(3-3) fmax > 0 > fmin → x<-√(-p/3)の範囲、-√(-p/3)<x<√(-p/3)の範囲、および、
x>√(-p/3)の範囲にそれぞれひとつずつ実数解がある。
(3-4) fmax = 0 → 二重解 x=-√(-p/3)のほかにもうひとつ、x>√(-p/3)の範囲に実数解がある。
(3-5) 0 > fmax → x>√(-p/3)の範囲に唯一の実数解がある。
「ある範囲に唯一の実数解がある」というその解の数値計算は簡単で、ニュートン法が使えます。すなわち:
適切な出発値x[0]を与えて、
x[n+1] = x[n] - f(x[n])/f'(x[n])
を繰り返せば、x[n]が解に収束する。最初もたついても、収束しはじめるととても速くて、繰り返す度に有効数字の桁数がおおむね倍になって行きます。なので|f(x[n])/f'(x[n])|がうんと小さくなったら打ち切れば良いわけです。
出発値は「範囲内であって範囲の境界から適当に離れたところ」をx[0]にすれば良い。適当って、(だいたい何でもいいんですけど、小さい定数だと|p|が0に近い場合にx[1]が大はずれの値になってなかなか収束が始まらないんで)たとえば(|q|^(1/3))+1ぐらい離れたところとか。
ただし、(3-3)における「-√(-p/3)<x<√(-p/3)の範囲にある解」を探す場合だけは、「適当に」じゃカオスに陥ることがありますんで、この場合は変曲点(f''(x)=0となるx)であるx=0を出発値にします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
重ね合わせの原理と線形性
-
5
「この解は問題にあう」中学2...
-
6
一枚の板から何枚取れるか?
-
7
f(θ)=2sinθ-3cos^2+1について
-
8
aの値に関係なくとよく問題で見...
-
9
2次方程式の2解がともに0と3の...
-
10
微分の重解条件は公式として使...
-
11
適正解と最適解
-
12
解に3つ以上±や∓がある時複号...
-
13
微分方程式の定義域
-
14
y'+ay=b (a,bは定数)を解く
-
15
連立方程式が解けません(x、yが...
-
16
三次方程式の解法について
-
17
二次方程式の解の絶対値二つと...
-
18
掃き出し法 3すくみに引き算す...
-
19
微分方程式 定常解について・・・
-
20
数学II@微分法に関する問題
おすすめ情報
公式facebook
公式twitter