裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

数学検定 過去問題 準2級(高校1年程度) 問題3

2021年07月31日 | ブログラミング

数学検定 過去問題 準2級(高校1年程度) 問題3
https://www.su-gaku.net/suken/support/past_questions/

〔準2級〕1次:計算技能検定

問題3. 次の問いに答えなさい。

(11) 次の 2 次不等式を解きなさい。

using SymPy
@syms x
ex11 = Lt(x^2 + 6x -16, 0)
string(ex11)          # x^2 + 6*x - 16 < 0
solve(ex11) |> string # (-8 < x) & (x < 2) つまり -8 < x < 2 ということ。

(12) 下の図において,x の値を求めなさい。ただし,AB と CD は円の弦です。

方冪の定理

using SymPy
@syms x
ex12 = Eq(3*12, 8x)
solve(ex12) # 9/2

(13) 2 進法で表された数 11010(2) を 10 進法で表しなさい。

これは,SymPy はいらない。

Int(0b11010) # 26
parse(Int, "0b11010") # 26

(14) 0° ≦ θ ≦ 180° で cosθ = -2/3 のとき,次の問いに答えなさい。
    a. sinθ の値を求めなさい。
    b. tanθ の値を求めなさい。

cosθ = -2/3 より,下図を描く。
using Plots
plot([0, -2, -2, 0], [0, sqrt(5), 0, 0], aspect_ratio=1, size=(300, 300))


斜辺の長さ = 3,底辺の長さ = -2,高さ = √5 である。
水平線から斜辺までの反時計回りの角度が θ である。
ちなみに θ = acos(-2/3) * 180 / π ≒ 131.81° である。
定義により,
sinθ = √5 / 3
tanθ = -√5 / 2

sin(acos(-2/3)) - sqrt(5)/3 # -1.1102230246251565e-16
tan(acos(-2/3)) + sqrt(5)/2 #  4.440892098500626e-16

(15) 2 つの集合 A = {1, 3, 5, 7, 9}, B = {2, 3, 5, 7, 11} について,次の問いに答えなさい。
    a. 集合 A ∩ B を要素を書き並べる方法で表しなさい。
    b. 集合 A ∪ B の要素の個数を求めなさい。

これも SymPy はいらない。

A = Set([1, 3, 5, 7, 9])
B = Set([2, 3, 5, 7, 11])

a.

intersect(A, B) # 5 7 3

なお,Julia の集合型は要素は順不同である。これで困るときは以下のようにする。

sort([x for x in intersect(A, B)]) # 3, 5, 7

b.

length(union(A, B)) # 7

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 準2級(高校1年程度) 問題2

2021年07月31日 | ブログラミング

数学検定 過去問題 準2級(高校1年程度) 問題2
https://www.su-gaku.net/suken/support/past_questions/

〔準2級〕1次:計算技能検定

問題2. 次の問いに答えなさい。

(6) 下の図のように,AB を直径とする円 O と,円周上の点 C があります。∠CAB = 57° のとき,∠CBA の大きさを求めなさい。

円周角 ∠ACB = 90° なので,三角形の内角の和が 180°であることから,求める角度は 180° - 90° - 57° = 33°

(7) 右の図の長方形について,対角線の長さを求めなさい。

sqrt() ではなく,sympy.sqrt() を使うこと。

using Sympy
sympy.sqrt(3^2 + 5^2) |> string # sqrt(34)

(8) 次の式を展開して計算しなさい。

using SymPy
@syms x, y
ex8 = (x - 2y) * (x + y)^2
expand(ex8) |> string # x^3 - 3*x*y^2 - 2*y^3

(9) 次の式を因数分解しなさい。

using SymPy
@syms x
ex9 = 4x^2 + 7x - 2
factor(ex9) |> string # (x + 2)*(4*x - 1)

(10) 次の計算をしなさい。

using SymPy
ex10 = 6/(sympy.sqrt(10) + 2) - sympy.sqrt(10)
ex10 = together(ex10)
string(ex10) # (-sqrt(10)*(2 + sqrt(10)) + 6)/(2 + sqrt(10))
fac = 2 - sympy.sqrt(10)
num = expand(numer(ex10) * fac) # 12
den = expand(denom(ex10) * fac) # -6
num / den # -2

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 準2級(高校1年程度) 問題1

2021年07月31日 | ブログラミング

数学検定 過去問題 準2級(高校1年程度) 問題1
https://www.su-gaku.net/suken/support/past_questions/

〔準2級〕1次:計算技能検定

問題1. 次の問いに答えなさい。

(1) 次の式を展開して計算しなさい。

using SymPy
@syms x
ex1 = (x - 3)^2 - x*(x - 4)
expand(ex1) # 9-2x

(2) 次の式を因数分解しなさい。

using SymPy
@syms x y
ex2 = 16x^2 - 25y^2
factor(ex2) # (4*x - 5*y)*(4*x + 5*y)

(3) 次の計算をしなさい。答えが分数になるときは,分母を有理化して答えなさい。

単純にやると,数値解になってしまう。

sqrt(18) + 8 / sqrt(2) # 9.899494936611664

sqrt(Sym(18)) + 8 / sqrt(Sym(2)) |>string # 7*sqrt(2)

または,SymPy の sqrt を使うとよい。

using SymPy
sympy.sqrt(18) + 8 / sympy.sqrt(2) |>string # 7*sqrt(2)

そうでない場合は,文字式にして自分で数式変形し,最後に数値を代入する。しかし,これはお勧めできない。

@syms a b c
ex2 = sqrt(a) + b / sqrt(c)
ex3 = expand((sqrt(a)*sqrt(c) + b)*sqrt(c)) / (sqrt(c) * sqrt(c))
string(ex3) # (sqrt(a)*c + b*sqrt(c))/c
ex3(a => 18, b => 8, c => 2) |> string # 7*sqrt(2)

(4) 次の方程式を解きなさい。

using SymPy
@syms x
solve(x^2 - 48) |> string # -4*sqrt(3), 4*sqrt(3)

(5) y は x の 2 乗に比例し,x = 4 のとき y = -8 です。このとき,y を x を用いて表しなさい。

using SymPy
@syms a x y
ex5 = Eq(y, a * x^2)
string(ex5)                    # Eq(y, a*x^2)
ex5(x => 4, y => -8) |> string # Eq(-8, 16*a)
solve(Eq(-8, 16*a)) |> string  # -1/2. a について解いた

y = - x^2 / 2

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題15. 導関数,微分係数

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題15. 導関数,微分係数
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題15. 関数 f(x)= x^3 - 5x + 7 について,次の問いに答えなさい。
    (1) 導関数 f'(x) を求めなさい。
    (2) 微分係数 f'(2) を求めなさい。

using SymPy
@syms x
f = x^3 - 5x + 7
diff(f) |> string # 3*x^2 - 5
diff(f)(x => 2)   # 7

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題14. 等差数列

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題14. 等差数列
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題14. 第 3 項が 1,第 10 項が 22 である等差数列について,次の問いに答えなさい。
    (1) 初項を求めなさい。
    (2) 公差を求めなさい。

# a[n] = a[1] + 公差 * (n - 1)
# a[3] = a[1] + 公差 * 2 = 1
# a[10] = a[1] + 公差 * 9 = 22

using SymPy
@syms 初項, 公差

eq1 = Eq(初項 + 2公差, 1)
eq2 = Eq(初項 + 9公差, 22)
solve([eq1, eq2]) |> string # Dict{Any, Any}(公差 => 3, 初項 => -5)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題13. 内積

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題13. 内積
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題13. 2 つのベクトル a, b のなす角が 60° で |a| = 6, |b| = 7 のとき,内積 a・b を求めなさい。

単に cos() だと,
6 * 7 * cos(π/3) # 21.000000000000004
のように計算誤差が出る。
原因は π/3 が数値計算されるためである。
6 * 7 * cos(π/Sym(3)) # 21
とすれば,計算誤差はない。

あるいは SymPy の cos() を使うようにしても良い。
6 * 7 * sympy.cos(π/3) # 21.0
結果は浮動小数点数になるが,誤差なく計算される。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題12. 三角関数

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題12. 三角関数
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題12. 0 ≦ θ < 2π のとき,次の方程式を満たす θ の値を求めなさい。

using SymPy
@syms θ
solve(-2sin(θ) + 1) |> string # pi/6, 5*pi/6

蛇足

sin(θ) = 1/2
単位円を思い浮かべて
θ = (30°, 150°) = (π/6, 5π/6)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題11. 対数

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題11. 対数
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題11. 次の計算をしなさい。

log10(1/36) + 2log10(6/5) - log10(4) # -2.0
log10(1) - log10(36)             + 2log10(6)             - 2log10(5) - log10(4)
log10(1) - 2log10(2) - 2log10(3) + 2log10(2) + 2log10(3) - 2log10(5) - 2log10(2)
- 2log10(5) - 2log10(2)
-2log10(5 * 2)
-2log10(10)
-2

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題10. 内分点

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題10. 内分点
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題10. xy 平面上の 2 点 A(-2, 0),B(4, -3) を結んでできる線分を 2:1 に内分する点 P の座標を求めなさい。

これは SymPy を使わなくてもできる。

x1, y1, x2, y2 = -2, 0, 4, -3
x1 + (x2-x1)*2/3, y1 + (y2-y1)*2/3 # (2.0, -2.0)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題9. 整式の剰余

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題9. 整式の剰余
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題9. 式 x^4 + 3x^2 + 3x - 2 を x^2 - 2x + 2 で割ったときの余りを求めなさい。

using SymPy
@syms x, b, c

商はたかだか 2 次式で,かつ 2 次の項の係数は 1 なので (x^2 +b*x + c) と表される。
したがって,剰余は原式と(除式と商)の差である。

expr = (x^4 + 3x^2 + 3x - 2) - (x^2 - 2x + 2)*(x^2 +b*x + c)

x の次数でまとめると,

expr2 = collect(expand(expr), x); string(expr2)
# -2*c + x^3*(2 - b) + x^2*(2*b - c + 1) + x*(-2*b + 2*c + 3) - 2

たかだか 2 次式なので,x^3 の係数 2 - b は 0,つまり b = 2。
また,x^2 の係数 2*b - c + 1 も 0 なので,c = 5。
これを代入して

expr2(b => 2, c => 5) # 9x - 12

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題8. 計算

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題8. 計算
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題8. 次の計算をしなさい。

using SymPy
@syms x
together((x + 1) / (x + 2) - (x + 2) / (x + 3)) |> string # ((x + 1)*(x + 3) - (x + 2)^2)/((x + 2)*(x + 3))
simplify((x + 1) / (x + 2) - (x + 2) / (x + 3)) |> string # -1/(x^2 + 5*x + 6)
factor(simplify((x + 1) / (x + 2) - (x + 2) / (x + 3))) |> string # -1/((x + 2)*(x + 3))

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題7. 2進表記の10進数

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題7. 2進表記の10進数
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題7.  2 進法で表された数 1011010(2) を 10 進法で表しなさい。

Int(0b1011010) # 90

プログラムで

s = 0
for (i, bit) in enumerate(reverse("1011010")) # i is a counter starting at 1
    s += 2^(i-1) * parse(Int, bit)
end
print(s) # 90

1 行で

sum(2^(i-1) * parse(Int, bit) for (i, bit) in enumerate(reverse("1011010"))) # 90

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題6. 確率

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題6. 確率
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題6. 個のさいころを同時に振るとき,3個とも異なる目が出る確率を求めなさい。ただし,さいころの目は1から6まであり,どの目も出る確率は等しいものとします。

6*5*4 // 6^3 # 5 // 9

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題5. 三角関数

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題5. 三角関数
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題5. 0° ≦ θ ≦ 180° とします。tanθ = 1/2 のとき,cosθ の値を求めなさい。

2/sqrt(5)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

数学検定 過去問題 2級(高校2年程度) 問題4. 関数の最小値

2021年07月31日 | ブログラミング

数学検定 過去問題 2級(高校2年程度) 問題4. 関数の最小値
https://www.su-gaku.net/suken/support/past_questions/

〔2級〕1次:計算技能検定

問題4. 2 次関数 y = x^2 + 4x + a の最小値が 1 となるように, 定数 a の値を定めなさい。

using SymPy
@syms x, a
eq1 = (x + 2)^2 - 4 + a
solve(Eq(eq1(x => -2), 1)) # 5

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村