No.8ベストアンサー
- 回答日時:
下記URLの「Rによる統計解析」の「シンプレックス法によるパラメータ推定」にシンプレックス法のソースコードと解説もあります。
例えば(x,y)=(1,3),(2,8),(3,15),(4,35),(5,57),(6,80),(7,92),(8,95),(9,99),(10,100)というデータにy = a/(1+b*exp(-c*x))
という関数をあてはめるには次の様にするとできます。
1. Rのホームページ http://www.R-project.org/
に入り、Downloadのページ'CRAN'から適当なバイナリをダウンロードする。
2. Rを起動してFileメニューのNew Scriptを選択
3. 「シンプレックス法によるパラメータ推定」からsimplex関数をScriptのウインドウにコピーアンドペーストする。
4. FileメニューのSave asを選択してScriptを保存
5. FileメニューのSource R Codeを選択して保存したScriptを実行
6. Rのコンソール上で次の様に入力してデータを定義
x <- c(1,2,3,4,5,6,7,8,9,10)
y <- c(3,8,15,35,57,80,92,95,99,100)
7. あてはめる関数を定義する
model1 <- function(x, p)
{
return(p[1]/(1+p[2]*exp(-p[3]*x)))
}
8. (a,b,c)=(30,20,10)を初期値として実行するには次の様に入力
simplex(model1, c(30, 20, 10), x, y, plot.flag=TRUE)
参考URL:http://aoki2.si.gunma-u.ac.jp/R/
No.9
- 回答日時:
>'CRAN'から適当なバイナリをダウンロードする。
今は楽になったのですね。昔は自分でテーブルを紙に書いて(表計算ソフトに1つづつ書きこんで)いたのですが。
ソフトを使う場合には.検算方法(双対定理, 音で覚えているために漢字疑問)だけは理解してから使ってください。なにかしらかの間違いがある場合がありますから。
No.7
- 回答日時:
5番です。
>シンプレックス法で数値微分が必要なのか私は疑問に思
「アメーバーほう」は私が知らないので最近の研究成果でしょう。話しの雰囲気ですと計算の簡略化が行われていますから。
数値微分が必要な理由は.ピポットの選択のためです。もっとも変化量が大きい項を選択することで収束を早めます。このために必要です。
No.6
- 回答日時:
Nelder-Meadのシンプレックス法は変数の数がN個であるとき、N次元空間でのシンプレックスを考えます。
次に各頂点での関数値を求め、以下のような作業を繰り返し、シンプレックスの体積を小さくしていきます。この体積が十分小さくなったら解が求まったことになります。*関数値最大点を残りの点の重心の反対側に対称移動:(「反射」と言う)
*上記で対称移動した点をさらにその方向に伸ばす:(「膨張」と言う)
*1次元の収縮
*(その時点の)最小点への全次元の収縮
上記のシンプレックスの動きが、伸びたり縮んだりして動くアメーバ(Amoeba)みたいなので、次の本ではアメーバ法と呼ばれています。
William H.Press〔ほか〕著 丹慶勝市〔ほか〕訳
ニューメリカルレシピ・イン・シー : C言語による数値計算のレシピ 日本語版
東京 技術評論社 1993.
また下記URLの「その他」の項目をダウンロードするとアメーバ法のCソースプログラムがあります。
シンプレックス法で数値微分が必要なのか私は疑問に思います。また私は最小二乗法とシンプレックス法は二者択一されるようなものではなく、
最小二乗法
→残差を表わす関数を最小にするパラメータを求める
→関数を最小にするパラメータを求める方法としてGauss-Newton法やシンプレックス法がある。
というように理解しております。
参考URL:http://www5.airnet.ne.jp/tomy/cpro/dl/download.htm
No.5
- 回答日時:
>ところでカイノス、鞍部とは何でしょうか?
解の巣問題の例としては.
砂場に幼稚園生10人か20人集めて穴を掘ってもらいます。もっとも深い穴を掘った園児に賞をあげるとします。
この水平座標の関数としての深さの方程式を最小二乗法で求める場合に.「もっとも深い」かもしれない隣の穴の解を求めてしまい(=穴の深さを最適解として結論付けてしまい)本当に深い隣の穴の深さを測らないことが発声する
というのが.カイノス問題です。
鞍部問題の例としては.
四角い折り紙を適当に2つに折ります。中央付近が持ちあがって.左右が下になるように中央付近の折り目に糸を通して吊ります。
折り紙の紙の中にのみ解が存在し.もっとも低い場所が最適解であるという関数を最小二乗法で求める場合に.中央付近の山の部分よりも低い場所のみ値を求めて.反対側を計算しないという収束を示す場合です。
カイノスは複数の鞍部が存在する場合の鞍部問題と解釈できるでしょう。
それと.「折り紙」とか「幼稚園生が掘った穴」のような不連続店が存在する例をあげたかというと.「共役勾配法」のような方法は方程式に条件がつくのです。この条件は「連続であること」です。不連続な点が存在すると.最適解が求められないのです。
シンプレックス法は不連続点が存在しても(かなり計算が面倒になりますが)それなりの貝が求められます。
だから「悪条件」の場合の初期解として求めて.初期貝の付近の付近の連続性を調べて.最小二乗法の計算をするわけです。
それから数学的に求められている「最小二乗法」ではなくて「絶対値法」も数学的に問題がありますが.使うには便利です。最小二乗法で発散してしまう場合には試す価値があります。これは.通常計算速度の問題から.単精度実数を使っているはずです(倍精度は4倍以上の時間が必要)。まあ.1の近辺に解がある場合に限って求めていれば変な問題が発生しないのですが.10次元方程式あたりで.解が100とか900とか付近にあるとか0.001とか0.009付近にある場合に.残差二乗和等が計算機eを超えてしまって微分しても同じ値しか帰ってこないのです。
だから.取り扱う数が1の近くになる絶対値法を試す必要が出てくるのです。
No.4
- 回答日時:
非線形のシンプレックス法に関して
F.H. Walters, L.R. Parker, S.L. Morgan, and S.N. Deming. Sequential Simplex Optimization. CRC Press, Boca Raton, Florida, 1991.
M.H. Wright. Direct search methods: once scorned, now respectable. In D.F. Griffiths and G.A. Watson, editors, Numerical Analysis: Proceedings of the 1995 Dundee Biennial Conference in Numerical Analysis, pages 191-208, Harlow, United Kingdom, 1996. Addison-Wesley Longman.
を御覧下さい。ネット上では下記に簡単な解説がありますが、もっと詳しいものもあるかもしれません。
参考URL:http://www.research.ibm.com/infoecon/paps/html/a …
No.3
- 回答日時:
シンプレックス法じゃなくて内点法ならば,非線形問題に対しては共役勾配法という手法で確立されていますが,シンプレックス法ですか?
もしくは,シンプレクティック法ではないのですか?
この回答への補足
非線形問題でシンプレックス法が使えるというのを知ったのはここで見たからです。
http://www.akita-noken.go.jp/provide/mc/manual/a …
シンプレティック法とシンプレックス法は全く別物なのでしょうか?
No.2
- 回答日時:
>は扱えるのでしょうか?
取り扱えますが.計算が膨大になるのであまりしません。
>には、どうすればよいでしょうか?
まずそれぞれの項(でよかったかな.名称疑問)で解を数値微分して.傾きが最大な項を見つけます。
次に.「ちょっと」(=数値微分の時のdX程度)ずらして...を繰り返して.「極値である.か.他の項の傾きが大きくなる」が項の移動の収束店です。「極値」は刻み幅を変更する必要がある程度の場合です。数値微分に時間がかかるので.局地になるまで「他の項の傾き」を省略する場合が多いでしょう。
ここで最初に戻ります。
線形式では局地まで一回の計算で落とせますが.ひせんけいしきではこれができません。何回も計算する必要があります。
結局.総当りで計算しているのと同じ暗い時間がかかってしまうので....。刻み幅の選択には注意してください。
これを使うときには悪い問題しか取り扱わないので.カイノスとか鞍部にいやってほど苦しみます(収束を早め様と広げると振動してくれる)から。
数値微分の方法と.極値か傾きを取るか.の組み合わせでいくつかの方法があります。数学的に意味がない場合も有ります(カイノスに引っかかった時等)ので.この場合には.最小二乗法の初期値を求める場合になるでしょう。
刻み幅の自動変更には注意してください。場合によっては固定する必要も出てきます。
No.1
- 回答日時:
私はこの分野は全く素人なのですが、実際に非線形最小二乗法にシンプレックス法を使っている文献があることから、使えるものと考えられます。
参考URL:http://www.jlc.net/~fperrell/webps03.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2階微分d^2y/dx^2を詳しく教え...
-
x√xの微分
-
これらの数式を声に出して読む...
-
三角関数の微分の問題なんです...
-
分母が文字の分数を微分する方...
-
サイン二乗xの微分を教えてく...
-
log(1+x)の微分
-
3階微分って何がわかるの??
-
この問題を解いたら写真のよう...
-
虚数の入った積分
-
y=e^x*logxを微分すると e^x*(l...
-
不定積分の計算で出た定数は捨...
-
y^2をxについて微分してください
-
数学の微分の範囲で 増減を調べ...
-
d^2y/dx^2は何と読めばいいので...
-
二回微分して 上に凸下に凸 が...
-
e^sinxの微分
-
数学についての質問です。 1.f(...
-
微分や積分は何に利用できるの?
-
y=log(logx)の微分について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2階微分d^2y/dx^2を詳しく教え...
-
サイン二乗xの微分を教えてく...
-
二回微分して 上に凸下に凸 が...
-
3階微分って何がわかるの??
-
授業で「yをxで微分する」とい...
-
分母が文字の分数を微分する方...
-
y^2をxについて微分してください
-
y=e^x^x 微分 問題
-
これらの数式を声に出して読む...
-
和積・積和の公式について質問...
-
log(1+x)の微分
-
三角関数の微分の問題なんです...
-
二次関数 y=x^2 を微分すると---
-
なぜ微分したら円の面積が円周...
-
不定積分の計算で出た定数は捨...
-
位置を微分したら速度?
-
lim[x→0](e^x - e^-x)/x
-
dxやdyの本当の意味は?
-
y=logxA(Aは定数)をxで微分
-
数3の「eのh乗引く1をでh割...
おすすめ情報