C言語 区分求積法について
-
xj0461jr
C言語 区分求積法について
C言語(下記)の区分求積法についての質問なんですが、区分求積法の理論(物事の道理を統一的に説明すること)について教えて頂きたいです。
区分求積法 Cソースプログラム
#include<stdio.h>
void main() {
float p,q,n,hi,bi,s,ai,i,xi;
printf("p,q,n =");
scanf("%f,%f,%f",&p,&q,&n);
s = 0;
bi = (q - p) / n; //図形の始点
for(i = 1;i <= n;i++) {
xi = bi * i + p; //図形の高さまでの長さ
hi = 2 * xi * xi + 3; //図形の高さ
ai = bi * hi; //不明(難しくてわからない) 教えてもらえると有難い
s = s + ai; //図形の面積
}
printf("計算解 =%f\n",s);
printf("厳密解 =%f\n",2 * (q * q * q - p * p * p) / 3 + 3 * (q - p));
}
区分求積法 Cソースプログラム
#include<stdio.h>
void main() {
float p,q,n,hi,bi,s,ai,i,xi;
printf("p,q,n =");
scanf("%f,%f,%f",&p,&q,&n);
s = 0;
bi = (q - p) / n; //図形の始点
for(i = 1;i <= n;i++) {
xi = bi * i + p; //図形の高さまでの長さ
hi = 2 * xi * xi + 3; //図形の高さ
ai = bi * hi; //不明(難しくてわからない) 教えてもらえると有難い
s = s + ai; //図形の面積
}
printf("計算解 =%f\n",s);
printf("厳密解 =%f\n",2 * (q * q * q - p * p * p) / 3 + 3 * (q - p));
}
Re: C言語 区分求積法について
区分求積法とは、別の回答者さんの回答のとおり、
短冊の面積の寄せ集めです。
上の式で、
bi:積分対象区間[p, q]をn等分したi番目のxの位置
hi:その場所での短冊の高さ
ai:短冊の面積
aiを寄せ集めたsの値は、n等分のnが大きくなるほど、つまりbiが小さくなるほど、
厳密解に近づく、ということでしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: C言語 区分求積法について
x座標ですね。xj0461jr さんが書きました:xiは、何を表しているかわかります?
pからqまでをn等分してそのx座標をxiとしてます。xiのときのy座標がhiです。
従って短冊の幅がbi、短冊の面積がaiになります。
理解するためには、図を書いてみましょう。
non
-
xj0461jr
Re: C言語 区分求積法について
厳密解の計算は、2(q×q×q-p×p×p) ÷ 3+3(q-p)で求められるみたいなのですが、qやpが三乗になっているのはなぜですか?
ここに出ている2や3の意味も教えてください。お願いします。
ここに出ている2や3の意味も教えてください。お願いします。
Re: C言語 区分求積法について
このように書かれていますので、積分対象の関数はf(x)=2x^2+3ですね。
∫(x=p~q)(2x^2+3)dx
=[2x^3/3 + 3x](x=p~q)
=2(q^3 - p^3)/3 + 3(q - p)
です。
なお、ここでは ^ をべき乗の意味で使っています。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
-
xj0461jr
Re: C言語 区分求積法について
誠に恐縮なのですが、まだ、学校で積分を学習していないので高校二年生にわかる程度に書いていただけると有難いです。
なんで積分を習っていないのにこんなことをやっているかというと、C言語の学習につかっているので。
特に、厳密解のところがわからないので宜しくお願いします。
なんで積分を習っていないのにこんなことをやっているかというと、C言語の学習につかっているので。
特に、厳密解のところがわからないので宜しくお願いします。
Re: C言語 区分求積法について
C言語を学習するのに積分以外のテーマは山ほどあると思います。xj0461jr さんが書きました:誠に恐縮なのですが、まだ、学校で積分を学習していないので高校二年生にわかる程度に書いていただけると有難いです。
理論がわからないテーマ(くだんのコードで何をしているか、正確にはわからない)を無理に選ばなくても、
理解できるテーマ(例えば2次方程式の解き方とか)をお選びになる方が、
C言語の学習がしやすいのではないか、と思います。
# 高2の10月だったら、そろそろ微積分を勉強する時期じゃないのかな?
# 今の高校数学の科目分けはややこしくて、どの単元をいつ勉強するのかよくわからないけど。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
-
大学受験生
Re: C言語 区分求積法について
区分求積法は(旧課程では)数IIIの終わりの方なので高3になってからになるかと思います。
文系の場合学校では習わない可能性もあります。
C言語の学習の目的が分からないですが、boxさんも仰っているようにC言語の勉強としてやることは他にもあると思うので、他のことをやった方が有意義でしょう。
文系の場合学校では習わない可能性もあります。
C言語の学習の目的が分からないですが、boxさんも仰っているようにC言語の勉強としてやることは他にもあると思うので、他のことをやった方が有意義でしょう。
Re: C言語 区分求積法について
積分を使うなら、C言語で解く意味はないので、知らなくてもいいです。
答え合わせに使っているだけでしょうから。
区分求積法だけ理解できれば、良いでしょう。区分求積法なら理解できるはず。
なぜx^2を積分するとx^3の項になるかは、
x^3を微分するとx^2の項になるからですね。微分と積分は逆なので。
答え合わせに使っているだけでしょうから。
区分求積法だけ理解できれば、良いでしょう。区分求積法なら理解できるはず。
なぜx^2を積分するとx^3の項になるかは、
x^3を微分するとx^2の項になるからですね。微分と積分は逆なので。
non