プロが教える店舗&オフィスのセキュリティ対策術

学校で習ったと思うのですがすっかり忘れてしまったようなので教えて下さい。
縦横それぞれ対数で書かれたグラフがあり、直線で右肩上がりで線が引かれてあります。
サンプルとしては
横0.1の時縦3.5
横0.2の時縦6.5
横0.3の時縦10
横1の時縦31
横3.2の時縦100
横10の時縦330
横30の時縦1000
横70の時縦2000
(グラフから読み取ったものなので正確ではありません)
という具合なのですが
これをいちいちグラフを見ずに計算で求めたいと考えています。
横0.1の時縦3.5と横70の時縦2000を直線で結んだ時
各々が計算で出せるように式を組む場合どのように考えて
計算式を組むかを教えて下さい。
確かLogを使った気がするのですが全く思い出せません。
今後の事を考えてどのように導くかも併せて教えてくれると
助かります。
一応excelで書いたグラフを貼っておきます。

「対数グラフを計算式に直す方法」の質問画像

A 回答 (4件)

>x=が必要でした。



x=でも同じです。

(logy - logb) / (logd - logb) = (logx - loga) / (logc - loga)
この式で、xとy、aとb、cとdを交換しても同じ式になるから、

p = log(d/b) / log(c/a)
q = b / a^p
y = q * x^p
これも交換して、

p = log(c/a) / log(d/b)
q = a / b^p
x = q * y^p


ついでに、別の方法での求め方を。

No.2さんも書いていますが、対数グラフの直線は、
x = q * y^p
の形になります。
(y = q * y^p でも同じこと)

この直線が(a,b)、(c,d)を通るとすると、
a = q * b^p
c = q * d^p
となるから、これからp,qを求めればいい。
    • good
    • 0
この回答へのお礼

助かりました。
数学なんて何年ぶりという感じです。
会社で表をみたときやった記憶があるのにすっかりです。
色々ありがとうございました。

お礼日時:2013/04/26 21:38

一般化して、


横aの時縦b、横cの時縦dを直線で結んだ直線は、

(logy - logb) / (logd - logb) = (logx - loga) / (logc - loga)

整理すると、

y = b * x^(log(d/b) / log(c/a)) / a^(log(d/b) / log(c/a))

p = log(d/b) / log(c/a)
q = b / a^p
とおけば、
y = q * x^p

この回答への補足

遅くなりました。
y=の部分を理解するのに時間がかかりすぎました。
しかし求めようとしているのはy=ではありませんでした。
x=が必要でした。お詫びして訂正させていただきます。
自分でもいろいろ調べているのですがx^pの^pを持っていけてません。
何かの公式があったと思うのですが・・・。
ご教示よろしくお願いいたします。

補足日時:2013/04/23 20:30
    • good
    • 0

http://ja.wikipedia.org/wiki/%E4%B8%A1%E5%AF%BE% …

の冪関数のところをお読みになるとわかると思います。

グラフにする前のもとのデータがあるなら、それをExcelのA列、B列に入力し、それぞれの対数(Log)をとったものをC列、D列に入れ、C列とD列で単回帰分析を行えば、nとLogAが出ます。
それで、y=A*(xのn乗)として計算できます。
    • good
    • 0
この回答へのお礼

No1の方の応用を示して頂いたと解釈しています。
ただ自分では理解できないようで頭が混乱しています。
No1の方の式の整理ができればいいなと思っています。
ありがとうございました。

お礼日時:2013/04/19 18:26

>横0.1の時縦3.5と横70の時縦2000を直線で結んだ時



対数グラフ上のこの直線を式にすると、

(logy - log3.5) / (log2000 - log3.5) = (logx - log0.1) / (log70 - log0.1)

あとはこれを整理しましょう。
    • good
    • 0
この回答へのお礼

式自体は理解しました。他のサンプルでもうまく近似値が出ました。
ですがこれをy=だけにする方法(要は式の整理ですね)がいまいちピンときません。
Logの計算の整理は単純に足し引きできましたっけ?
計算機片手にやってみてるのですが単純化ができません。
整理した式が簡単であればいいのですが・・・。
組み込み用のCPUで使用するのでC言語を使っていますので長々と式を書けば済むのですが
単純化できると助かります。

お礼日時:2013/04/19 18:22

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

このQ&Aを見た人はこんなQ&Aも見ています