第12回の問題3を1変数関数で求めるには・・・ [重積分]
重積分の第12回の問題3の面積を1変数関数の積分でどうやって求めるかというと、細かい議論が少しいるのだけれど、その議論を、まずは、すっ飛ばすことにするにゃ。
図を見ればわかるけれど、この図形はx軸に関して対称だから、上半分、つまりy≧0の部分の面積を求め、これを2倍すれば求める面積になる。
ということで、
を計算し、これを2倍すれば、求める面積になる。
何処からこんなのが出てきたかというと、x=rcosθ、y=rsinθとr=1–cosθから
となり、あとは、置換積分の
というありがたい式からこうなる。
―――実は、ここで少しズルをしている(^^ゞ 詳しくは、細かい議論で―――
で、 0≦θ≦πで
となることから、xは、θ=π/3の時に最大で、最大値は1/4となる。
少し細かい議論というのは、
と言うもの。
これは下の図を見てもらうとよくわかると思う。
求める面積は、青の部分で、これは黄色の部分から紫の部分を引いたもの。
y+という関数は−2≦x≦1/4の関数、y-という関数は0≦x≦1/4・・・。
こういうちょっと細かい議論をしないといけない。
計算はしないぞ。真面目に計算をすると、同じ答えるになるはずだにゃ。上半分の面積は3π/4だから、面積は3π/2になるはずだ。
ちなみに、(1/4,√3/4)は変曲点。
答が一致することの検算は、台形公式でやってある。
今回は、C言語のプログラムを・・・。
#include <stdio.h>
#include <math.h>
double f(double x) {
return (1-cos(x))*sin(x)*(-sin(x)+2.*sin(x)*cos(x));
}
double daikei (double a, double b, int n) {
double s, h;
int i;
h=(b-a)/n;
s = (f(a)+f(b))/2;
for (i=1;i < n; i++) {
s= s+ f(a+i*h);
}
return s = s*h;
}
int main() {
int n;
double pi;
pi=4*atan(1.0);
n=100;
printf("s=%f\n", daikei(pi,0,n));
printf("kotae=%f\n",3.*pi/4);
return 0;
}
100分割で計算すると、3π/4≒2.356194となるにゃ。
だから、間違っちゃ〜いない(^^ゞ
台形公式のBASICのプログラムは
http://nemuneko-gensokyou.blog.so-net.ne.jp/2015-04-09-3
に書いてある。
def f(x)=ホニャララ
の部分と、aとbの値を変えればいいにゃ。
コメント 0