1: 2015-06-08 (月) 22:56:16 osinko |
2: 2015-06-09 (火) 01:07:50 osinko |
| TITLE:相加平均と調和平均の関係 | | TITLE:相加平均と調和平均の関係 |
- | **相加平均と調和平均の関係 [#z1470a2d] | + | **相加相乗平均の関係 [#z1470a2d] |
| + | #jsmath |
| + | 相加相乗平均の関係は以下の状態で変化しない |
| | | |
- | 相加平均と調和平均の関係は | + | \(\displaystyle\ \frac { x+y }{ 2 } \ge \sqrt { xy } \quad \quad x,yは0以外の実数。x=yの時、等号が成立する\) |
| + | |
| + | この関係は微分を利用して[[平方根を求める等の漸化式を作る際>微積分と物理/微分]]に非常に重要となる考え方な為、疑いもなく理解しておく必要がある |
| + | 従って実際に、その関係が成立する事を検証して確かめておく |
| + | |
| + | #hr |
| + | 単純なケースから確かめていく |
| + | |
| + | ***① \({ r }^{ 2 }>0\quad \quad rが0以外の実数である場合、この式は成立するか?\) [#ydd50ae9] |
| + | |
| + | |例||| |
| + | |\(r=2\)|\(4>0\)|成立| |
| + | |\(r=-2\)|\({ \left( -2 \right) }^{ 2 }>0\quad \rightarrow \quad 4>0\)|成立| |
| + | |
| + | ***② \({ \left( a-b \right) }^{ 2 }>0 \quad \quad aとbが0以外の実数である場合、この式は成立するか?\) [#d5ed2e5a] |
| + | |
| + | アバウトな検証用コードを書く。条件を満たすランダムなa,bの値を50回生成して式を検証 |
| + | |
| + | #code(csharp){{ |
| + | using UnityEngine; |
| + | using System.Collections; |
| + | |
| + | public class Numbers4 : MonoBehaviour |
| + | { |
| + | void Start () |
| + | { |
| + | float a, b, left; |
| + | bool success = true; |
| + | |
| + | for (int i = 0; i < 50; i++) { |
| + | a = 0; |
| + | b = 0; |
| + | GenerateRandom (ref a, ref b); |
| + | left = Mathf.Pow ((a - b), 2); |
| + | print (string.Format ("{0} : {1} : {2}", a, b, left)); |
| + | if (!(left > 0)) { |
| + | print ("成立しない!"); |
| + | success = false; |
| + | } |
| + | } |
| + | if (success) { |
| + | print ("成立する"); |
| + | } |
| + | } |
| + | |
| + | static void GenerateRandom (ref float a, ref float b) |
| + | { |
| + | while (a == 0 || b == 0) { |
| + | a = Random.Range (-100f, 100f); |
| + | b = Random.Range (-100f, 100f); |
| + | } |
| + | } |
| + | } |
| + | }} |
| + | |
| + | 結果。「aとbが0以外の実数であれば式は成立する」事が確認できた |
| + | |
| + | ***③\({ { a }^{ 2 }-2ab+{ b }^{ 2 } }>0\quad \quad \quad aとbが0以外の実数である場合、この式は成立するか?\) [#e886e600] |
| + | |
| + | ③の式は②を展開したものになる。理屈で考えると成立しないとおかしいが一応検証する |
| + | ②のコードの15行目を |
| + | |
| + | > left = (a * a) - 2f * a * b + (b * b); |
| + | |
| + | とする。結果。成立している事が確認できる |
| + | |
| + | ***④ \({ { a }^{ 2 }+{ b }^{ 2 } }>2ab\quad \quad \quad aとbが0以外の実数である場合、この式は成立するか?\)[#a611d67e] |
| + | |
| + | ③の式から2abを右辺に移項させる。この時、左辺と右辺、不等号の関係が成立するかという意味の大きな変化がある。検証してみよう |
| + | コードを少し書き換えた。8、15~18行目を書き換えている |
| + | |
| + | #code(csharp){{ |
| + | using UnityEngine; |
| + | using System.Collections; |
| + | |
| + | public class Numbers4 : MonoBehaviour |
| + | { |
| + | void Start () |
| + | { |
| + | float a, b, left, right; |
| + | bool success = true; |
| + | |
| + | for (int i = 0; i < 50; i++) { |
| + | a = 0; |
| + | b = 0; |
| + | GenerateRandom (ref a, ref b); |
| + | left = (a * a) + (b * b); |
| + | right = - 2f * a * b; |
| + | print (string.Format ("a={0} : b={1} : {2} > {3}", a, b, left, right)); |
| + | if (!(left > right)) { |
| + | print ("成立しない!"); |
| + | success = false; |
| + | } |
| + | } |
| + | if (success) { |
| + | print ("成立する"); |
| + | } |
| + | } |
| + | |
| + | static void GenerateRandom (ref float a, ref float b) |
| + | { |
| + | while (a == 0 || b == 0) { |
| + | a = Random.Range (-100f, 100f); |
| + | b = Random.Range (-100f, 100f); |
| + | } |
| + | } |
| + | } |
| + | }} |
| + | |
| + | 結果。成立する事が確認できた。不等号を挟んだ移項は成立する。単純な移項の場合、不等号の向きが変わることはない |
| + | ちなみに負の数を両辺に掛けたり割ったりするときに不等号の向きが変わる |
| + | |
| + | 例: |