【先着1,000名様!】1,000円分をプレゼント!

3つ以上の座標点(n個)から最小二乗法を用いて,平面の中心座標,XY・XZ・YZ方向の傾きなどを計算したいのですが,どのように計算したらよろしいでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (6件)

質問者さんが誤差をどの方向に考えているかで変わってくると思います。



全ての点の平面からの距離の二乗和の最小を考えるなら皆さんが回答されている通りだと思います。
ただ、単純な最小2乗法は全ての点から直線までの距離が最小になるよう定めているわけ
ではありません。y方向に誤差を考えていて、その2乗和が最小になるy=a+bxのa,bを
求めています。回帰の説明などを見れば明らかですね。点から直線に伸ばす矢印(誤差の量)は
y軸に平行に書かれています。

http://szksrv.isc.chubu.ac.jp/lms/lms1.html

直線までの距離なら直線に対して垂直に書かなければなりません。
その場合はこの質問同様、もう少し複雑な式になります。

これと同じに考えるなら(つまりz軸方向への誤差の最小を考える)単純な重回帰に
なります。n個のデータ(xi,yi,zi)を使ってz=ax+by+cに回帰するには

aΣxi^2+bΣxiyi+cΣxi=Σxizi
aΣxiyi+bΣyi^2+cΣyi=Σyizi
aΣxi+bΣyi+cn=Σzi

の連立方程式を解いてください。なお、ここで例えばΣxi^2は

Σxi^2=x1^2+x2^2+x3^2+・・・・・+xn^2

でデータが得られているなら定数です。
    • good
    • 0
この回答へのお礼

age_momoさん,ありがとうございます.

n個のデータ(xi,yi,zi)を使ってz=ax+by+cに回帰させるとき,
> aΣxi^2+bΣxiyi+cΣxi=Σxizi
> aΣxiyi+bΣyi^2+cΣyi=Σyizi
> aΣxi+bΣyi+cn=Σzi
この3つの式を行列式に置き換えて計算したいのですが,
計算式は,
| Σxi^2 Σxiyi Σxi || a | | Σxizi  |
| Σxiyi Σyi^2 Σyi || b |=| Σyizi |
| Σxi  Σyi  n    || c | | Σzi   |
で大丈夫でしょうか?

お礼日時:2007/03/12 20:32

>この3つの式を行列式に置き換えて計算したいのですが,


>計算式は,
>| Σxi^2 Σxiyi Σxi || a | | Σxizi  |
>| Σxiyi Σyi^2 Σyi || b |=| Σyizi |
>| Σxi  Σyi  n    || c | | Σzi   |
>で大丈夫でしょうか?

行列式というか行列そのもので
A=
| Σxi^2 Σxiyi Σxi |
| Σxiyi Σyi^2 Σyi |
| Σxi  Σyi  n  |

の逆行列A^(-1)を計算して
A^(-1)| Σxizi  |
| Σyizi |
| Σzi  |

を計算すればいいです。

この回答への補足

>A=
>| Σxi^2 Σxiyi Σxi |
>| Σxiyi Σyi^2 Σyi |
>| Σxi  Σyi  n  |

>の逆行列A^(-1)を計算して
>A^(-1)| Σxizi  |
>| Σyizi |
>| Σzi  |

これらの式はクラーメルの公式だと思うのですが,
求まったa,b,cの値はそのまま中心座標になりますか?

試しに自分で考えた測定点で,エクセルを使って計算しているのですが答えが求まりません.
10 10 10
20 10 10
10 10 20
20 10 20

お時間がありましたら,教えてください.

補足日時:2007/03/14 22:47
    • good
    • 0
この回答へのお礼

返事が遅くなってしまい申し訳ありません.

質問の趣旨がおかしくなってしまい,本来聞きたかったことが聞けませんでした.
聞きたかったことは,

aΣxi^2+bΣxiyi+cΣxi=Σxizi
aΣxiyi+bΣyi^2+cΣyi=Σyizi
aΣxi+bΣyi+cn=Σzi

