みその計算物理学
ホーム はじめに リンク集
2次方程式を解の公式を用いて解を求める数値計算例(JavaScript)
  • 2次方程式

    2次方程式の解は、解の公式を用いて解析的に求められるので、わざわざコンピュータに解かせる必要はないが、プログラミングの入門には最適な課題である。今回は、解の判別式を用いて、複素解まで求めるようにした。

    このプログラムではJavaScriptのフォームを使っている。フォームを使えばプラウザ上でデータ入力ができるので便利である。

  • プログラムソース

    スクリプト部分

    <script language="JavaScript"><!--
    function answer()
    {
            a=document.nizi.a.value;
            b=document.nizi.b.value;
            c=document.nizi.c.value;
            a=parseFloat(a);
            b=parseFloat(b);
            c=parseFloat(c);
            D=b*b-4*a*c;
    if(D>0) 
    {
            Re1=(-b+Math.sqrt(D))/(2*a);
            Re2=(-b-Math.sqrt(D))/(2*a);
            Im1=0;
            Im2=0;
            document.nizi.re1.value=Re1;
            document.nizi.im1.value=Im1;
            document.nizi.re2.value=Re2;
            document.nizi.im2.value=Im2;
    }
    else if(D==0)
    {
            Re1=-b/(2*a);
            Im1=0;
            Re2=Im2=0;
            document.nizi.re1.value=Re1;
            document.nizi.im1.value=Im1;
            document.nizi.re2.value=Re2;
            document.nizi.im2.value=Im2;
    }
    else
    {
            Re1=-b/(2*a);
            Re2=Re1;
            Im1=Math.sqrt(-D)/(2*a);
            Im2=-Im1;
            document.nizi.re1.value=Re1;
            document.nizi.im1.value=Im1;
            document.nizi.re2.value=Re2;
            document.nizi.im2.value=Im2;
    }
    }
    --></script>
    

    フォーム部分

    <form name="nizi">
    係数a,b,cの値を半角英数字で入力して「計算する」ボタンを押してください。<br>
    a=<input type="text" name="a"><br>
    b=<input type="text" name="b"><br>
    c=<input type="text" name="c"><br>
    Re1=<input type="text" name="re1"><br>
    Im1=<input type="text" name="im1"><br>
    Re2=<input type="text" name="re2"><br>
    Im2<input type="text" name="im2"><br>
    <input type="button" value="計算する" onClick="answer()">
    </form>
    
  • JavaScript
    係数a,b,cの値を半角英数字で入力して「計算する」ボタンを押してください。
    a=
    b=
    c=
    Re1=
    Im1=
    Re2=
    Im2