• ベストアンサー

代数方程式

 x^3-3x-1=0の正の解のうち最も小さいものを小数点以下3桁の精度で求めるプログラムを造っていますが、どうしてよいか手もつかない状態です。このプログラムを造るためのヒントをください。もしあったら参考になるホームページなどを教えてください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ニュートン法って知っていますか? 初期値x0からf(x0)でyが求まり、 点(x0,y0)傾きf'(x0)の直線がx軸と交わる点を 新しいx1として、計算を繰り返す方法です。 初期値2から始めるといいと思います。

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

二分法という方法もあります。 ニュートン法に比べて、二分法は 1)直観的で判りやすい。 2)ニュートン法に比べて、収束までの計算回数が多い。 3)ニュートン法の場合は、その関数が微分できることが条件ですが、二分法は、微分出来るかどうかには依存しない。 という特徴があります。 二分法 方程式 をキーワードにして検索して下さい

参考URL:
http://www.bio.is.tohoku.ac.jp/~shioura/teaching/s-info2/NLeq.ppt

関連するQ&A

  • 方程式の解をだすプログラム

    今日の情報処理演習のテストで {正の整数(float型)aを入力させ、方程式x*x*x*-3*x+a=0の正の解のうち最も小さいxを小数点以下2桁の精度で求め、画面に表示するプログラム。ただし、a>2のときは、「解けません」というメッセージを表示するようにする。}  という問題がでたのですが、このプログラムがわかる人は教えてください。ちなみに、使うのはif構文とwhile構文(do~whileは使わない)でつくらなくてはなりません。  for構文とif構文の組み合わせを使えばできるとおもうのですが、whileだけでやるにはどうすればいいのでしょう。

  • 方程式の解

    方程式-x*x*x*x*x+5*x+1=0の正の解のうち、最も小さいものを少数4桁で求めるプログラムを(while構文をつかって)造るには、どうすればよいですか。方程式も足し算や引き算と同じようにもとめられるのですか?

  • 変数係数の代数方程式

    簡単のため、2次での例をあげます。 x^2+a(z)x+b(z)=0 というxについての2次方程式を考えます。これはzを止めるごとに二つの複素数解を持ちます。もしa(z)とb(z)が連続であれば、zに関してそれらの二つの解は連続になります。もしa(z)とb(z)がともに正則関数なら、二つの解は判別式が0となる点を除いてzの正則関数になります。それらのことは、解の公式をみればただちにわかります。判別式が0になる点は代数的特異点になる可能性があり、周期2である可能性があります。この事実も解の公式をみればすぐにわかります。 これを一般化して、最高次の係数が1で、係数がzの関数になっているようなn次方程式を考えます。n個の解はそれぞれzの関数と考えることができますが、有限個の例外点をのぞけば、係数の連続性が解の連続性にそのまま遺伝すると考えられます。たとえば係数が連続なら、解も連続だし、係数がzに関して正則なら、解も有限個の点をのぞいて正則になるものと思われます。ただ、一般の場合は代数的な解の公式がありません。どうやってこの事実を証明したらよいでしょうか。ヒントでもよいのでご教示いただけたらと思います。おそらく複素解析を使うのがもっとも簡単だとは思うのですが。参考文献をあげていただけるだけでも構わないです。

  • 四捨五入

    実数Xの小数点以下2桁目を四捨五入して実数Hとするプログラムと Xの10の位を四捨五入して整数Lとするプログラム(Xは正の整数) を教えてください。

    • ベストアンサー
    • Java
  • 数値計算

    次の2つなのですが 1.ニュートン法により3次方程式 X^3+3X^2-3X-4=0 の実数解 2.2分法により、3次方程式 X^3-3X+1=0 の区(0,1)における解 解を小数点以下8桁まで正確に求めるにはどうすればいいのですか??

  • BASICでの解法

    f(x)=x^2-a (aは正数とする)として、二分法によって方程式f(x)=0の 近似解を小数点以下4桁まで正しく求めるプログラムを作成せよ。 プログラムの勉強をはじめたところで簡単なプログラムは、読めるようになってきたのですが、書けと言われると・・・。 どのように進めていけばよいのでしょうか? 言語のページで質問しようと思ったのですが、BASICがなかったもので数学のページで質問させて頂きました。

  • プログラミングCについて

    次のプログラムは11の正の平方根の近似値を、以下の方法に基づいて小数点以下第4位の精度で求めるプログラムである。このプログラムが正しく動作するように下線部を埋め、プログラムを完成させなさい。なお、3の2乗は9であり、4の2乗は16なので、10の平方根は3と4の間であることはわかっているとしてよい。(小数点以下第4位の精度とは、小数点以下第4位までが真値ち一致するようにし、第5位以下については一致しなくてもよい事を意味する。よって、結果の表示自身に第5位以下が表示されても構わない。) double x; for(x=3;x<4;x+=0.0001) { for(_______) break; } printf("11の正の平方根は%______です。\n",x); 平方根を求める方法: 変数を3から4まで0.0001刻みで増やしながら、その2乗を計算していきます。最初は3なので、その2乗は9となり、11よりも小さい値になりますが、変数の増加に応じて2乗の値も増えていき、4の2乗になる前には11を越えます。この時の変数が11の平方根の近似値になります。 注意: このプログラムによる答えは3.3167となります。実際には、変数の2乗が初めて11を越えたときの変数の値よりも、その1ステップ前の変数の値が方が近似値として適切かもしれません。しかし、今回はそこまで考慮する必要はありません。

  • 数理計算法に関して教えてください!

    ニュートン法の問題です。 3次方程式 X^3+3X^2-3X-4=0 は区間(-4,-3),(-1,0),(1,2)にそれぞれ1つの実数解をもつ。ニュートン法により、3つの実数解を小数点以下8桁まで正確に求めよ。 エクセルを用いて求めたいのですが、わかりません。 どなたか回答、お願いいたします。

  • 複素数と方程式

    問題の解説が無く、解き方が分からなくて困ってます>< 教えてください。 (1)2次方程式(x-8)(x-9)+(x-10)(x-12)=0 の2つの解をα、βとするとき、2(11-α)(11-β)の値を求めよ。 (2)2次方程式x^2-5x-5=0の2つの解の小数部分を解とする 2次方程式をつくれ。 (3)x^2+xy-2y^2+kx+2y+4(kは正の定数)がx、yについての2つの1次式 の積で表されるとき、kの値を求めよ。

  • 数値計算における誤差について

    小数点以下5~6桁の数値(整数部は1~5桁)を何度も積算するプログラムをSolaris7とWinXPで動作させたところ、同一データを使ったにもかかわらず誤差が生じました。非常に小さい差(0.2%程度)のものなので実用上は大きな問題はないのですが、何が原因でこうなるのでしょうか。プログラムでは数値を単精度として扱っています。

専門家に質問してみよう