↑の式から平面の中心座標(a,b,c)を求めるには,↑の式を行列に置き換えて,クラーメルの公式を使って求める方法でも(a,b,c)がでるかどうかとういことです.

本当に時間がかかってしまい,申し訳ありません.

お礼日時:2007/03/21 20:12

ANo.3です。


実は私も仕事で同じような計算をしたことがあります。具体的に言うと、数cm角の平面板が弾性体で支えられている試作品がいっぱいあって、その平面の傾斜分布を定量化するために、平面上の4点以上の点の高さをレーザ変位計で測定し、age_momoさんの連立方程式を解いて、最小2乗平面をそれぞれの試作品について求めました。

最終的には、法線ベクトルを方位角と天頂角の2変数に変換して、極座標グラフで分布(バラツキ)を表示させ、傾向の分析を行いましました。測定した平面は、傾斜しているといっても、そのバラツキは小さく、xyz 座標でいえば、法線ベクトルが z 軸から数度以内だったので、「測定点と平面のz座標の差の2乗」が最小となるようにして平面を決めていました(平面の法線ベクトルとz軸との角度が小さい場合は |z座標の差| ≒ 点と平面の距離 と考えていいので)。

しかし、求めたい平面がz軸にほぼ平行である場合を含め、向きが全く分からない場合は、点と平面の距離の2乗を最小とする方法が良いのではと判断して、ANo.3ではその方法を紹介しました。私は回帰分析の専門家ではないので数学的にどれが最良かというのはお答えできませんが、ある程度、平面の向きがわかっている場合には、計算が比較的簡単なので、age_momoさんの方法でも良いかと思います。
    • good
    • 0

考え方としてはANo.2の参考URLにあるとおりですが大変面倒な計算になります。


うまく収束するかどうか分かりませんが、Excelのソルバーを使って、残差2乗和が最小となるような、5個の未知パラメータを求めるのはどうでしょうか。

結果だけ書きますが、n個のデータ点と平面との距離の2乗の和 S が最小となるような次式の a, b, x0, y0, z0 を求めれば、平面が決定されます。

S = Σ [ i = 1, 2, ... n ] [ a*( xi - x0 ) + b*( yi - y0 ) + √{ 1 - ( a^2 + b^2 ) } *( zi - z0 ) ]^2

( xi, yi, zi ) はn個のデータ点(i = 1,2,.. n )です。a、b は平面の法線ベクトル(平面に垂直なベクトル)のx成分とy成分です。( x0, y0 , z0 ) この平面が通る点の座標です。法線ベクトルのz成分がないのは、a^2 + b^2 + c^2 = 1 と規格化したので、c = √{ 1 - ( a^2 + b^2 ) } と自動的に決まるからです。なぜこのような式になるかについては【詳細】に書きました。

未知パラメータ a, b, x0, y0, z0 のうち、x0, y0, z0 は、ANo.1さんのコメントにある「中心座標の計算はn個の座標を足してnで割れば」というのは、常に成り立つかどうか分かりません。ただ、初期値として、x0 = Σ(xi)、y0 = Σ(yi)、z0 = Σ(zi) とするのは良いと思います(Excelのソルバーは初期値の選択を誤ると収束しないので、もっともらしい値を初期値とすれば収束しやすくなります)。

【詳細】
法線ベクトル(平面に垂直なベクトル)が (a,b,c) で、点(x0,y0,z0) を通る平面の方程式は次式で表されます。
a*( x - x0 )+b*( y - y0 )+c*( z - z0 ) = 0 --- (1)
一方、n 個の点 ( xi, yi, zi ) [ i = 1, 2, ... n ] と平面との距離を Li [ i = 1, 2, ... n ] とすれば
Li^2 = {a*( xi - x0 ) + b*( yi - y0 ) + c*( zi - z0 ) }^2 / ( a^2 + b^2 + c^2 ) ---- (2)
となります。したがって、n個の点と平面(1)との距離の2乗の総和を S とすれば、
S = Σ [ i = 1, 2, ... n ] ( Li^2 ) = Σ [ i = 1, 2, ... n ] [ {a*( xi - x0 ) + b*( yi - y0 ) + c*( zi - z0 ) }^2 / ( a^2 + b^2 + c^2 ) ] --- (3)
となります。これが最小 となるような、a, b, c, x0, y0, z0 を求めるというのが最終目的です。

