- ベストアンサー
音のした時間差から砂粒が落ちた場所を調べる
均一な金属板に振動センサーを取り付けて、 金属板に落ちた砂粒の場所を調べる、という方法を考えています。 とりあえず、センサーが3カ所あれば二次元の座標が特定できるか? と思って考えているのですが・・・ 三つのセンサーの座標をそれぞれ(x1,y1)、(x2,y2)、(x3,y3)として、 金属板を振動が伝わる速度をv、 砂粒が落ちた座標を(X,Y)とすると・・・ 砂粒が落ちてから各センサーに振動が届く時間t1,t2,t3は、 sqrt( (x1-X)^2 + (y1-Y)^2 ) / v = t1 sqrt( (x2-X)^2 + (y2-Y)^2 ) / v = t2 sqrt( (x3-X)^2 + (y3-Y)^2 ) / v = t3 と、ここまでは簡単に判ったのですが、 問題は、いつ落ちたかが判らないのです。 そこでとりあえず、センサー1で検出した時間を基準にして・・・と思って、 sqrt( (x1-X)^2 + (y1-Y)^2 ) / v - t1 = 0 sqrt( (x2-X)^2 + (y2-Y)^2 ) / v - t1 = d2 sqrt( (x3-X)^2 + (y3-Y)^2 ) / v - t1 = d3 (d2,d3はセンサー1に対して、それぞれセンサー2、3で検出した時間差) これを連立方程式にして、maximaに掛けてみたのですが、 どういうわけか [ ] なんて、空っぽの答えしか出てきません。 そもそも考え方が間違ってるんでしょうか。。?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- Mapleで連立方程式の解が正常に出力されません
こんにちは。 Windows2000でMaple7の環境です。 A(-1,-2),B(3,4),C(5,6)の△ABCの内心の座標を求めています。 各辺の直線の方程式を求めて点と直線間の距離の公式を使って内心の座標を求めようと試みたのですが何故か最後の連立方程式の解が4組も出力されてしまいます。これは何が原因なのでしょうか? x1=-1;y1=-2;x2=3;y2=4;x3=5;y3=6; subs({x1=1,y1=1,x2=3,y2=2,x3=2,y3=3},{y-y1=(y1-y2)/(x1-x2)*(x-x1)}); {y - 1 = 1/2 x - 1/2} subs({x1=1,y1=1,x2=3,y2=2,x3=2,y3=3},{y-y1=(y1-y3)/(x1-x3)*(x-x1)}); {y - 1 = 2 x - 2} subs({x1=1,y1=1,x2=3,y2=2,x3=2,y3=3},{y-y3=(y3-y2)/(x3-x2)*(x-x3)}); {y - 3 = -x + 2} d1:=abs((1/2*x-y-1/2))/((1/2)^2+(-1)^2)^(1/2); d1 := 1/5 | 1/2 x - y - 1/2 | sqrt(5) sqrt(4) d2:=abs((2*x-y-1))/((2)^2+(-1)^2)^(1/2); d2 := 1/5 | 2 x - y - 1 | sqrt(5) d3:=abs((x+y-1))/((1)^2+(1)^2)^(1/2); d3 := 1/2 | x + y - 1 | sqrt(2) solve({d1=d2,d2=d3,d3=d1},{x,y}); {y = 1/18*sqrt(5)*sqrt(2)+2/9, x = 8/9+1/18*sqrt(5)*sqrt(2)}, {y = -1/6*sqrt(5)*sqrt(2)-1/3, x = 1/6*sqrt(5)*sqrt(2)+1/3}, {y = 2/9-1/18*sqrt(5)*sqrt(2), x = 8/9-1/18*sqrt(5)*sqrt(2)}, {x = 1/3-1/6*sqrt(5)*sqrt(2), y = -1/3+1/6*sqrt(5)*sqrt(2)}
- ベストアンサー
- 数学・算数
- 到達時間差法の連立方程式の解法について
到達時間差法による音源の特定について http://www.enjoy.ne.jp/~k-ichikawa/sound_location.html ------------- (以下上記URLからの引用です。) sqrt((x2-x0)^2+(y2-y0)^2) - sqrt((x1-x0)^2+(y1-y0)^2) = c(t2-t1) …(式1) ここで、sqrt : 平方根(ルート) ^2 : 2乗 を意味します。 同様に、マイク2,3に音が到達する時間差(t3-t2)から次の式が成り立ちます。 sqrt((x3-x0)^2+(y3-y0)^2) - sqrt((x2-x0)^2+(y2-y0)^2) = c(t3-t2) …(式2) 式1,2の連立方程式を解くことにより、音の発生場所(音源位置)(x0,y0)を求めることができます。 ちなみに、式1はマイク1の位置(x1,y1)およびマイク2の位置(x2,y2)を焦点とする双曲線1であり、式2はマイク2の位置(x2,y2)およびマイク3の位置(x3,y3)を焦点とする双曲線2です。 (ここまで引用です。) ----------- この場合、分かっている値は、マイク1,2,3の位置、マイク1,2の到達時間差、マイク2,3の到達時間差ですが、この場合、この連立方程式をどのように解けば、音源位置を特定することができるのでしょうか? (式1)、(式2)の連立方程式の具体的な解き方を教えてもらえると大変助かります。 よろしくお願い致します。
- 締切済み
- 数学・算数
- 二点の座標から距離や角度を求めたいのですが、Matlab
こんにちは、Matlabの初心者ですがよろしくお願いします。 ある座標、たとえば、A(x1, y1) B(x2, y2)があったとして、 この二点間の距離は、 sqrt((x2-x1)^2 + (y2-y1)^2) だと思いますが、もっと簡潔に求めることができる関数とかが導入されていたりしないかと思いました。AやBを定義しておいて、AとBだけを使うことができないかと思いました。 また、この二点を通る直線とX軸とがなす角度は、 atan(sqrt((y2-y1)^2)/sqrt((y2-y1)^2)) で求められるかと思いますが、これも同様にもっと簡潔な方法がないかと思いました。 いかがでしょうか。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- x,y座標から角度の差、大きさの差の求め方について
角度=315度 大きさ=43.8 角度=313.794度 大きさ=43.4 の角度の差、大きさの差をX,Y座標で求めた場合 X1=43.8×cos315=30.971 Y1=43.8×sin315=-30.971 X2=43.4×cos313.794=30.036 Y2=43.4×sin313.794=-31.32754 x,y座標から角度の差、大きさの差の求め方について ご教示いただけますでしょうか?
- 締切済み
- その他(ソフトウェア)
- 2点の座標と弧の関係
早速ですが、皆様のお知恵を貸してください。 今悩んでいるのは、昇華型プリンターから排出されたペーパーのカットされた瞬間 における、ペーパー先端の位置座標を計算で出そうとしております。 分かっているのは、紙の長さ(弧長)とその自由高さ(カールしてますので)。 プリンターのカッターの位置座標とペーパーを支えているプリンターの出口座標だけです。 CADで描けばすぐ出せるのですが、何百回も行うので、エクセルで集計したいと 考えています。当然計算と実際の値が違うことも承知しております。 計算してもどうしてもシュミレーション値と算出値が合わないので何卒、解る方がおりましたら 力を貸してください。 また、ネットで円と円の交点を求める計算式を見つけたのですがこれもまた良く解りません?円1(X1,Y1)半径R1、円2(X2,Y2)半径R2の時、 A=Y1-Y2 B=X2^2+R2^2-X1^2+A^2-R2^2 C=-4*((X1-X2)^2+A^2) D=8*A^2*X1-4*B*(X1-X2) E=4*A^2*X2^2-4*A^2*X1^2-B^2 とすると(X、Y)座標は F=(ーD+SQRT(D^2-4*C*E))/(2*C)と(ーDーSQRT(D^2-4*C*E))/(2*C)・・X座標 G=Y1+SQRT(R1^2-(F-X1)^2)・・Y座標と言うのですが、 何故A式を行うのか?。B、C、D,E式はどんな方程式から出てくるのか? Fは二次方程式の解の公式で、C~Eを当てはめている事は分かります。 以上、長くなりましたが、解る方がいればこれについてもお願いいたします。
- 締切済み
- 開発
- 二次元の完全弾性衝突
二次元での完全弾性衝突について 今、二次元空間内に半径rの剛体円盤1、2があります。 時刻t=0でのそれぞれの位置が(X1,Y1)、(X2,Y2)、速度が(Vx1,Vy1)、(Vx2,Vy2) で与えられています。 この二つが衝突する条件を求めよという問題で衝突直前t=t0の値として (X1',Y1')、(X2',Y2')、(Vx1,Vy1)、(Vx2,Vy2)という値も与えられているのですが どうしたらいいのでしょうか。 また衝突するとき、衝突後の速度V1'、V2'を衝突時の座標(X1,Y1)、(X2,Y2)、 速度V1、V2を使ってあらわすにはどうすればいいのでしょうか。 よろしくお願いします。
- ベストアンサー
- 物理学
- 【数学B】直線のベクトル方程式のtの消去について
教科書には 点Oを座標の原点と考えて、定点Aの座標を( x1, y1),直線g上の任意の点Pの座標を( x, y )とし、→d=( l, m )とすると →a = ( x1, y1), →p = ( x, y ) であるから、直線gのベクトル方程式は、次の形になる ( x, y ) = ( x1, y1) + t( l, m ) = ( x1 + lt , y1 + mt ) すなわち {x = x1 + lt {y = y1 + mt ここで、媒介変数であるtを消去すると、 点( x1, y1)を通り、→d=( l, m )が方向ベクトルである直線の方程式は m( x - x1) - l( y - y1) = 0 このように記載されているのですが、 媒介変数tをどのような手順で消去したら” m( x - x1) - l( y - y1) = 0 ”に辿り着くのかが分かりません。 どなたか、tの消去から” m( x - x1) - l( y - y1) = 0 ”までの計算の手順を教えて頂けないでしょうか?
- 締切済み
- 数学・算数
- 2点間の距離で困っています
ご教授お願い致します 点a(x1,y1,z1)と点b(x2,y2,z2)があります この2点を結ぶ直線の長さはab=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2)) で求まります ここからが質問です、例えばabの長さが100.5と出たとき点aは固定してabのベクトル上で100.0の点cのx,y,zの座標を求めるにはどの様な公式を使えばよろしいでしょうか?
- ベストアンサー
- 数学・算数
- C言語の課題
何度も申し訳ありません http://okwave.jp/qa/q7877142.html より、回答を受けてプログラムを作成したのですが、 衝突時の時間と座標をどのように作成すれば良いか分からなく、 一秒後の点Pの位置を算出したのですが、合っているかどうかが分かりません。 非常に難しくで困っています。お助け下さい。 ソースコード #include <stdio.h> #include<math.h> int main(void) { float p,v,vx,vy,x,y,x1,y1,katamuki,gyaku,seiki_x,seiki_y,n,touei_x,touei_y,idoux,idouy,px,py; /* p=(x,y); v=(vx,vy); */ x=1.0; y=1.0; vx=1.0; //x方向の速さ vy=-2.0; //y方向の速さ y1=-x; //逆数 x1=-y; //逆数 printf("逆数は(x1,y1)=(%f,%f)\n",x1,y1); seiki_x=x1/(sqrt(x1*x1+y1*y1)); seiki_y=y1/(sqrt(x1*x1+y1*y1)); printf("正規化、(x方向,y方向)=(%f,%f)\n",seiki_x,seiki_y); n=-(vx*seiki_x)+(vy*seiki_y); //nは内積 touei_x=n*seiki_x; //touei_xは投影x軸 touei_y=n*seiki_y; //touei_yは投影y軸 printf("投影ベクトル(x,y)=(%f,%f)\n",touei_x,touei_y); idoux=vx+2*touei_x; //衝突後、点Pのxの移動方向 idouy=vy+2*touei_y; //衝突後、点Pのyの移動方向 px=-idoux; //点Pのx座標 py=-idouy; //点Pのy座標 printf("1秒後の位置は点P(x,y)=(%f,%f)",px,py); return 0; } /* 逆数は(x1,y1)=(-1.000000,-1.000000) 正規化、(x方向,y方向)=(-0.707107,-0.707107) 投影ベクトル(x,y)=(-1.500000,-1.500000) 1秒後の位置は点P(x,y)=(2.000000,5.000000) */
- 締切済み
- その他(学問・教育)
- 3d 法線ベクトル計算
3dのポリゴンの法線ベクトルを算出するプログラムなんですが 以下のプログラムに間違っている部分はあるでしょうか 何度か試してみたのですが何度か0で除算したりしてしまいます 渡す数字が悪いのか、プログラム自体が間違っているのかわかりません 少し助けてください //法線ベクトル計算開始 x1=1つめの頂点のx座標 y1=1つめの頂点のy座標 z1=1つめの頂点のz座標 x2=2つめの頂点のx座標 y2=2つめの頂点のy座標 z2=2つめの頂点のz座標 x3=3つめの頂点のx座標 y3=3つめの頂点のy座標 z3=3つめの頂点のz座標 x4=x2-x1 y4=y2-y1 z4=z2-z1 x5=x3-x1 y5=y3-y1 z5=z3-z1 x6=y4*z5-y5*z4 y6=x4*z5-x5*z4 z6=x4*y5-x5*y4 //正規化 er=sqrt(x6*x6+y6*y6+z6*z6) x6=er*x6 y6=er*y6 z6=er*z6 //終わり /法線ベクトル計算
- ベストアンサー
- その他(プログラミング・開発)
お礼
補足が一つしか付けられないので、お礼にて・・・ 試しに両辺を二乗してmaximaに掛けてみたら、こんどは 解なしではなくて、複雑すぎて回答不能になりました。 意外と使えんmaximaです。。(^^; 確かに、地震計と同じですね。 だとするとどこかに、参考になりそうな資料とかないものでしょうか。。
補足
なるほど確かに、t0が抜けていました! で、早速、未知数X,Y,t0でmaximaに掛けてみましたが・・・ やっぱりダメでした。orz 複雑すぎて回答不可能とか、エラーでもなく、 即答で解なし、です。 やっぱり何かが違うのでしょうか・・・