工学への応用

ここでは、エクセルの工学への応用例を紹介します。

  1. 関数のグラフ化


    1. 関数のグラフ化

       関数をグラフ表示するソフトはフリーソフトを含めて少なからずありますが、組み込みや操作に慣れる必要があります。また、グラフ化の方法が標準化され、変更しにくい場合が、少なくありません。

    2. 三角関数のグラフ化

       sin(α)+cos(α) のグラフを描いてみます。角度を横軸に、縦軸に、sin(),cos(),sin()+cos() を表示します。A列に 0〜360 を10度単位に入力します。B列はA列の度をラジアンに変換します。C,D,列で sin() と cos() を計算し、E列は C,D を加え2で割ります。
       グラス化するには、C1からE38を選択し、「挿入タブ」のグラフ、折れ線、を選択します。


       横軸を角度の値とするには、「グラフ」を右クリックし、「データ選択」をクリックします。「データソースの選択」で、右の「横軸ラベル」を選択し、「軸ラベルの範囲」に角度(「度」または「ラジアン」)の範囲を選択します。


  2. 音階の周波数の計算


     
    1. 西洋音階

       西洋音階では、「A(ラ)」の音を440Hzとし、1オクターブ高い「ラ」の音を2倍880Hzとします。この間の音は半音を含めると12音になり、各音階はの周波数は等比数列とします。

    2. 周波数の計算

       隣の音階との比率を R とすると R^12 =2 の関係が必要ですから、Rは
       =POWER(10,LOG10(2)/12)
      で計算できます。POWER はべき乗、LOG10 は底を10とする対数です。B2 を 440、G#(Gの半音高い音)の周波数(C2)を B2*$B2B5 として、残りはこれをコピーします。


       周波数を 棒グラフ表示してみます。一見比例しているようにも見えますね。


  3. 誕生日が異なる確率

    1. 誕生日がすべて異なる確率

      N人の人がいて、すべての人の誕生日が異なる確率を求めてみます。二人の場合、誕生日が異なる確率は 364/365 です。逆に言えば、誕生日が同じ確率は 1/365 になります。これは、=B2*(365-C1-1)/365 で計算できます。3人の場合、二人が異なり、さらに3人目の人も異なる確率は、(364/365)・(363/365) になります。これは、C2 の式をコピーしても同じです。



    2. グラフ

       人数を20人程度に増やしますと、すべて異なる確率は 0.5 を下回ります。30人いれば0.25まで下がります。逆に言えば、30人いれば 0.75 の確率で同じ誕生日の人がいることになります。


  4. 投げたボールの軌跡

    1. ボールの軌跡

      ボールを真上に投げたときのボールの軌跡を計算します。速度 v で真上に投げたボールの速さは、重力による負の加速度のため dt時間の経過の間に g・dt だけ小さくなり、やがては負になって落下に転じます。時間とともに変化する運動は積分計算が必要ですが、dt の値を十分小さくとれば、近似計算が可能です。

    2. エクセルによる計算

      ここでは dt=0.01秒 として計算します。予め dt と G の値を変数として登録しておきます。1行に0.01単位で0.2秒まで時刻を入力します。第2行に速度を計算します。B2 に初期の速さ 1[m/s] を入力し、C2 は =B2-G*dt とします。B2(前の時刻)から G*dt減らすことになります。C2を 時刻 0.2秒までコピーします。
       次ぎに高さですが、前の時刻の高さに 現在の 速さ・dt を加算します。C3 に  =(B3+C2*dt*100) を入力します。ここで 100 倍しているのは、高さを100倍して、高さの単位を cm としたいからです。m 単位ではグラフ表示したとき変化が見えなくなります。



       下がグラフで青色の速度は毎秒 G だけ直線的に下がります。オレンジの高さは速さが 0 に近づくと変化が緩やかになり、速さが負になると落下を開始します。



  5. 最適解を求める(ソルバー)


    1. 最適解

      エクセルには最適解を求める機能(ソルバー)があります。これは
       与えられた制約条件を満たし
       与えられた目的関数の値を最大(最小)にする
      パラメータを求める問題です。

    2. 連立方程式を解く

       このソルバーの機能を用いて、連立方程式 A x = b を解いてみます。Aは 3*3 の行列とし、C4:E6 に値を設定します。b,x は1列3行 の行列になります。
       行列の積 A x を計算し、その値を x' とします。制約式は x' = b となります。この場合目的関数は不要ですが、数式が必要なので形式的に 0 とおきます。
       C16,C17,C18 は関数配列で、=MMULT(C4:E6,C12:C14) を同時に設定します。MMULT() は二つの行列の掛け算を計算します。


    3. 実行

      データメニューから ソルバー を選択します。目的セル、変数セル、制約条件の対象 を設定します。下にある「解決」ボタンを押して、x’の値が b の値に等しくなれば、解けています。