S が最小 であるとき、∂S/∂a = ∂S/∂b = ∂S/∂c = ∂S/∂x0 = ∂S/∂y0 = ∂S/∂z0 = 0 が成り立ちます。Sを偏微分すると、次の式が得られます(和の範囲はいつも [ i = 1, 2, ... n ] なので省略します)。

a*( b^2+c^2 )*Σ( xi - x0 )^2 + b*Σ( xi - x0 )*( yi - y0 ) + c*Σ( zi - z0 )*( xi - x0 ) = 0 --- (4)
b*( c^2+a^2 )*Σ( yi - y0 )^2 + a*Σ( xi - x0 )*( yi - y0 ) + c*Σ( yi - y0 )*( zi - z0 ) = 0 --- (5)
c*( a^2+b^2 )*Σ( zi - z0 )^2 + b*Σ( yi - y0 )*( zi - z0 ) + a*Σ( zi - z0 )*( xi - x0 ) = 0 --- (6)
a*Σ( xi - x0 ) + b*Σ( xi - x0 ) + c*Σ( zi - z0 ) = 0 --- (7)

()などを展開などして、この計算を続ければANo.2の参考URLにある式(4)に行く着くでしょうが、大変複雑な結果となります。
手っ取り早くには、式(3)の S が最小になるような、a, b, c, x0, y0, z0 を求めればいいわけです。

未知パラメータは6個あるように思えますが、実は5個です。a,b,c は比が分かればいいので、 a^2 + b^2 + c^2 = 1 と規格化してしまいます(とすれば |a|≦1、 |b|≦1、 |c|≦1 です)。すると、c^2 = 1 - ( a^2 + b^2 ) ≧ 0 ですから、a,bが決まれば c が決まりますので、c は求めなくていいのです。c の符号は±の2通りありますが、法線ベクトルというのは 、平面の表と裏を区別しないなら、(a,b,c) も (-a,-b,-c) も同じことですから、cの符号は+か-かどちらに決めてしまえばいいのです。したがって c > 0 とすることにすれば、c = √{ 1 - ( a^2 + b^2 ) } です。すると式(3)は

