dポイントプレゼントキャンペーン実施中!

y1=ax1^b
y2=ax2^b
y3=ax3^b
の式が与えられている時
y1,y2,y3及びx1,x2,x3は既知として

a及びbを求める式はどのようになりますでしょうか

教えてください

A 回答 (2件)

(1)「xの測定誤差は無視できるが、yの測定誤差が大きいために、N回繰り返して測定をやった」という場合だと、考えるべき方程式は


  y[j] = a x[j]^b + ε[j] (j = 1,...,N)
です。さらに、「測定の度に誤差はランダムに発生し、測定同士は独立で、誤差ε[j]は概ね正規分布に従っているようである」というのであれば
  E(a, b) = ∑{j=1...N}(ε[j]^2)
を最小化するa, bを探す問題として定式化できます。さて、E(a,b)を最小化するa,bを A, Bとすると、E(A+a,B+b)は|a|,|b|がうんと小さい時にはE(A,B)と変わらない。すなわち、A, Bは
  ∂E/∂a = 0
  ∂E/∂b = 0
という連立方程式の解になっていなくてはならない。(で、大抵の場合には、この方程式の解がそのまんまA, Bであります。)
  ∂E/∂a = 2 ∑{j=1...N}ε[j] (∂ε[j]/∂a)
  = 2 ∑{j=1...N}ε[j] (∂/∂a)(y[j] - a x[j]^b)
  = -2 ∑{j=1...N}(y[j] - a x[j]^b)(x[j]^b)
  = -2 ∑{j=1...N}y[j](x[j]^b) + 2 a ∑{j=1...N}(x[j]^(2b))
より、bが与えられればaは
  a = ∑{j=1...N}y[j](x[j]^b) / ∑{j=1...N}(x[j]^2b)
と決まることがわかります。一方、
  ∂E/∂b =2 ∑{j=1...N}ε[j] (∂ε[j]/∂b)
  = 2 ∑{j=1...N}ε[j] (∂/∂b)(y[j] - a x[j]^b)
  = -2 ∑{j=1...N}(y[j] - a x[j]^b)a(x[j]^b)ln(x[j])
  = -2 a∑{j=1...N}y[j](x[j]^b)ln(x[j]) + 2 (a^2) ∑{j=1...N}(x[j]^(2b))ln(x[j])
すなわち
  ∑{j=1...N}y[j](x[j]^b)ln(x[j]) = a ∑{j=1...N}(x[j]^(2b))ln(x[j])
ですから、上記のaを代入すると
  (∑{j=1...N}y[j](x[j]^b)ln(x[j]))(∑{j=1...N}(x[j]^(2b))) = (∑{j=1...N}(x[j]^(2b))ln(x[j]))(∑{j=1...N}y[j](x[j]^b))
という、bに関する非線形方程式が得られる。解析的に解くのは無理で、数値的に、要するに「いろんなbを試してみて、解を探す」ということになるわけですが、どうやるかというと、一般に方程式
  f(x) = 0
を解くための様々な工夫が知られています。
 一方、「(上記のように)未知数を1個にまとめるよりも、a,bの二元連立方程式として解を探していくほうが却って計算量が少なくて済む」ということがしばしばあります。その場合に使われるのが非線形最小二乗法という数値計算法。最も原始的な「山登り法(最大傾斜法)」という方法の他にもいろんな工夫がなされています。

(2)「yの測定誤差は無視できるが、xの測定誤差が大きいために、N回繰り返して測定をやった」という場合だと、
  y[j] = a (x[j]-δ[j])^b (j = 1,...,N)
であって、さらに「xの測定の度に誤差はランダムに発生し、測定同士は独立で、誤差δ[j]は概ね正規分布に従っているようである」というのであれば
  E(a, b) = ∑{j=1...N}(δ[j]^2)
を最小化するa, bを探す問題になりますが、さてδ[j]はどんな式で表せるか。対数を使って
  ln(y[j]) = ln(a) + b ln(x[j]-δ[j])
