
オシロのCH1,CH2それぞれの波形データを取り込む。位相差があるためにCH1の値がaのときCH2の値はb、cとなった場合(リサージュ図形は楕円になるとき)ですが、
(bとcの差)*CH1の1周期分=楕円のリサージュ図形の面積
となりますよね?
この場合の
(bとcの差)*CH1の1周期分=楕円のリサージュ図形の面積
の部分をVB4で組みたいのですがどのような感じにすればよいでしょうか?ちなみにX-Yモードにすると波形データが読み取れないため、別々に読み取ったあとで計算する形なのでこのようになっています。
分かりにくいかもしれませんがよろしくお願いします。
No.2ベストアンサー
- 回答日時:
座標原点を内部に含むような多角形を考えます。
原点の点番号を0とし、多角形の頂点に順番に、番号1,2,・・・をふるとします。番号のふり方は、始点はどこでもいいですが、必ず左回りです。原点と多角形の頂点を結んでできる三角形、012,023,・・・の面積の総和が、多角形の面積になる事は明らかと思います。
それぞれの分割三角形の面積は、例えば、012に対して、
A(1)=1/2×( x(0)・y(1)-x(1)・y(0)
+x(1)・y(2)-x(2)・y(1)
+x(2)・y(0)-x(0)・y(2) )
で計算できる事がわかっています。ところが、いま点(x(0),y(0))は原点なので、(x(0),y(0))=(0,0)です。従って、A(1)は、
A(1)=1/2×( x(1)・y(2)-x(2)・y(1) )
と簡単になります。同じ事を、A(1),A(2),・・・に対して行い、足し合わせれば、
A=ΣA(i)
=1/2×Σ(x(i)・y(i+1)-x(i+1)・y(i))
ただしΣはiについての和で、i=1~n.
です。ただしこの計算は、頂点を左周りに順序付ける事を前提にしています。リサージュは、右周りに回転するかもしれません。その時は、面積が負の値で計算されるので、絶対値をつけます。
A=|1/2×Σ(x(i)・y(i+1)-x(i+1)・y(i))|
さらに原点が多角形内部にない場合も、同じ式が使えるとだけ、ここでは述べます。この場合は、分割三角形の頂点順序が、原点に対してどういう向きに並ぶかを、図を描いて考えれば、すぐわかります。
No.1
- 回答日時:
プログラムというより、数学の問題っぽいですが・・・。
以下の事を前提とします。(1)リサージュの1周期分の点列(CH1,CH2)は順番に記録できる。
(2)上記を(x(i),y(i)),i=1~n+1としたとき、(x(1),y(1))=(x(n+1),y(n+1))であるように記録する(リサージュは閉じている)。
面積は、以下の式で計算できます。
A=|1/2×Σ(x(i)・y(i+1)-x(i+1)・y(i))|
ただしΣはiについての和で、i=1~n.
サンプリング点でリサージュを折れ線近似した面積です。
回答ありがとうございます!確かに数学ですね( ^ ^ ;)
自分なりに式の意味を理解しとうとしたのですが分からなくて・・・。
x(i)・y(i+1)-x(i+1)・y(i)は何を意味しているのか、またなぜ1/2をかけるのか?
面倒かもしれないですが、お願いしますm( u u )m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
C言語についてです。 再帰を使...
-
CRC8を教えてください
-
エクセルで特定のセルのみを任...
-
スパイダソリティアの問題
-
排他的論理和 BCC(水平パリテ...
-
引き放し法による除算アルゴリ...
-
NW7のチェックディジットについて
-
円の最小二乗法のプログラム
-
EXCELなどで「返す」という表現
-
万年暦を導き出すプログラミング
-
VBAの再計算が反映されない件に...
-
SNRの計算の仕方
-
matlab計算での進捗状況を知りたい
-
VBとVBAの違い
-
逆ポーランド法の計算について
-
平均時間計算量と最大時間計算...
-
行列計算の速度
-
アドオン利率を実質年率に変換
-
勤怠管理表を作成しています、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
VBAの再計算が反映されない件に...
-
VBAで関数をつくる
-
matlabで計算終了
-
排他的論理和 BCC(水平パリテ...
-
モジュラス103の計算とは何でし...
-
引き放し法による除算アルゴリ...
-
バッチファイルでウインドウを...
-
スレッド処理からダイアログを...
-
数値計算の高速化 (cos, sin, exp)
-
エクセルで特定のセルのみを任...
-
モジュロ
-
関数を使わないで日付の計算を...
-
階乗のマクロ
-
時間(ミリ秒を含む)の引き算
-
なぜオーバーフローになるので...
-
論理演算子.NOT.の使い方
-
PHPとJavaでSHA256の結果を同じ...
おすすめ情報