円板振動子の中心軸上の音圧を求める実験方法と課題

このQ&Aのポイント
  • 円板振動子の中心軸上の音圧を求める実験方法について説明します。また、プログラムを書く上で注意すべき点についてもご紹介します。
  • 式1と式2を用いて、中心軸上の音圧を表すことができます。そのためには、円板振動子までの距離を考慮する必要があります。
  • 式2は積分を使用していますが、プログラムを書く際には細かく短冊状に分けて面積を足すことで表現する必要があります。
回答を見る
  • ベストアンサー

長文で複雑ですが教えて頂けると助かります。

長文で複雑ですが教えて頂けると助かります。 今私は円板振動子の中心軸上の音圧を求める実験をしております。 この写真の図1は 式1:P/2ρcV = |sinπ(√(r/λ)^2 + (a/λ)^2)(√はここまで)-(r/λ))| という式をプロットしています。これは中心軸上の音圧を表せています。 今回、観測点Oから円板振動子までの最短距離をra,最長距離をrbとして P = jkρcVe^(jωt)∫raからrbまで(積分の範囲です)e^(-jkr)dr これを展開して P/jkρcVe^(jωt) = (-1/jk)*e^(-jkrb) + (1/jk)*e^(-jkra) 整理して 式2:P/2ρcV = (1/2)*{e^(jωt)}{e^(-jkrb) + e^(-jkra)} (RING関数というもです) この式2のプロットした結果が式1のプロットした結果と一致することを 確かめる課題が出ています。 両辺を2分の1したのは式1のP/2ρcVに合わせるためにしました。 また、最長距離、最短距離は円板振動子の半径を30mmと設定したので、 三平方の定理を使ってそれぞれ50mm、40mmと設定しました。 先生からはプログラムを書く上で気をつけなければいけないことは 式2は積分をしているので例ですが図2のように(見えにくくてすみません) 細かく短冊状に分けて面積をすべて足すことで表現しているのですが、 式1で面積の部分ってありませんよね? プログラムを組んだのですが全く違うグラフになってしまいました。 考えを整理してプログラムを書いていきたいので、ご教授お願い致します。 (式1をプロットするプログラミングは作れました)

この投稿のマルチメディアは削除されているためご覧いただけません。

質問者が選んだベストアンサー

  • ベストアンサー
  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.1

式2:P/2ρcV = (1/2)*{e^(jωt)}{e^(-jkrb) + e^(-jkra)} はすでに積分されているわけで、この絶対値を取れば 式1になります。 >プログラムを組んだのですが全く違うグラフになってしまいました。 式2としてはどのような式をプログラムにしたのですか。複素数のまま数値積分をしたのでしょうか。 実数部分と虚数部分に分けておいて数値計算は実数を使ってやるほうが見通しがよくて間違いが少ないです。

tropical_123
質問者

お礼

自分でもう1回考え直してみます。ありがとうございました。

tropical_123
質問者

補足

#include <stdio.h> #include <complex.h> #include <math.h> #include <banto.h> #define C 1500.0 //音速 #define F 125000.0 //周波数 int main() { double a, b, c, k, r0, r1, r2, i0, i1, i2; COMPLEX z0, z1, z2, z3, z4, z5, z6; //三平方の定理より値の限界値を定める for (i0= 0.0; i0 <0.03; i0+=0.003) { r0 = (double)i0; for(i1= 0.0; i1 <0.05; i1+=0.005) { r2 = (double)i1; for(i2= 0.0; i2 <0.04; i2+=0.004) { r1= (double)i2; //ω=2πfよりk=2πf/c k = (double)(2*M_PI*F)/(double)(C); //三平方の定理を利用 r1 = r2*r2 - r0*r0; r2 = r0*r0 + r1*r1; //計算式の組み立て a = 2*M_PI; b = -k*r1; c = -k*r2; //オイラーの公式を利用してeをsinとcosに変化  //また、#include <banto.h>によりCseは実数と複素数の加算でCse(1,2)は1+2j  //Csuは複素数と複素数の加算  //Cmuは複素数と複素数の乗算 //Cmu_sは複素数と実数の乗算を表すことができる z0 = Cse(cos(a), sin(a)); z1 = Cse(cos(b), sin(b)); z2 = Cse(cos(c), sin(c)); z5 = Csu(z1,z2); z3 = Cmu(z0,z5); z6 = Cmu_s(z3,(1/2.0));  //x軸を1000倍したのは単位をmmに合わせるためです。 printf("%9.9f %9.9f\n", 1000*r0, z6); } } } return 0; } としました。 短冊状に細かく分割した面積を足し合わせるので、分割数を多くするために 一個一個の短冊の範囲を狭く設定して繰り返し足していけるプログラムに した方がいいと言われました。(短冊の面積は少しずつ増やさなければならないのですが、どこの面積を表しているかわかっておりません) よろしくお願い致します。

