• 締切済み

t分布の逆関数をC言語で求めたい

t分布の逆関数を求めるエクセル関数「TINV」にあたるものを C言語で書くとどのようになりますか? ちょっと調べただけではよく分からなかったのですみませんがどなたか教えてください。

みんなの回答

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.1

t分布の密度関数は初等関数で表示できますから、 それを数値積分して分布関数の数表を作っておき、 与えられた確率値から表を逆引きして TINV を 求めるのが現実的かと思います。 個々の確率値に対して単発で数値計算をするのは 得策ではないです。 t分布関数の数表を作るための数値積分は、 どんな近似法でもかまわないでしょう。 プログラミングの参考書には、何種類か 具体的なコードが書いてあるはずです。 見つからなければ "Numerical Recipes in C" がオススメかな。技術評論社から和訳が出てます。 表の逆引きは、分布関数の単調性を利用すれば 簡単でしょう。それこそ、プログラミングの 入門的例題だし。

tsuruharu
質問者

お礼

ご回答ありがとうございます。 調べてみます。 基本的にはエクセルのTINV関数がしているのと同じアルゴリズムで 計算できれば良いと考えているのですが、エクセルのTINV関数も ご指摘のように数表を作って逆引きして求めているのでしょうか?

関連するQ&A

  • 逆関数

    C/C0 =ERFC(x/2*SQRT(D*t))をxについて解くと、 x =2*SQRT(D*t)*ERFC-1(C/C0)という表記で大丈夫ですか? ERFC-1はERFC関数の逆関数という意味です。また、ERFC-1をエクセルで表す場合、どのような関数(もしくは手法)を用いればよいのですか? ERFC関数・逆関数・エクセルと検索してもよくわかりませんでした。 よろしくお願い致します。

  • ERFC関数と逆関数

    初歩的な質問だと思いますが、 C/C0 =ERFC(x/2*SQRT(D*t))をxについて解くと、 x =2*SQRT(D*t)*ERFC-1(C/C0)という表記で大丈夫ですか? ERFC-1はERFC関数の逆関数という意味です。また、ERFC-1をエクセルで表す場合、どのような関数(もしくは手法)を用いればよいのですか? ERFC関数・逆関数・エクセルと検索してもよくわかりませんでした。 よろしくお願い致します。

  • 有意水準表 For Excel

    Excelで F 確率分布の逆関数(F表) FINV t 分布の逆関数(T表) TINV を取得することができるのですが、 相関係数の有意水準表(ガンマ表?)を取得する方法がわかりません。 GAMMAINV かとも思ったのですが、実際の有意水準表と比べると ずいぶん違うようなので・・・ちょっと困っています。 どなたかお助けください。

  • C言語の二項分布

    こんにちは。C言語はほとんど初心者です。 P(X=i) = nCi p^i (1-p)^n-i これは二項分布の式ですが、この二項分布をC言語で表記したいのですが、解りません。Javaのプログラムなら、ホームページを参考にできそうなのですが.....。もし、ホームページ上にあるならば、そのサイトもおしえていただけないでしょうか?

  • 一般分布の分布関数

    一般分布についての質問です 一般分布の分布関数を使いG(t-u)を計算しようとしているのですが一般分布に従う時の分布関数や密度関数等の式がわかりません。 ポアソン分布や指数分布は参考書等出てきて関数自体わかるのですが一般分布についてはなかなか式まで書いている参考書が少なくわかりません。 知っている方、わかる方はどうか教えてください。 よろしくお願い致します。

  • 正規分布の分布関数について

    G(x)…標準正規分布の分布関数 f(x)…標準正規分布の密度関数  x…標準正規分布に従う確率変数 とするとき G[(C-ρx)/√(1-ρ)] の xに関する期待値が  G(C) になるようなのですが、どうしてでしょうか? (G[(C-ρx)/√(1-ρ)] の 期待値)=∫[-∞~∞]G[(C-ρx)/√(1-ρ)]*f(x)dx  となると思いますが、これをどう変形したらG(C)に等しくなるのでしょうか。 教えてください。  

  • C言語より後に開発されたプログラミング言語は

    C言語を基にして開発されたのでしょうか? C++,C#はもちろんそうですが、Java、PHP、JavaScriptなどもそうなのでしょうか?と言うのも、C言語の関数とこれらのプログラミング言語の関数がかなり似ているところ(共通しているものも)があるからです。また、Excelの関数とも似ているのですが、これらのプログラミング言語と何か関係があるのでしょうか。

  • C言語の高階関数についてです。

    C言語の高階関数についてです。 double f ( (*g)(double) ){...} とすると「関数を引数にする関数」が作れますが、 「関数を引数にする関数」を引数にする関数って作れますか??? その場合は、引数のところどうやって書けばいいでしょうか??

  • C言語の関数

    C言語で、特定の文字があったらそれを削除するというような関数ってありますか?

  • ワイブル関数累積分布関数でのt=ηの点はなんと説明しますか。

    ワイブル関数累積分布関数F(t)=1-exp(-(t/η)^m)でm=1、t=ηの点は63%ですがこの点をなんと説明すればよいですか。tを機械の寿命とすればηは何ですか。わかっているようで、わからない。なさけない。教えてください。