본문 바로가기

수능문제풀이

2025 수능 수학영역 풀이 - 기하와 벡터 29 (홀수형)

이것도 이전과 마찬가지로, 정답의 상황을 그려주고 마무리하면 되겠다. 풀이과정에는 특별한 지식이 필요하지 않다.

기하와 벡터 문제 29번.

두 초점이 $F(c,0), F'(-c, 0) ( c > 0)$인 쌍곡선 $x^2 - \frac{y^2}{35}=1$이 있다. 이 쌍곡선 위에 있는 제 1사분면 위의 점 $P$에 대하여 직선 $PF'$ 위에 $\overline{PQ} = \overline{PF}$인 점 $Q$를 잡자. 삼각형 $QF'F$와 삼각형 $F'FP$가 서로 닮음 일 때, 삼각형 $PFQ$ 의 넓이는 $\frac{q}{p} \sqrt{5}$ 이다. $p+q$의 값을 구하시오. (단, $\overline{PF' } < \overline{QF'} $ 이고, $p$와 $q$ 는 서로소인 자연수이다.)

Code
using LinearAlgebra
using Roots

# 기벡 하는 사람들은 초점의 좌표는 바로 구하겠죠
c = 6
Fp = [-c, 0]
F = [c, 0]

function ABC_angle(A::Vector, B::Vector, C::Vector)
    AB = norm(A - B)
    BC = norm(B - C)
    CA = norm(C - A)

    acos((AB^2 + BC^2 - CA^2)/(2*AB*BC))
end

function area_triangle(A::Vector, B::Vector, C::Vector)
    (x1, y1) = A
    (x2, y2) = B
    (x3, y3) = C
    0.5*abs(x1*(y2 - y3) + x2*(y3 - y1) + x3*(y1 - y2))
end

gridsize = 100000
Px_range = [1+5*i/gridsize for i in 1:gridsize]
Px_to_P(x) = [x, sqrt((x^2 - 1)*35)]
Ps = Px_to_P.(Px_range)


ansP = undef
ansQ = undef

for P in Ps
    PF = norm(F - P)
    FpP_eq(x) = (P[2] - Fp[2])/(P[1] - Fp[1])*(x + c)
    Q(x) = [x, FpP_eq(x)]
    h = find_zero(x -> norm(Q(x) - P) - PF, (1.0, 100.0))
    Q_ans = Q(h)
    angle_FpPF = ABC_angle(Fp, P, F)
    angle_FpFQ = ABC_angle(Fp, F, Q_ans)
    if abs(angle_FpPF - angle_FpFQ) < 0.0001
        ansP = P
        ansQ = Q_ans
        println("q/p=", area_triangle(P, F, Q_ans) / sqrt(5))
    end
end
Output
q/p=10.88819752327801
q/p=10.889234566004859
설명
  • 공통문제 14번에서 사용했던 삼각형의 넓이 공식 area_triangle은 그대로 사용했다
  • 점 P의 집합에 대해서, 문제의 조건 $\overline{PQ} = \overline{PF}$를 만족하는 점 $Q$를 구하되, 뒤의 괄호의 문제의 조건에 보면, $\overline{PF'} < \overline{QF'}$ 이므로, Q는 해를 여유롭게 $x > 1.0$ 정도에서 구하고 있다.
  • $QF'F$와 $FF'P$가 닮음이려면 각 $F'PF$와 각 $F'FQ$가 같아야 하고, 이를 정답이 되는 조건으로 뽑고 있다. 각을 구할 때에는 세 점의 좌표를 알고있으므로, 코사인 제2법칙을 통해서 구한다
  • 정답이 되는 점에서 $q/p$를 출력하면, 위와 같이 $10.889 \approx 98/9$ 이므로 정답은 $107$이 된다

마지막으로 정답이 되는 상황의 그림을 그리고 마무리 하겠다. 정답이 되는 $P$와 $Q$는 각각 $P_{ans}$, $Q_{ans}$로 마킹해 두었고, 쌍곡선을 함께 그려두었다.

Plotting code
using Plots

Psx = (x -> x[1]).(Ps)
Psy = (x -> x[2]).(Ps)
Pnegsx = (x -> -x[1]).(Ps)

function plot_line(A, B; kwargs...)
    plot([A[1], B[1]], [A[2], B[2]]; kwargs...)
end

function plot_line!(A, B; kwargs...)
    plot!([A[1], B[1]], [A[2], B[2]]; kwargs...)
end

plot_line(Fp, F; primary=false, linewidth=5)
plot_line!(Fp, ansQ; primary=false, linewidth=5)
plot_line!(ansP, F; primary=false, linewidth=5)
plot_line!(F, ansQ; primary=false, linewidth=5)
scatter!(Psx, Psy; xlims=(-10, 10), ylims=(-1, 20), size=(500, 500), markersize=1, label="P")
scatter!(Pnegsx, Psy; xlims=(-10, 10), ylims=(-1, 20), size=(500, 500), markersize=1, primary=false)
scatter!([Fp[1]], [Fp[2]]; markersize=10, markershape=:star5, label="F'")
scatter!([F[1]], [F[2]]; markersize=10, markershape=:star5, label="F")
scatter!([ansP[1]], [ansP[2]]; markersize=10, markershape=:star5, label="P_ans")
scatter!([ansQ[1]], [ansQ[2]]; markersize=10, markershape=:star5, label="Q_ans")
Plotting Output

25수능 기하와벡터 29번 정답상황

반응형