
No.2ベストアンサー
- 回答日時:
ちょっと訂正&補足です.
> 合計8自由度ですから,8点以上ないと決定できないと思います (いまいち自信不足).
直観的に考えてみると,5点以上あれば決定できるはずですね.m(_ _)m
ただし,この5点は同一平面上にないといけませんが.
そのことが自由度にどう影響しているのか,
また「3次元空間内の平面図形」ということがどう影響しているのか,
別途考え直してみます.
自由度 (Wikipedia)
http://ja.wikipedia.org/wiki/%E8%87%AA%E7%94%B1% …
3次元空間内の楕円に直接最小自乗法を適用すると,計算がとても大変そうなので,
次のようにした方がよいかもしれません.
(1) 与えられた点から,楕円が存在する平面を最小自乗法で決定する.
(2) 与えられた点の座標を上記の平面の座標に変換する.
(3) 平面座標から最小自乗法で楕円を決定する.
No.1
- 回答日時:
xyzということは3次元ですか?
それじゃ楕円ではなくて楕円体ですね.
それとも3次元空間内での楕円ということでしょうか?
多分後者だと思いますので,その前提で書きます.
> この掲示板の「楕円のプログラム」を参考にするとある5点以上の測定点から
> xy座標(2次元)のグラフにすることは可能であると書いてあり、納得しました。
2次元では,楕円の自由度は次のようになります.
中心座標:2
長軸の長さ:1
短軸の長さ:1
長軸の方向 (X軸に対する角度):1
合計5自由度ですから,5点以上あれば楕円を決定することができます.
3次元での楕円の自由度は次のようになります.
中心座標:3
長軸の長さ:1
短軸の長さ:1
長軸の方向:2
長軸まわりの回転角:1
(あるいは最後の2つをまとめて,3次元での回転=3自由度としてもよい)
合計8自由度ですから,8点以上ないと決定できないと思います (いまいち自信不足).
> 分からない点はxyzの楕円の基本方程式です。
普通の楕円の方程式は探せばいくらでもあると思いますが,
3次元内での楕円の方程式はちょっとなさそうですね.
まず,楕円を含む平面をUV平面とし,それに垂直なW軸を考えます.
楕円の中心をUV平面の原点,長軸,短軸方向をU軸,V軸方向とし,
それぞれの長さを 2 * a,2 * b とすると,
(u/a)^2 + (v/b)^2 = 1.
w = 0.
UVW系とXYZ系の原点が一致している (つまり楕円の原点のXYZ座標が (0, 0, 0))
の場合には,XYZ座標をUVW座標に変換する回転行列をRとすると,
U = R X (ただし U=(u, v, w),X=(x, y, z)).
楕円の原点が X0=(x0, y0, z0) にある場合は,
U = R (X - X0).
Rは3×3の行列だが,これを2×3の行列Ruv (XYZをUVに変換する) と,
1×3の行列Rw (XYZをWに変換する) に分けて,
R = (
Ruv
Rw
)
とすると,
(u, v) = Ruv (X - X0),
w = Rw (X - X0).
また
A = (
1/(a^2), 0
0, 1/(b^2)
)
とすると,楕円の方程式は
t(u, v) A (u, v) = 1.(t は転置)
これに (u, v) = Ruv (X - X0) を代入して
t(X - X0) tRuv A Ruv (X - X0) = 1 … (1)
w = Rw (X - X0) = 0 … (2)
(1),(2) が楕円の方程式になります.
> 最小二乗法をプログラムすることは可能でしょうか?
最小二乗法だと,何を誤差とするかによりますね.
素直に考えれば,点と楕円の (最短) 距離だと思いますが,
かなり面倒な式になりそうですね.
楕円 (Wikipedia)
http://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%86
Ellipsoid (楕円体,Wikipedia (英語))
http://en.wikipedia.org/wiki/Ellipsoid
二次曲面 (Wikipedia)
http://ja.wikipedia.org/wiki/%E4%BA%8C%E6%AC%A1% …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 以前同じ質問をさせていただいたのですが、読み直しても理解できなかったので、再掲します。 写真は楕円の 12 2023/08/22 15:51
- 物理学 歌口と楕円形の太鼓 1 2023/05/15 23:21
- 物理学 相対性理論と円運動について。 1 2023/01/30 11:39
- 物理学 物理の問題です。 xyz三次元直交座標系で,点A(1,0,0)に点電荷q[C],点B(0,1,0)に 1 2022/04/27 12:43
- 数学 球面と接する直線の軌跡が表す領域 4 2023/07/30 12:37
- 物理学 xとyに分解したときの運動方程式がこうなる理由が分かりません。 楕円振動は円運動の一種ですよね。 楕 2 2023/05/08 01:31
- 数学 楕円x^2/a^2+y^2/b^2=1(0≦b≦a)上に点(p,q)を取る。 円C1:x^2+y^2 2 2022/07/18 14:49
- スピーカー・コンポ・ステレオ ワード。オブジェクトの上に半円を描くには。 2 2022/10/06 13:02
- DIY・エクステリア VVF2.0 2Cを通す為の楕円の穴を天井(2cm程度の板)に開けるには? 4 2022/10/06 18:38
- 所得・給料・お小遣い 「自動売買EA] 「日経225」 月に3万から6万くらいまで稼げるでしょうか 0 2023/02/12 04:59
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて。 1つ...
-
gccを行ってもexeファイルが生...
-
c言語
-
visual studio 2022でのC#プロ...
-
C# DatagridviewにExcelシート...
-
mallocについて
-
C言語って古いですか?
-
C言語関数違いについて。
-
逆コンパイルと逆アセンブルの...
-
プログラムの実行時に'<'でリダ...
-
パソコン
-
CPUが16bitでも32bitOSでコンパ...
-
Python、プログラミングについ...
-
だれがとけるの?
-
バッチファイルで以下のような...
-
Notepad++の関数リスト表示の変...
-
VisualStudio2022でC言語プログ...
-
License='MIT' ってなんでmitな...
-
C言語 ストリームについて。
-
c言語でイベントフラグを使った...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語
-
gccを行ってもexeファイルが生...
-
大量のデータを読み込んで表示...
-
visual studio 2022でのC#プロ...
-
C++でデスクトップGUIアプリ開...
-
【C言語】全角文字の配列を、全...
-
Windows Formアプリからコンソ...
-
VisualStudio2022でC言語プログ...
-
C#でログファイルにファイルパ...
-
C#でTreeViewのCheckBoxのサイ...
-
c#のTLS1.2での通信について
-
VisualStudioでC++クラスを追加...
-
C言語について。
-
int16_t の _t は何?
-
プログラマー達は何故、プログ...
-
逆コンパイルと逆アセンブルの...
-
C言語の関数のextern宣言
-
c言語でイベントフラグを使った...
-
C言語 関数、変数の宣言について
-
[C言語]fputsとfprintfの違い
おすすめ情報