S = Σ [ i = 1, 2, ... n ] [ a*( xi - x0 ) + b*( yi - y0 ) + √{ 1 - ( a^2 + b^2 ) } *( zi - z0 ) ]^2 ---- (2')

となります。

なお、ANo1さんの「中心座標の計算はn個の座標を足してnで割れば」というのは、式(7)で、Σ( xi - x0 ) =0、 Σ( xi - x0 ) = 0
Σ( zi - z0 ) = 0 としてx0, y0, z0 を求めるものですが、Σ() <> 0でも式(7)が成り立つ場合もあるかと思います。
    • good
    • 1

検索して下記の文章を見つけました。



http://www.aichi-inst.jp/html/reports/repo2001/R …

この部分の2.1の部分で、最小二乗平面(Z=Ax + By + C)を求める
方法が記載されています。(4)式を解いてA,B,Cを求めるようです。
    • good
    • 0

間違っているかもしれないので、参考意見として



中心座標の計算はn個の座標を足してnで割れば、中心が出ますね。

XY, XZ, YZ方向の傾きはXYの場合、X座標とY座標だけ用いて
最小二乗法で傾きが出ますね。他のXZ, YZでも同様に。

ただ、この傾きが実際どういうことに使えるのか不明です。

多くの点があり、その平均的な所を通る平面を求めたいのでは
ないでしょうか?
その場合はXY方向でなく、「XY軸上での傾き」などになるのでしょうね。

平均的な所を通る平面ですが、互いに垂直なベクトルが求まれば、
平面が定義できそうですが、それをどう求めるのか、ちょっと
分かっていません。

中心を求めた後に、中心の点から各座標へのベクトルを足し合わせる
といった感じでできそうな気がしますが。
    • good
    • 0
この回答へのお礼

popiahさん,ありがとうございます.
popiahさんが仰るとおり,多くの点があって,それらの点の平均的な所を通る平面を求めたいのです.

 最小二乗法で,平均的な所を通る平面を求める計算式などはやはりないのでしょうか?

お礼日時:2007/03/05 19:24

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q3次元での点群に対する最小二乗法での平面の算出について(点と平面の距離

3次元での点群に対する最小二乗法での平面の算出について(点と平面の距離。残差ではない。)

--

点と平面のZ軸方向の距離(残差)の二乗和を最小とする場合には、
平面をax+by+c=zとして、Σ(ax+by+c-z)^2をa,b,cのそれぞれで偏微分して
それを=0とした連立方程式を解くことで解を得ることが出来ました。
また、式の形も、ある点のxとyを平面の式へ代入した際の値と、点のz値の差分を見ており、
簡単に納得のできるものとなりました。

これに対して、点と平面の距離(空間的な最小距離)の二乗和を最小とする場合には、
どのような流れで計算すれば良いのでしょうか?
点と平面の距離は|Ax+By+Cz+D| (A,B,Cは単位ベクトル)として求まりますが、
これをどう使うのかが分かりません。
Σ(Ax+By+Cz+D)^2をA,B,C,Dのそれぞれで偏微分して=0としても、
定数項が無いため、連立方程式の解がすべてゼロとなってしまいます。
強引に、Σ(A'x+B'y+C'z+1)^2として変形させて解いてみましたが、
得られたA',B',C'からA,B,C,Dに戻すと、Dがきちんと出ませんでした。(他についても怪しい。)

こういった状況に迷い込んでしまい、どう考えるのが良いのか分からなくなってしまいました。
指南いただけませんでしょうか?

3次元での点群に対する最小二乗法での平面の算出について(点と平面の距離。残差ではない。)

--

点と平面のZ軸方向の距離(残差)の二乗和を最小とする場合には、
平面をax+by+c=zとして、Σ(ax+by+c-z)^2をa,b,cのそれぞれで偏微分して
それを=0とした連立方程式を解くことで解を得ることが出来ました。
また、式の形も、ある点のxとyを平面の式へ代入した際の値と、点のz値の差分を見ており、
簡単に納得のできるものとなりました。

これに対して、点と平面の距離(空間的な最小距離)の二乗和を最小とする場合に...続きを読む

Aベストアンサー

平面の式は、単に Ax+By+Cz+D=0 としたのでは、一意に決まりません。
同じ平面が、 2Ax+2By+2Cz+2D=0 とでも 3Ax+3By+3Cz+3D=0 とでも
書けるからです。
そのために、「(A,B,C) は単位ベクトル」としたのではありませんか?
だから、Σ(Ax+By+Cz+D)^2 を最小化するときに、単なる最小値でなく、
A^2+B^2+C^2=1 という制約下での最小値を探せばよいのです。
ラグランジュの未定乗数法が使えます。

あるいは、制約なしで、Σ(Ax+By+Cz+D)^2/√(A^2+B^2+C^2) を最小化
してもよいのだけれど。

Q平面度

平面度0.3とはどのような状態をいうのでしょうか?
アルミを扱っています。
客先でこのような質問があったのですがわかりません。

Aベストアンサー

対称表面の上下を平行平面で挟み込んだ場合の平面間の空間の距離
をmm単位で表現した数値が平面度です。

ある平面の平面度は、その平面の仕上がり具合ででこぼこがあったとします。一番出っ張った部分と一番へこんだ部分の差をmm単位で表したものが
平面度なので、平面度0.3というのは凹凸の差が0.3mm以下という規格に合格する平面仕上がり度ということですね。

平面度の定義や詳細は下の参考URLをご覧下さい。

http://www.technorise.ne.jp/reference/measurement.php
http://www.natuo.com/kikakousahure-mu4no4no2hiemenndo.htm

測定方法(平面度)
http://www.technorise.ne.jp/reference/heimendo.php

参考URL:http://www.aimew.jp/natuo/pc/page139.html

Q任意の面内にある点の座標から面の傾きを求める方法を教えて下さい。

任意の面内にある点の座標から面の傾きを求める方法を教えて下さい。

XYZ軸で構成される3次元空間があります。
そこに面Aが存在するとします。
この面Aの傾きを求めるためには
面A上にある座標、a(x1,y1,z1),b(x2,y2,z2),c(x3,y3,z3)の3点が分れば
傾きは求まるかと思います。
(実際は任意のxyの位置にある面Aの高さzを求めてa,b,cを決める)

この面を水平に補正しようとする場合の
x軸周りに?度、y軸周りに?度というのを求めたい場合
どのようにすればよいのでしょうか?

また実際は面Aにもたわみがありますので
もっとたくさんの点で面Aの高さを求め、
そこからx,y軸周りの傾きを近似する必要がありますが
その場合もどのようにすればよいのでしょうか?

ご回答、または参考サイトをお教えいただきたいと思います。

Aベストアンサー

#1です。補足します。
#1にて書いた通り私は詳細まで説明出来ません。直線近似については、直線を設定して各点と直線の距離の和が最小になるように傾きと切片を決定します。平面についても同じ原理です。各点と平面の距離が最小になるよう法線ベクトルと通過点を決定します。

Q近似式(z=ax+by+c)を取得したい

エクセルの散布図だとx軸-y軸で散布図を書き、近似式も自動で作成できますが、これを3次(x軸-y軸-z軸)に拡張して、
z=ax+by+c
のような近似式を得たいと考えています。データの特性上、線形(直線)に限定して問題ありません。(x,y,z)のデータは十分揃っています。そのようなツール、もしくは計算式がありましたら教えてください。

よろしくお願いします。

Aベストアンサー

例えば、エクセルで以下のようにデータが入力されているとします。
 (等幅フォントでご覧ください)
     A       B    C      D
----------------------------------------------------
1 |    a      b     c
2 | 0.235982387 -0.057736587 17.62863368 42.53502347
3 |
4 |    x      y     z
5 |   12.87    392.4    2.0    15.92097601
6 |    8.09    254.4    2.1    7.559989098
7 |   12.01     36.0   21.0    6.842069547
8 |   58.94    193.2   20.0    0.1464799
9 |   10.93    255.2    2.0    12.06550891
. |   .....    .....   .....    .....
. |   .....    .....   .....    .....
n |   .....    .....   .....    .....
                (nはデータ数+4)


<入力する値>
A2 = 1.0
B2 = 1.0
C2 = 1.0 (初期値)
A5:Cn 与データ

<入力する数式>
D2 = SUM(D5:Dn)
D5 = (A$2*A5+B$2*B5+C$2-C5)^2
 ( 以下、n行までCopy&Paste )


ここで、ソルバーを起動して、
 目的セル;    $D$2
 目標値;    最小値
 変化させるセル; $A$2:$C$2
として、実行します。
A2:C2が求める係数です。
例示頂いたデータでは、
 Z = 0.235982387X - 0.057736587Y + 17.62863368
と、求まります。
これは、平面の方程式ですがこれでよかったでしょうか?ご確認ください。


簡単に、解説します。
D5:Dnに入力された式が与式 Z=aX+bY+c のそれぞれ具体値結果の2乗です。
2乗してあるところが1つのミソで、その和を求めてそれが最小値になっているとき、
目的の値が求まります。まずは、適当に簡単な問題でご検証ください。
(2乗する以外にも複数の自由度があります)

ソルバーのインストール法に関しては、適当なサイトをご参照ください。

例えば、エクセルで以下のようにデータが入力されているとします。
 (等幅フォントでご覧ください)
     A       B    C      D
----------------------------------------------------
1 |    a      b     c
2 | 0.235982387 -0.057736587 17.62863368 42.53502347
3 |
4 |    x      y     z
5 |   12.87    392.4    2.0    15.92097601
6 |    8.09    254.4    2.1    7.559989098
7 |   12.01   ...続きを読む

QExcelで平坦度

Excelで折れ線グラフの平坦度を知りたいのですが可能でしょうか。
もし可能なら方法を教えてください。
よろしくお願いします。

Aベストアンサー

#3です。
訂正1つ。
「R-2乗値が±1に近いほうが」
「2乗値が1に近いほうが」です。

「xが増加してもyは変化しない」
ということだけであれば、回帰直線の傾きだけということになるので、
=LINEST((既知のy),(既知のx))
で、傾きを求めます。0に近い方が水平に近い。
これだけだとばらつきの大小の判断ができないので、
(最大-最小)/平均
や、
標準偏差で、ばらつきを出して判断します。
これだと、2つの値で判断しなければならないので、1つで判断できるように両者の積を使うのがいいと思います。

数式では以下のようになります。
=LINEST(y,x)*STDEV(y)
です。
0に近いほうが水平でばらつきが少ないということになります。

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

Q平面方程式の傾きについて

ax+by+c=zの平面方程式の
傾きというものは存在するものなのですか?

もし存在するのであればどなたか
教えていただけないですか?

Aベストアンサー

こんばんは。

y = ax + b
これの傾きはご存知かと思います。
しかし、「傾き」と言うからには、「何に対しての傾き」かという定義が必要ですよね。
上記の式の傾きは、X軸に対する傾きです。
X軸に対する傾きを角度θを用いて表せば、
Δy = Δx・tanθ
です。(tanθ = a)
そして、xに対するyの傾きも考えることもできます。
それは、当然ながら、1/a です。


さて、
同様に、平面の方程式を考えるときにも、何に対しての傾きを求めるかを決めなければいけません。
それは3通りあります。
・X-Y平面 (平面z=0 に同じ)
・Y-Z平面 (平面x=0 に同じ)
・Z-X平面 (平面y=0 に同じ)

平面と平面との傾きを求めるということは、それらの法線同士の傾きを求めることと同じです。


というわけで、平面の法線の方程式の求め方を学んでください。

Q仮想平面の計算

3D(X、Y、Z)で3点の点が存在する時に、
3点の座標を含む仮想平面とはどうやって求めてよいかわかりません。
さらに別の点(4点目)と仮想平面との距離も求めたいのですが、全く分からずに困っています。
仮想平面の算出だけでもよいので教えて下さい。
お願いします。

Aベストアンサー

平面の方程式はNo.1の方の解答通りです.
この平面と,この平面上にない点(x0,y0,z0)との距離sは
s=|ax0+by0+czo+d|/√(a^2+b^2+c^2) で出せます.

QNをkgに換算するには?

ある試験片に40kgの重りをつけた時の荷重は何Nをかけてあげると、重り40kgをつけたときの荷重と同等になるのでしょうか?一応断面積は40mm^2です。
1N=9.8kgfなので、「40kg=N×0.98」でいいのでしょうか?
ただ、式の意味がイマイチ理解できないので解説付きでご回答頂けると幸いです。
どなたか、わかる方よろしくお願いします。

Aベストアンサー

こんにちは。

kgfはSI単位ではないですが、質量の数値をそのまま重さとして考えることができるのがメリットですね。


>>>
ある試験片に40kgの重りをつけた時の荷重は何Nをかけてあげると、重り40kgをつけたときの荷重と同等になるのでしょうか?

なんか、日本語が変ですね。
「ある試験片に40kgの重りをつけた時の引っ張りの力は何Nの力で引っ張るのと同じですか?」
ということですか?

・・・であるとして、回答します。

40kgのおもりなので、「おもりにかかる重力」は40kgfです。

重力は万有引力の一種ですから、おもりにも試験片にも、地球からの重力はかかります。
しかし、試験片の片方が固定されているため、見かけ、無重力で、試験片だけに40kgfの力だけがかかっているのと同じ状況になります。

試験片にかかる引っ張り力は、

40kgf = 40kg×重力加速度
 = 40kg×9.8m/s^2
 = だいたい400N

あるいは、
102グラム(0.102kg)の物体にかかる重力が1Nなので、
40kg ÷ 0.102kg/N = だいたい400N


>>>1N=9.8kgfなので、「40kg=N×0.98」でいいのでしょうか?

いえ。
1kgf = 9.8N
ですね。


>>>一応断面積は40mm^2です。

力だけでなく、引っ張り応力を求めたいのでしょうか。
そうであれば、400Nを断面積で割るだけです。
400N/40mm^2 = 10N/mm^2 = 10^7 N/m^2
1N/m^2 の応力、圧力を1Pa(パスカル)と言いますから、
10^7 Pa (1千万パスカル) ですね。

こんにちは。

kgfはSI単位ではないですが、質量の数値をそのまま重さとして考えることができるのがメリットですね。


>>>
ある試験片に40kgの重りをつけた時の荷重は何Nをかけてあげると、重り40kgをつけたときの荷重と同等になるのでしょうか?

なんか、日本語が変ですね。
「ある試験片に40kgの重りをつけた時の引っ張りの力は何Nの力で引っ張るのと同じですか?」
ということですか?

・・・であるとして、回答します。

40kgのおもりなので、「おもりにかかる重力」は40kg...続きを読む

Q3次元の近似直線

こんにちは。2次元で実験データなどの点列から近似直線を求めるのは、最小二乗法の基本問題ですが、3次元の点群から直線の方程式(x-x0)/a=(y-y0)/b=(z-z0)/cを求めるにはどんなアルゴリズムを使いますか?スマートな方法があれば教えていただけたら幸いです。よろしくお願いします。

Aベストアンサー

3次元空間の曲面ではなく、直線に乗ると仰るのだから、
(1) x, y, zのどれかを与えて、残りの2つを推定する問題。
(2) <x[i],y[i],z[i]>と直線との距離d[i]の二乗和が最小になる直線を求める問題。
と分類すべきでしょう。

(1)の場合は、たとえばzを与えてx,yを求めたいのであれば、
・zからxを求める問題。
・zからyを求める問題。
の二つを別々に解けばおしまいです。
それぞれの解は(x=Az+B, yは任意)という平面と、(y=Cz+D, xは任意)という平面を定めますから、この二つの平面の交線が、求める直線ということですね。

(2)の場合はやっかいです。
[1]ちょっと手抜きしながらも、まともにやってみましょう。
(i) 直線をどう表すか。
ご質問の式を見ると、この直線はx軸、y軸、z軸のどれとも平行でも垂直でもないことが仮定されています。
ですから、zをパラメータとして
x=az+c
y=bz+d
と書いても良いでしょう。a,b,c,dが決められれば良い訳です。
(ii) 点<p,q,r>と直線との最短距離を求める。
直線上の任意の点<az+c,bz+d, z>と点<p,q,r>の距離をdとすると
d^2 = (az+c-p)^2+(bz+d-q)^2+(z-r)^2
= (az)^2+2az(c-p)+(c-p)^2+(bz)^2+2bz(d-q)+(d-q)^2+z^2-2rz+r^2
です。これが最小になるzを求めると、
0=∂(d^2)/∂z = 2(az+c-p)a+2(bz+d-q)b+2(z-r)
ゆえに
z=(ap+bq+r-ac-bd)/(a^2+b^2+1)
であって、このときの最短距離h(p,q,r)は
h(p,q,r)^2 = (ap+bq+r-ac-bd)^2/(a^2+b^2+1)+2(ap+bq+r-ac-bd)(ac-ap+bd-bq-r)/(a^2+b^2+1)+(c-p)^2+(d-q)^2+r^2
わあ、とんでもないですね。
(iii) じゃあ、直線を求めるには?
S=Σ(h(x[i],y[i],z[i]))^2  (i=1,2,...,N)
を最小化するには
∂S/∂a = 0
∂S/∂b = 0
∂S/∂c = 0
∂S/∂d = 0
を解く必要があります。言い換えれば
∂(h(x[i],y[i],z[i]))/∂a
∂(h(x[i],y[i],z[i]))/∂b
∂(h(x[i],y[i],z[i]))/∂c
∂(h(x[i],y[i],z[i]))/∂d
を求めておいて
Σh(x[i],y[i],z[i]) (∂(h(x[i],y[i],z[i]))/∂a)=0
Σh(x[i],y[i],z[i]) (∂(h(x[i],y[i],z[i]))/∂b)=0
Σh(x[i],y[i],z[i]) (∂(h(x[i],y[i],z[i]))/∂c)=0
Σh(x[i],y[i],z[i]) (∂(h(x[i],y[i],z[i]))/∂d)=0
という連立方程式を解くことになります。
これがa,b,c,dについて非線形である(一次式でない)ことは言うまでもありません。一筋縄では行かず、反復計算で徐々に収束させていくしかありません。

[2]手抜き
もうすこし手抜きの方法を考えてみましょう。
この座標系を回転・平行移動した座標系をX-Y-Zとします。そして、求めたい直線がZ軸と一致するようにしたとします。回転と平行移動は行列を使って
X = R x + p
Y     y   q
Z     z   r
と表せます。Rは3×3の行列で Rの転置をR'とすると RR' = R' R = 単位行列
となる行列です。各点<x[i],y[i],z[i]>をこの変換で<X[i],Y[i],Z[i]>に写したとすると、
直線、すなわちZ軸との最短距離はX[i]^2 + Y[i]^2ですから、他のどんな回転・平行移動の仕方に比べても
U=Σ(X[i]^2 + Y[i]^2)  (i=1,2,....,N)
が最小になっている筈で、しかも
S=U
です。
 さて、UはZ[i]の値とは無関係ですからZ[i]を求める必要はない。さらに座標系をZ軸の周りで回転してもUは変化しません。従って、
X = R x + p
Y     y   q
      z
R =P(α)Q(β)
P(α)=cosα  0  -sinα
       0   1    0
Q(β)= 1  0     0
      0 cosβ -sinβ
      0 sinβ  cosβ
とすれば良いのです。展開すれば
X[i] = x[i]cosα-y[i]sinαsinβ-z[i]sinαcosβ+p
Y[i] = y[i]cosβ-z[i]sinβ+q
ですね。
ここでα、β、p、qを決めたい訳です。

 始めに(1)の問題を解けば、α、β、p、qの大体の値を求めることができます。これを使ってU(α,β,p,q)を計算します。
 それから、U(α,β,p,q)が小さくなるようにα、β、p、qをちょっとずつ改良して行けば良いでしょう。これには微小な角度Δα、Δβを使って、
P(Δα)=cosΔα  0  -sinΔα
        0    1    0
      sinΔα  0   cosΔα
Q(Δβ)= 1  0      0
       0 cosΔβ -sinΔβ
       0 sinΔβ  cosΔβ
を作り、P(α)、Q(α)にそれぞれ掛け算すれば良い。
P(α+Δα)=P(Δα)P(α)
Q(β+Δβ)=Q(Δβ)Q(β)
だからです。さらにここで、Δα、Δβは微小だから、
cosΔα≒1、cosΔβ≒1、sinΔα≒Δα、sinΔβ≒Δβ
(Δα)^2≒0、(Δβ)^2≒0、ΔαΔβ≒0
という近似をしても構わないでしょう。
この近似を利用すると計算は一層簡単になり、Uを最小にするようにΔα、Δβ、p、qを求める問題は線形最小二乗法(一次式の最小二乗法)になってしまい、簡単に解けます。
それを解いてから、真面目にP(α)、Q(α)を計算しなおし、また線形最小二乗法を解く。これを収束するまで繰り返せば良いのです。

なお、stomachmanは計算間違いの常習犯ですから、チェックは慎重に。

3次元空間の曲面ではなく、直線に乗ると仰るのだから、
(1) x, y, zのどれかを与えて、残りの2つを推定する問題。
(2) <x[i],y[i],z[i]>と直線との距離d[i]の二乗和が最小になる直線を求める問題。
と分類すべきでしょう。

(1)の場合は、たとえばzを与えてx,yを求めたいのであれば、
・zからxを求める問題。
・zからyを求める問題。
の二つを別々に解けばおしまいです。
それぞれの解は(x=Az+B, yは任意)という平面と、(y=Cz+D, xは任意)という平面を定めますから、この二つの平面の交線が、求め...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング