公文式の問題をPythonでやる(I教材)
家にある公文式の教材をSympyで解いてみる
I.22 平方根
の値を求めよ
>>> math.sqrt(361) 19.0
I.24 平方根
の値を求めよ
>>> from fractions import Fraction >>> sympy.sqrt(Fraction(1,9)) 1/3
I.29 平方根
の値を求めよ
>>> sympy.sqrt(60) 2*sqrt(15) >>> pprint(sympy.sqrt(60)) 2?√15
I.32 平方根
を計算せよ
>>> sympy.sqrt(6)*sympy.sqrt(12) 6*sqrt(2) >>> numpy.sqrt(6)*numpy.sqrt(12) 8.48528137423857
I.34 平方根
を計算せよ
この問題はnumpyではダメなことが分かる(こういう計算じゃない)
>>> sympy.sqrt(12) + sympy.sqrt(27) 5*sqrt(3) >>> numpy.sqrt(12) + numpy.sqrt(27) 8.660254037844386
I.37 平方根
を計算せよ
>>> from sympy import expand >>> expand((2*sympy.sqrt(3)+4)*(3*sympy.sqrt(3)-2)) 10 + 8*sqrt(3)
I.39 平方根
を計算せよ
>>> from sympy import expand >>> expand((sympy.sqrt(7) - sympy.sqrt(2))**2) 9 - 2*sqrt(14)
I.42 平方根
の分母を有理化せよ
>>> from sympy import expand >>> expand(3 / sympy.sqrt(5)) 3*sqrt(5)/5
I.47 平方根
の分母を有理化せよ
>>> from sympy import expand >>> expand((2*sympy.sqrt(3) + 3*sympy.sqrt(2)) / sympy.sqrt(6)) sqrt(2) + sqrt(3)
I.49 平方根
, のとき次の式の値を計算せよ
>>> expr = x**2 + y**2 >>> expr.subs({x:3+sympy.sqrt(3), y:3-sympy.sqrt(3)}).expand() 24
I.51 二次方程式
を解け
>>> from sympy import solve >>> solve(x**2+2*x-15, x, dict=True) [{x: -5}, {x: 3}]
I.76 二次方程式
をxについて解け
>>> from sympy import solve >>> solve(a*x**2 + b*x + c, x, dict=True) [{x: (-b - sqrt(-4*a*c + b**2))/(2*a)}, {x: (-b + sqrt(-4*a*c + b**2))/(2*a)}]
I.82 不等式
を解け
>>> solve(2*x>3) (3/2 < x) & (x < oo) >>> expr = solve(2*x>3) >>> expr.subs(x,1) False >>> expr.subs(x,2) True
I.95 不等式
連立不等式を解け
>>> solve((6*x+5 >= 2*x-7, 2*x-3 >= 5*x-9)) (-3 <= x) & (x <= 2)
I.101 一次関数とグラフ
のグラフをかけ
y = x/2 + 1 p1 = sympy.plot(y, (x, -5, 5))
I.141 二次関数とグラフ
のグラフをかけ
from sympy import Symbol, plot x = Symbol('x') sympy.plot(x**2)
I.168 二次関数とグラフ
次の2つのグラフの交点の座標を求めよ
y1 = x**2 - 5*x + 3 y2 = 0 plot(y1, y2) solve((x**2-5*x+3, 0))