アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記画像のように青いラインのカーブがあります。両側は直線(1つは水平、1つは正の傾き)です。
この曲線を評価するためのいい相関式を教えて頂ければと思います。
お互いに直線の交点でもよいかとは思いますが、それ以外の方法がよいです。

「添付ファイルの曲線の評価の仕方」の質問画像

質問者からの補足コメント

  • どう思う?

    下記サイトを見つけました。
    y=log(exp(x)+1)
    よさそうな感じもしますが、
    ただ、どうパラメータを設定すれば、直線部分の傾き、2直線間の曲率がかわるかわかりません。
    https://www.quora.com/What-is-special-about-rect …

      補足日時:2017/02/10 22:35

A 回答 (7件)

補足コメント、読みました。



確かに、y = log(exp(x) + 1) を利用すると、よさそうです(私には、こんな関数は思いつきもしませんでした)。

どう利用するかわからないということのようですから、多分こんな感じですればよいということを以下に説明します。

まず、y = f(x) の概形を見るために、x ---> ∞ を考えて見ます。すると、log の中で、1は無視できるので、f(x) = x に漸近します。同様に、x ---> - ∞ とすると、exp(x) が無視できて、f(x) = 0 に漸近します。
次に、関数を微分すると、dy/dx = exp(x)/(exp(x) + 1) となり、これを 0とすると、x = 1 となります。2階微分を取って、確認すると、この点は、変曲点であることが分かります。

以上ことから、漸近線をデータの2本の直線部分に対応させ、変曲点をデータの頂点みたいなところに対応させれば、この関数でデータのプロット曲線が表されそうだということが見えてきます。

これから、y = f(x) 係数をつけたものの形について考えます。具体的には、次のような関数です。
   g(x) = y = log(exp(a(x - b) + c))
を考えます。
この関数について、x ---> +- ∞ を見ると、前述の2本の直線が、それぞれ、y = a(x - b), y = log(c)
となります。
また、変曲点は、x = b の位置に来ます。

後は、直線の傾き、x軸方向の直線を表す y の値、変曲点の位置が、データと合うようにパラメ-タ a, b, c を決めればよいわけです。

これで、うまくいくと思います。
    • good
    • 0
この回答へのお礼

訂正に説明していただきありがとうございます。
これで解決できそうです。

お礼日時:2017/02/11 21:19

>ありがとうございます。

右上が直線の方がありがたいです。
 だから、クロソイドなのですよ。直線と直線の接合部分ですから・・

 道路の設計で使われるあまりに著名な曲線です。わずかでも数学携わればご存知かと。高速道路で直線の道路が曲がり、再び直線に入る場所などでは、クロソイドだとハンドルを回すのがとても楽になる。極率が徐々に変化していく。
 クロソイド 道路 - Google 検索( https://www.google.co.jp/search?tbm=isch&q=%E3%8 … )
    • good
    • 0
この回答へのお礼

ありがとうございます。知らない関数でした。勉強してみます。

お礼日時:2017/02/11 21:20

>補足コメント


それを一般化するなら、y=(b/a)log(exp(ax)+1) とすれば
・a を大きくするほど 2 直線に近くなる
・b は右側の直線の傾きを表す
ということになります。
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にします。

お礼日時:2017/02/11 21:19

通常は


クロソイド曲線 - Wikipedia( https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD … )
を想定する。
 曲率が急に変化しないように・・
    • good
    • 0
この回答へのお礼

ありがとうございます。右上が直線の方がありがたいです。単純なようで、意外と、相関式がないのですね。シグモイド関数より簡単な式があるかと思ったのですが。

お礼日時:2017/02/10 21:32

No. 2 です。

シグモイド関数で近似したいということではないですよね。よく分からないですが、次のようなことでしょうか。

実験で得られたデータのプロットを適当な曲線で結んだものが、青い線のようになり、実験条件か何かによって、青い線が変わるような状況で、それらを表す統一的な近似関数(いくつかのパラメータをもち、そのパラメータは実験の条件によって変わる)がないかと考えているが、シグモイド関数では、右側がうまくいかないし、、、、ということですね。

この図から見ると、丸みの部分、直線部分をうまく表す関数として、簡単な(次数が低い)を考えると、前にも書いたように双曲線が合いそうな気がします。

次のような手順で双曲線を考えてみたらうまくいくのではないかと思います。

今、2つの直線(点線でかかれた)の交点を原点とし、左側の直線を x 軸(マイナス方向)とする座標系で描かれているものとします。

1.座標軸を回転して、双曲線の軸(青い図を折り曲げて右と左が重なるような線)に重なるようにします。この座標系で、以下のことを考えます。
2.双曲線の一般式は、x^2/a^2 - y^2/b^2 = 1 です。この双曲線の漸近線は、y = +- (b/a) x で、丸みの先端(なんと言うのか分かりませんが、多分この意味が分かるでしょう)が双曲線の頂点になります。
3.データ(当然、座標の回転に対応させて変換をしたもの)から、漸近線の傾き(と、頂点の値)が得られますから、そのデータに適合する a, b が得られる。
4.(必要があれば、)座標軸を逆に回転して、元の座標系での関数に戻す。

データから、漸近線は得られるので、多分、OKだと思います。頂点のあたりは、クリチカルでデータが取り難いかもしれませんが、頂点も得られるときは、a, b の候補が3組になるので、その中の一番よいもの(基準は、状況による)を選ぶことにすればよいと思います。

こんなところで何とかなると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。意図したことが理解していただいております。挑戦してみます。

お礼日時:2017/02/10 21:30

相関式、とは何のことですか? 聞いたことがありませんが、、、。


その後の、「お互いに直線の交点でもよいかとは思います」というところも何がよいのかが伝わってきません。一応、次のように推測してみましたが、、、。

青い線を近似する関数が欲しいということですか。
そうであれば、No. 1 の方が指摘しているように、双曲線を考えればよいと思います。
図から直角双曲線ではないようですが、双曲線の漸近線がこの図の2直線になるような双曲線を求めればよいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。質問があいまいでした。青い線は、無数のデータの集まりです。条件によって、斜線の傾きと丸み度合が異なります。シグモイド関数みないなもので、近似の関数からそのパラメータを求めればよいですが、シグモイド関数ですと、右上が相関できません。
また、直線2つの交点でもよいですが、丸みの度合いが、表現できません。
斜線の傾きと丸み度合が同時に表現できる近似の関数があり、そのぱパラメータが求めたいと思っています。

お礼日時:2017/02/10 15:48

2次導関数が最大となる時のxの値

    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2017/02/10 15:48

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