0

これがこの質問をするのに適切な場所かどうかはわかりません。そうでない場合は削除しますが、私の質問は数学のテクニックをプログラムに移すことに関連しています。私の質問は:

次を使用して二次方程式を解くプログラムを使用する場合ax^2+bx+c=0:

x_1 = (-b-sign(b)*sqrt(b^2-4*a*c) ) / (2*a) 

x_2 = (c) / (a * x_1) 

一般的な公式よりもコンピュータを使用する利点は何ですか? 関連するエラーを減らすことはわかっていますが、それ以外は.

4

2 に答える 2

2

コードを使用することの違いは何ですかと尋ねていると思います

x1 = -b+sqrt(b*b-4*a*c)/(2*a);
x2 = -b-sqrt(b*b-4*a*c)/(2*a);

そしてコード

q = (-b-sign(b)*sqrt(b*b-4*a*c))/2;
x1 = q/a;
x2 = c/q;

C の数値レシピ - 科学計算の芸術 - 第 2 版という本は、2 番目のコードがより正確な根を与えると言っているだけです。http://apps.nrbook.com/c/index.htmlでこの本をオンラインで参照できます。式は 183 ページと 184 ページのセクション5.6 2 次方程式と 3 次方程式にあります。

Higham 教授の著書Accuracy and Stability of Numerical Algorithms, 2nd Editionには、導入セクション1.8 があります。2 番目のコードについてさらに詳しく説明する二次方程式を解く。おそらく、クエリを使用してGoogleブックで読むことができますhigham 1.8. solving a quadratic equation。彼は、追加の利点を説明せずに、2 番目のコードの正確さと堅牢性について話しているだけのように思えます。

より長い説明 (Python Scilab コンテキスト) については、Scilab is not naive by Michael Baudin を参照して ください。 .pdf

于 2013-03-03T11:34:52.173 に答える
0

aコンピュータ プログラムは、bとの数百万の値の解をほぼ瞬時に得ることができる唯一の方法ですc

最近コンピューターが普及した理由の 1 つは、反復的な微積分タスクを自動化して高速化することです。

于 2013-01-30T08:47:49.520 に答える