数学のブログ

平方、和、積、絶対値、シュワルツの不等式

代数への出発 (新装版 数学入門シリーズ) (松坂 和夫(著)、岩波書店)の第7章(不等式)の練習問題17.の解答を求めてみる。

(a2+b2+c2)((a')2+(b')2+(c')2)(aa'+bb'+cc')2
(aa'+bb'+cc')21
|aa'+bb'+cc'|1

コード

#!/usr/bin/env python3
import random
from unittest import TestCase, main
from sympy import sqrt


class Test(TestCase):
    def test(self):
        for _ in range(10):
            a = random.random() / 2
            b = random.random() / 2
            c = random.choice([-1, 1]) * sqrt(1 - a ** 2 - b ** 2)
            a1 = random.random() / 2
            b1 = random.random() / 2
            c1 = random.choice([-1, 1]) * sqrt(1 - a1 ** 2 - b1 ** 2)
            self.assertLessEqual(abs(a * a1 + b * b1 + c * c1), 1)


if __name__ == "__main__":
    main()

入出力結果

% ./sample17.py -v
test (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.033s

OK
%