Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

どちらの陰関数の面積が大きい? -解答編-

$
0
0

午後のひとときに、数学の大小比較問題の解答編です。




2つの陰関数
x2+xy+y2=1 … (青)
x2-xy2+y4=1 … (赤)
の面積、どちらが大きい?

今回は、手計算では限界があるので、電卓、Excel、プログラミング、Wolframなどの計算機を使っても良いものとします。
おそらく、片方は厳密値を求められないかと思われるので、小数点以下10桁程度を求めて、比較すれば良いこととします。


シンキングタ~イム


今回は解答編です。
まだ見たくない人は閉じてください。

まず、私がこの図を書いた方法ですが、どちらの陰関数も、ここからここまではxを変化させて、ここからここまではyを変化させて、…という感じで描いています。

華麗に解くならば、極形式にして、θで積分とかが美しいのかもしれませんが、極形式への変換を思い出せないし、さて、どうしたものか。

というわけで、xとyで分けて考えるのが楽だと考えました。

さて、今回は何を使っても良いので、ウェブで使えるツールを多用していく。

まずは、Wolframで、どこまで出来るかをやってみる。

青が簡単なので、
x^2+xy+y^2=1の面積
をコピペして、貼り付ける。
すると、3.6276という近似値を表示します。

赤も同様に、
x^2-xy^2+y^4=1の面積
をコピペして、貼り付けて計算させてみると、
標準の計算時間を超えてしまいました。
残念。

別の手段を考えて、
x^2-xy^2+y^4=1, find y
とだけ入れてみると、
y=の式が4つ出てきますが、符号をまとめると

y=±
4-3x2
2

同様に、
x^2-xy^2+y^4=1, find x
とだけ入れてみると、
x=の式が2つ出てきますが、符号をまとめると

x=
y2±4-3y4
2

これらの必要なところを、xやyについて積分すれば良さそうである。
上記の画像をHTML5+Javascriptで描くときも、この式を利用しています。
xが-1から1までは、y≧0だけを積分して2倍すればよく、x>1については、yが-1から1まで積分して、2つの積分でダブってしまうところを差し引きするとして、
2∫[-1,1] √((x+√(4-3x^2))/2) dx + ∫[-1,1] (y^2+√(4-3y^4))/2 dy - 2
をコピペして、貼り付けて計算させると、
3.7567789431374483333546657135898144368022828368288141408752853516
という値を返す。

ということで、赤い陰関数の方が面積が大きいということが解りました。

x2+xy+y2=1 … (青)

4
1
0
-x+4-3y2
2
 dx-2+2
1
0
-x+4-3y2
2
 dx

≒3.6275987284684357011881565152843114645681324961854811511397698707


x2-xy2+y4=1 … (赤)

2
1
-1
x+4-3x2
2
 dx
1
-1
y24-3y4
2
 dy-2

≒3.7567789431374483333546657135898144368022828368288141408752853516

という立式が出来ました。

もっと簡潔な式も立式できるかとは思いますので、そちらは皆さんにおまかせしましょうかね。

因みに、私の友人は、


∫[-(4/3)^(1/2),(4/3)^(1/2)] √(4-3y^2) dy

4/3
4/3
4-3y2 dy=

3



∫[-(4/3)^(1/4),(4/3)^(1/4)] √(4-3y^4) dy

44/3
44/3
4-3y4 dy=
2Γ(5/4)
43Γ(7/4)


とスッキリした形で立式していましたので、これが模範解答なのでしょう。

自分は積分に苦手意識があるのと、高校卒業してからほとんどやることが無かったということで、微分積分に関しては、かなり頭が鈍っているということなんでしょうね。

因みに、HTML5+Javascriptの陰関数を描いている部分は、

var x, y;
var w=300;
var d=0.001;

ctx.lineCap = 'round';
ctx.lineJoin = 'round';
ctx.lineWidth = 3;

ctx.strokeStyle = 'rgba(255,0,0,0.8)';
ctx.beginPath();
ctx.moveTo(400-w,400);
for (x=-1; x<1; x+=d) {
    ctx.lineTo(400+w*x,400-w*Math.sqrt((x+Math.sqrt(4-3*x*x))/2));
}
for (y=1; y>-1; y-=d) {
    ctx.lineTo(400+w*(y*y+Math.sqrt(4-3*y*y*y*y))/2,400-w*y);
}
for (x=1; x>-1; x-=d) {
    ctx.lineTo(400+w*x,400+w*Math.sqrt((x+Math.sqrt(4-3*x*x))/2));
}
ctx.closePath();
ctx.stroke();

ctx.strokeStyle = 'rgba(0,0,255,0.8)';
ctx.beginPath();
ctx.moveTo(400-w,400-w);
for (x=-1; x<1; x+=d) {
    ctx.lineTo(400+w*x,400-w*(-x+Math.sqrt(4-3*x*x))/2);
}
for (y=0; y>-1; y-=d) {
    ctx.lineTo(400+w*(-y+Math.sqrt(4-3*y*y))/2,400-w*y);
}
for (x=1; x>-1; x-=d) {
    ctx.lineTo(400+w*x,400-w*(-x-Math.sqrt(4-3*x*x))/2);
}
for (y=0; y<1; y+=d) {
    ctx.lineTo(400+w*(-y-Math.sqrt(4-3*y*y))/2,400-w*y);
}
ctx.closePath();
ctx.stroke();

こんな感じです。

図を描くことを先に考えてしまったので、描けてしまったことで、面積を求めるという方向性も、これに準じてしまったということでしょうかね。


ではでは

 

 


Viewing all articles
Browse latest Browse all 5376

Trending Articles