である。ここでさらに、「xに比べて誤差|δ[j]|はかなり小さい」のであれば
  ln(x[j]-δ[j]) = ln(x[j](1-δ[j]/x[j]) = ln(x[j]) + ln(1-δ[j]/x[j])
  ≒  ln(x[j]) - δ[j]/x[j]
という近似を使って、
  ln(y[j]) ≒ ln(a) + b ( ln(x[j]) - δ[j]/x[j])
なので
   δ[j] ≒ -(1/b) x[j] ln(y[j]) + (ln(a)/ b) x[j] + x[j] ln(x[j])
そこで、
  α = ln(a)/ b
  β = -1/b
と定義すると
  δ[j] ≒ α x[j] + β x[j] ln(y[j]) + x[j] ln(x[j])
と書けて、
  F(α,β) = ∑{j=1,...,N} (α x[j] + β x[j] ln(y[j]) - x[j] ln(x[j]))^2
を最小にするα, βを探す問題として定式化できます。このとき、∂F/∂α, ∂F/∂βはどっちもαとβを未知数とする一次式になるので、単に連立一次方程式を解けば答が得られます。

(3)「yの測定誤差もxの測定誤差も無視できない」という場合だと、
  y[j] = a (x[j]-δ[j])^b + ε[j] (j = 1,...,N)
ということ。
 ここで「測定の度に誤差はランダムに発生し、測定同士は独立で、誤差ε[j]とδ[j]は概ね正規分布に従っているようである。そして、ε[j]とδ[j]は独立のようである。」というだけだと、ε[j]とδ[j]のどっちにどれだけの重きを置けば良いのか決まりません。
 さらにたとえば「δの標準偏差はεの標準偏差の約K倍で、Kは既知だ。」というぐらいのことがわかっていれば
  G(a,b) = ∑((ε[j] )^2+ (δ[j]/K)^2)
を最小化するa,bを探せば良いことになります。((1)(2)に出てきた式を組み合わせれば、Gが具体的に書き下せるでしょう。)
    • good
    • 0
この回答へのお礼

ありがとう

親切な御回答、ありがとうございます。
御回答頂いた内容から、私の場合は非線形最小二乗法が適していると思われます。
今まで闇雲に試行錯誤していたのですが、ご教授により方法がわかりました。ありがとうございました。

お礼日時:2017/05/23 11:36

y1 = a(x1^b)


  y2 = a(x2^b)
より
  log(y1) = log(a)+b log(x1)
  log(y2) = log(a)+b log(x2)
なので、既知の定数
  Y1=log(y1), Y2=log(y2), X1=log(x1), X2=log(x2)
と、未知数
  A = log(a), B=b
を使って連立一次方程式
  Y1 = A + X1 B
  Y2 = A + X2 B
が得られます。これを解いてA, Bを出せば、a, bが分かる。
 ところが、ご質問ではもう一つ(余計な)式
  y3=ax3^b
が与えられています。これも上記と同様に処理すると、連立一次方程式は
  Y1 = A + X1 B
  Y2 = A + X2 B
  Y3 = A + X3 B
となる。A, Bふたつの未知数しかないのに式が3本ある。これらの式を全部満たすA, Bがあるかどうかは、X1, Y1, X2, Y2, X3, Y3がいくらであるかによります。


 一方、測定によって(x1, y1), (x2, y2), …が与えられている場合には、それらに実験に伴う誤差が入っていることを考慮しなくてはならない。測定値から誤差を除いたものが理論式
  y = a(x^b)
に従うと考えるわけです。すなわち、たとえば最初の式は
  y1-ε1 = a((x1-δ1)^b)
のように書き換えねばなりません。この場合、「多数の測定値(xj, yj) (j=1,2,…,n)に最も合うようなa, bはいくらか」ということを考える必要があり、最尤推定の問題になります。
 これをきちんと解くには、誤差ε1, δ1がどんなタイプの分布に従っているか、ということが分かっている必要がありますが、「誤差εj, δjは互いに独立で平均0の分布に従う」というようないい加減な条件でも、ま、それなりにいい加減な推定ならできます。
 そのやり方は「非線形最小二乗」と呼ばれており、これは要するに「a, bをいろいろ変えてみて、一番うまく行くのを探す」ということにほかなりません。

 さて、どっちの話をなさっているのでしょうか?
    • good
    • 0
この回答へのお礼

ありがとう

御回答、誠にありがとうございました。
仕事上で何とかならないだろうかと思ってる事でしたので、とても助かります。

ご賢察の通り私の目的は、後者の誤差を含んだ多くのデータからa とbを推定する事にあります。
残念ながら誤差のタイプ等については、私の知識では分かりません。ご教授頂いた内容をもう少し理解できるようになってから、改めて ご教授頂きます。その際は、どうぞよろしくお願いいたします。


私なりに解決の糸口が見つかった事、丁重な御回答に改めて感謝申し上げます。

お礼日時:2017/05/18 14:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!