A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
一番です。
今帰ってきたと子なので大雑把に。鞍部問題でいやってほど苦しんだ人間ですので、尋常な方法ではありません。
点(Xi, Yi), i=1,2,...,n を通る円の方程式を求めるとして、
円の中心点(X0, Y0)の座標は
Xiの最大値Xmaxと最小値Xminの間に X0が存在する
Yiの最大値Ymaxと最小値Yminの間に Y0が存在する
ことが「偏りがないサンプリング」で、十分大きな資料数がある場合にはは言えるでしょう(私が解いた問題では、偏りがあって苦労した)。
XmaxとXminの間を16分割して(Xmax-Xmin)/128の幅(Xhaba)で
YmaxとYminの間を16分割して(Ymax-Ymin)/128の幅(Yhaba)で
16*16 =256 個の点のどこかに中心点があるとして、すべての観測点との距離を計算して、距離の平均と、計算でもとのた距離との差の絶対値が最小となった点(Xk, Yk)をもとめます(私の場合には、Yk=Ymaxとなって本来求めたいYk=Ymin側の中心点が消えてしまった)。
点(Xk, Yk)の周り , Xk-Xhaba から Xk+Xhabaの間, Yk-Yhaba から Yk-Yhaba の間について、同様に、X方向・y方向ともに16分割して計算して行きます。
これを何回か繰り返してゆくと、残差の変化がほとんどない点が最適解としてえられます。
これで求められた点と、観測点の重心を中点とする反対側に鞍部の向こう側の解となる中心点(Xl, Yl)があると仮定して
点(Xl, Yl)の周り , Xl-Xhaba から Xl+Xhabaの間, Yl-Yhaba から Yl-Yhaba の間について、同様に、X方向・y方向ともに16分割して計算して行きます。
これを何回か繰り返してゆくと、残差の変化がほとんどない点が最適解としてえられます。
以上の方法て゛、2つの解がえられます。定義域などの情報から一方の解は捨てられるでしょう。
個の方法は、計算時間がやたらかかりますが、鞍部問題に引っかかりにくいので便利です。点(1.1,1.1), (1,-1), (-1,1), (-1,-1)の4点が与えられているときに、
点(0,0)付近を中心とした半径1.4位の円を想定するか、
点(10,10)(くらいかな)付近を中心とする半径10くらいの円を想定するか、
点(-10,-10)(くらいかな)付近を中心とする半径10くらいの円を想定するか、
です。
手作業で行うのであれば、任意の点3点を選んで、3点を通る円の式を解析で求めて、これを初期値(Xm, Ym)とする。
点(Xm, Ym)の周り , Xm-Xhaba から Xm+Xhabaの間, Ym-Yhaba から Ym-Yhaba の間について、同様に、X方向・y方向ともに16分割して計算して行きます。
という方法もあります。「任意の点」というよりも、点間距離が大きくなる点を選んだ(総当りで3てん感の距離の合計を求めて最大となった点を初期値とする。ただし正三角形に近い形の場合が収束が早い)ほうが、最適解になりやすいです。
方法はいくつかありますので、プログラミングの技術(含プログラム作成時間がどのくらいさけるか、最初の方法ですとFor-Nextの繰り返しだけだから3-4日で何とか形になる、を含む)と相談して選んでください。「研究する」ことが重要であって、プログラミングは研究するための道具でしかないのですから、多少計算時間はかかっても(夜間放置して解を得ることになっても)、研究のほうが重要ですので、プログラミングは短時間で終了させる必要があります。
No.2
- 回答日時:
全く詳しくないド素人(プログラムも数学も)ですが、
プログラムの手順としては
1. Xj,Yjを読み込む。 ファイル形式で読み込むのか、数値入力するのか、ビジュアルに入れるのかその辺はきまっていますか?
2. x0,y0を計算で出す。
ヒントとしては、
S=Σ{(xj-x0)^2 +(yj-y0)^2}
=Σ(xj-x0)^2 +Σ(yj-y0)^2
=x1^2-2x1x0+x0^2+x2^2-2x2x0+x0^2+.....+Σ(yj-y0)^2
=Σxj^2-Σ2xjx0+Σx0^2+Σ(yj-y0)^2
∂S/∂x0=-Σ(2xj-2x0)
⇒Σxj=n*x0
x0 = Σxj/n
ということでちょっと気になっている、http://oshiete1.goo.ne.jp/qa4381786.htmlの2番目の回答と同じ。
これがどういうことかというと、読み込んだxjを全部足して読み込んだ個数で割るという意味。
3.pを求める。
4.結果を表示する。
どう見ても研究というより課題だけど、自分でやらないと意味がないと思う。
No.1
- 回答日時:
「円の」の意味が解釈不能。
VBプログラムを作るとして、求める方程式と、どの残差を最小にしたいか、
それとも、どなたかが作成したプログラムでしょうか、こちらですと、作成者に聞いたほうが早いのですが。
ここでの円は座標上での円です。
残差を最小にして計算を行いたいです。
S=Σ{(xj-x0)^2 +(yj-y0)^2}
として、
∂S/∂x0=0
∂S/∂y0=0
より、(x0,y0)が求め、次に半径r0を
ρ=(1/N)Σ√{(xj-x0)^2 +(yj-y0)^2}
として、
r0=pを求めるプログラムを作りたいのです。
ちなみにどなたかがこのプログラムを作成していないか探したところ見つかりませんでした。
内容不足ですみませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 最小二乗法 2 2023/01/01 20:57
- その他(プログラミング・Web制作) 3Dモデルにおける法線の計算について(Python,OpenGL) 1 2023/04/25 23:46
- Visual Basic(VBA) Vba UserFormを前面に出す方法を教えてください 1 2023/08/17 11:08
- C言語・C++・C# プログラム内から、MIDIファイルの一部分だけを再生する方法 1 2023/02/15 11:08
- C言語・C++・C# パーレー法のプログラムについて 3 2022/09/04 19:56
- その他(プログラミング・Web制作) [急募]Pythonについてです。 1 2022/10/03 20:53
- Visual Basic(VBA) VBAプログラム初心者です。 以下の問題のプログラムを表記してみたのですが、実行するためには、どこを 4 2023/01/19 20:04
- 子育て 娘の定期のお金の減りが早い 9 2022/09/14 23:21
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) 大学一年でVBAのプログラミングを勉強しているものです。来週の情報の授業で以下の問題のプログラムを勉 4 2023/01/19 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mod でうまく
-
めちゃきれい
-
65536は2の何乗なのでしょうか?
-
モジュラス103の計算とは何でし...
-
MATLABの利点と欠点
-
円周上の3点で作られる三角形...
-
pythonによる日の出日の入り計算
-
60進数の四則計算
-
傾いた四角形内の範囲の条件式
-
数値計算の高速化 (cos, sin, exp)
-
matlabで計算終了
-
エクセルで特定のセルのみを任...
-
時間差の何分かを知りたいんですが
-
VBとVBAの違い
-
プログラムの質問
-
fortran πについて
-
スレッド処理からダイアログを...
-
伝達関数のステップ応答→グラフ...
-
VBA入力フォームで労働時間の計...
-
排他的論理和 BCC(水平パリテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
C言語の課題で、1年の秒数を計...
-
バッチファイルでウインドウを...
-
骨折リスク評価のFRAXについて...
-
変化させるセルが変化しない
-
CとFORTRANの計算速度はどちら...
-
なぜオーバーフローになるので...
-
数値計算の高速化 (cos, sin, exp)
-
モジュラス103の計算とは何でし...
-
C# 計算処理中に実行中ウィン...
-
モジュロ
-
引き放し法による除算アルゴリ...
-
60進数の四則計算
-
C言語についてです。 再帰を使...
-
Perlで時間の計算
-
CRC8を教えてください
-
傾いた四角形内の範囲の条件式
おすすめ情報