- ベストアンサー
Javaの問題(初心者向け、やや計算あり?)
Javaの勉強中なのですが、以下のような問題が出ました。 ニュートンコーツの公式(のうちの台形公式)を用いて、y=xの2乗を0<=x<=1の区間で積分し、結果を表示するプログラムを作成せよ。刻み幅は任意に設定してよい。 …どのように解かれますか? さっぱりわからないのですが…。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
y = f(x) において、x = x0, x1 (x0<x1)が作る台形の面積は、 (上底の長さ) = f(x0) (下底の長さ) = f(x1) (高さ) = x1 - x0 だから、 その面積は S = ( f(x0) + f(x1) ) * ( x1 - x0 ) / 2 ここで、f(x) = x^2 ならば S = ( x0^2 + x1^2 ) * ( x1 - x0 ) / 2 これを、[0,1]の範囲で刻み幅を deltaX として加えていくと public double getArea( double deltaX ) { double s = 0.0; double x0 = 0.0; for( double x1=deltaX; x1<=1.0; x1+=deltaX ) { s += ( x0^2 + x1^2 ) * deltaX / 2 x0 = x1; } return s; } これで、中学生の知識で求めることができます。 なお、これはJavaのプログラミングの勉強には 全く相応しくない内容ですね!(^^;
その他の回答 (6)
- HarukaV49
- ベストアンサー率53% (48/89)
#6です。 累乗計算の記号を書き換ええるのを忘れていました。 (誤) s += ( x0^2 + x1^2 ) * deltaX / 2 (正) s += ( x0*x0 + x1*x1 ) * deltaX / 2 以上、訂正してお詫び申し上げます。
- PED02744
- ベストアンサー率40% (157/390)
>ANo.4さん >> 一応、台形の公式についてはわかります。中学生で習いますので。 >そりゃ多分勘違い。 やっぱり勘違いですかね?(^-^; 私はお年寄りなので、「今の中学は台形・シンプソンなんて教えるんだ~すごいな~」 と思ったりしてました(笑) 微分積分は高校2年で習った気がするし、偏微分は大学まで習わなかった様に思うんですけどね。
- sakusaker7
- ベストアンサー率62% (800/1280)
> 一応、台形の公式についてはわかります。中学生で習いますので。 そりゃ多分勘違い。 数値積分の台形公式のことを問題ではいっているのではないかな? 数値積分(台形公式) http://maya.phys.kyushu-u.ac.jp/~knomura/education/numerical/text5/node1.html グラフの領域を台形で細かく区切ってその合計を計算することで 面積(=積分結果)を求めるということなんだけど。 ニュートン・コーツの公式 - Wikipedia http://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E3%83%BB%E3%82%B3%E3%83%BC%E3%83%84%E3%81%AE%E5%85%AC%E5%BC%8F にも台形公式ってあるでしょう?
- PED02744
- ベストアンサー率40% (157/390)
>プログラム部分だけでなく、考え方や計算式も含めてどのように解くか?という質問なのですが…。 だとしたらカテゴリ違いだと思います。数学とかのカテゴリではないでしょうか? ここは、JAVAカテゴリーなので、JAVAプログラムに関する質問をするところです。 設問に「結果を表示するプログラムを作成せよ」と書かれていますから、 googleで検索されたサンプルは正しいはず(例えばこんなサイト)なのに http://www.geocities.jp/java_sample_program/DaikeiSimpson.html 「全然違う」とおっしゃってる以上、このカテゴリでは手に負えない気がします。 数学関連のwikipediaでニュートン・コーツ を調べられた方がちかいのではないでしょうか?
>…どのように解かれますか? javaではなく質問者自体の脳で解く事はできる? もしできるというならその解法を書き出してごらん。 例えば長方形の面積 ・縦の辺と横の辺をかける これをプログラム化すれば良い。 1つの項目が複雑ならばそれを展開して同じように箇条書きしてプログラム化できるか試みる。
- PED02744
- ベストアンサー率40% (157/390)
勉強中のあなたが「さっぱりわからない」ものなので、別に勉強しているわけでもない私たちがわかるわけがないんですが(笑) googleで検索キーを指定して[java ニュートン コーツ プログラム] でサンプルは出てきましたよ? 聞く前に調べる。調べる前に考察する。 この癖をつけないと、課題の意味が無いです。自力でなんとかする努力をしてください。
お礼
補足ですが…Javaを始めて1日目の例題ですので、多分、解答そのものはそれほど難しくないんだと思います。数学的な考え方(?)のところで躓いているのかもしれません…。
補足
あ…あのぅ……それらのサンプルは全然違うものなのですが…。 プログラム部分だけでなく、考え方や計算式も含めてどのように解くか?という質問なのですが…。 一応、台形の公式についてはわかります。中学生で習いますので。
お礼
有難うございました。とても参考になりました。