関連するQ&A

  • 支点反力の求め方を教えて下さい!

    材料力学IIの問題です。 両端支持はりに集中荷重が作用する場合における、支点反力RA,RBの求め方(連立の解き方)が分かりません。 式は、 PーRAーRB=0と aPーlRB=0の 二式です。 解答は RA=(b/l)P RB=(a/l)P となるみたいです。 なぜそのような解答になるのかが分かりません。 どなたか 詳しい説明の方 お願い致します。

  • 式をC言語で立てれません

    式をC言語で立てれません 式をC 言語で立てれません こんにちは。私は今実験で円板振動子の中心軸上の音圧分布を求めています。 そこで写真のような図をプロットするために与えられた式をC言語で書いています。 式の詳細は P/2ρcV = |sinπ(√(r/λ)^2 + (a/λ)^2)(√はここまで)-(r/λ))| です。 しかしうまくプロットできません。 プログラムは ------------------------------------- #include <stdio.h> #include <math.h> #define F 120 //周波数(Hz) #define C 1500 //音速(m/s) #define A 0.2 // 半径(m) int main() { double x, m, s, p, o, w, l; int i; for (i=0; i<100; i++) { x= (double)i; //観測点までの距離を表しました。距離が変化することで音圧が変わるためです。 l = C/F; //λをlとして音速÷周波数で定義できます。 m = x/l; //x軸です。 o = m*m + (A/l)*(A/l); //式のsinの中身です。 s = sin(M_PI*(sqrt (o) - m)); //sin全体を定義します。 w = fabs(s); //sin全体を絶対値に置き換えます。 p = w; //新しい変数に入れます。 printf("%9.9f %9.9f\n", m, p); } return 0; } ------------------------------ といった感じです。先生からはx軸のプログラムだけいじれば勝手に y軸も出てくるとヒントを頂いているのでx軸についてのプログラムを 書いています。コンパイルはできても写真のようにいきません。 半径やλや周波数はa/λ=2.5と書いてあったので値は推測です。 C言語はあまり得意ではないので困っています。 お分かりになる方、ご教授お願い致します。 ※式が間違っていたので新しく質問します。

  • 式をC言語で立てれません

    式をC言語で立てれません こんにちは。私は今実験で円板振動子の中心軸上の音圧分布を求めています。 そこで写真のような図をプロットするために与えられた式をC言語で書いています。 式の詳細は P/2ρcV = |sinπ(√(r/λ)^2 + (a/λ)^2)(√はここまで)-(r/λ)^2)| です。 しかしうまくプロットできません。 プログラムは ------------------------------------- #include <stdio.h> #include <math.h> #define F 120 //周波数(Hz) #define C 1500 //音速(m/s) #define A 0.2 // 半径(m) int main() { double x, m, s, p, o, w, l; int i; for (i=0; i<100; i++) { x= (double)i; //観測点までの距離を表しました。距離が変化することで音圧が変わるためです。 l = C/F; //λをlとして音速÷周波数で定義できます。 m = x/l; //x軸です。 o = m*m + (A/l)*(A/l); //式のsinの中身です。 s = sin(M_PI*(sqrt (o) - m)); //sin全体を定義します。 w = fabs(s); //sin全体を絶対値に置き換えます。 p = w; //新しい変数に入れます。 printf("%9.9f %9.9f\n", m, p); } return 0; } ------------------------------ といった感じです。先生からはx軸のプログラムだけいじれば勝手に y軸も出てくるとヒントを頂いているのでx軸についてのプログラムを 書いています。コンパイルはできても写真のようにいきません。 半径やλや周波数はa/λ=2.5と書いてあったので値は推測です。 C言語はあまり得意ではないので困っています。 お分かりになる方、ご教授お願い致します。

  • 格子運動と結晶の熱的性質に関する問題です。

    解答をお願いします。ダイヤモンドのアインシュタイン温度はθe=1320Kである。アインシュタインモデルにおける調和振動子の角周波数ω(単位 rads^-1)、周波数f(単位 Hz)、エネルギー単位hω(単位ev)を求めてください。T=186K、372K、および、1320 Kにおけるダイヤモンド1molの定積熱容量Cv(単位 JK^-1 mol^-1)を求めてください。

  • たわみ計算(2点集中荷重/両端支持梁)

       (a)       (b)     ↓       ↓ ------------------------(丸棒(S35C)φ20mm)   △               △ Ra                Rb (a)・・・10kg (b)・・・20kg S35Cの縦弾性係数E=2.1x10^4(kgf/mm^2) 密度7800kg/m^3 Ra~Rbの長さ1000mm Ra~(a)点まで300mm (a)~(b)点まで450mm (a)点および(b)点のたわみはどう求めるのですか? 材料力学の初心者です。 助けて下さい。

  • だれか教えてください.

    {e^(jωt)-e^(jωt)}^3 = (e^(j3ωt)-3e^(jωt)+3e^(-jωt)-e^(-j3ωt)) jは虚数 となる途中式がわかりません. 教えてください.

  • 円板の慣性モーメントの例題の解き方について

    まず、当方学生ではございません。 ついぞ仕事に生かせるかと思い参考書を手に勉強をしていて躓きました。 どうにも解答の流れがつかめず、うまく考えがまとまりませんでした; 培風館から出ている参考書で、「基礎から学ぶ物理学 上」というものがあるのですが、 そこの円板の慣性モーメントの例題に以下のような問題が解答付でありました。 ”質量1トン、半径1m密度一様な円板が毎分1000回転している。この円板の縁にブレーキで100Nの制動力を与えた時、ブレーキで発生する熱は何Jか?また、熱出力は平均何Wか?” という問題で、以下が解説でした。 ”初期角速度 ω0 で円板が回転し、t=0 でF[N]の制動がかかり始めると運動方程式は  I*dω/dt=-aF t について積分すると t=0 で ω=ω0 となるので、  ω=-aFt/I+ω0 停止する ω=0 までの時間 t0 は Iω0/aF [s] となり、板の縁の早さvは  v=aω=a(-aFt/I+ω0) なので、熱出力P[W]は時間とともに変わる。  P=Fv=aF(-aFt/I+ω0) しかし、円板の最初の回転エネルギー 1/2Iω0^2 がt0秒間に全て熱に変わったわけなので平均の発生熱量 P' は P'=1/2Iω0^2 / t0 = aFω0/2 このことから式に代入していくと、 全熱量=2.74x10^6[J] 平均熱出力= 5.24[kW] ” となるらしいのですが、色々混乱しどのパラメータがどの記号に当てはまるのかわからなくなってしまいました; a=半径 ω=毎分1000回転 F=100N I=円板の慣性モーメント でやっていけばいいのでしょうが、うまくできませんでした。 筋道立てつつ解答への導き方分かる方教えてください。 数式読みにくいかもしれませんがよろしくお願いいたします。

  • 梁のたわみ

    P ↓     (1)     (2) ━━━━━━━━━━       △      △ ├─a─┼──b──┤       ↑RA    ↑RB 上図のa区間とb区間の任意の位置xのたわみを求める式で、モーメントを積分した後の式の解き方(積分定数Cが解決できない)がわかりません(?_?) RA=P*(a+b)/b RB=P*(1-(a+b)/b) a区間:Mx=-Px b区間:Mx=-Px+RA(x-a) δx=∬(-Mx/EI)dxdx=????? (1)と(2)の位置でδ=0で解けると思うんですが… よろしくお願いします。

  • この式の導き方

    お世話になります。 以下の式の導き方を教えて頂きたく、 大変お手数ですが、どうぞよろしくお願いします。 自分でやっても、どうしても途中で止まってしまいます。。 (与えられる式)  Ra + P + Rc = 0   ・・・(1)  Ra + N1 = 0      ・・・(2)  Rc - N2 = 0     ・・・(3)  U1 + U2 = 0     ・・・(4)  U1 = (N1*L)/(3*E1*A) ・・・(5)  U2 = (2*N2*L)/(3*E2*A)・・・(6) (導く式)  Ra = -P(2*E1)/(2*E1+E2)・・・(7)  Rc = -P*E2/(2*E1+E2)  ・・・(8)  U1 = (2*P*L)/(3*A(2*E1+E2))・・・(9) 以上、よろしくお願い致します。

  • 振動の問題について

    バネとダンパがある系で固有角振動数ωdで振動するという場合、x=Ae^(jωdt)が変位の式になりますよね? これが何故振動を表していることになるのでしょうか?tが大きくなるとxも大きくなっていく気がするのですが。虚数jが関係しているのでしょうか?教えてください!