Processing math: 100%
본문 바로가기

수능문제풀이

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

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

기하와 벡터 문제 29번.

두 초점이 F(c,0),F(c,0)(c>0)인 쌍곡선 x2y235=1이 있다. 이 쌍곡선 위에 있는 제 1사분면 위의 점 P에 대하여 직선 PF 위에 ¯PQ=¯PF인 점 Q를 잡자. 삼각형 QFF와 삼각형 FFP가 서로 닮음 일 때, 삼각형 PFQ 의 넓이는 qp5 이다. p+q의 값을 구하시오. (단, ¯PF<¯QF 이고, pq 는 서로소인 자연수이다.)

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의 집합에 대해서, 문제의 조건 ¯PQ=¯PF를 만족하는 점 Q를 구하되, 뒤의 괄호의 문제의 조건에 보면, ¯PF<¯QF 이므로, Q는 해를 여유롭게 x>1.0 정도에서 구하고 있다.
  • QFFFFP가 닮음이려면 각 FPF와 각 FFQ가 같아야 하고, 이를 정답이 되는 조건으로 뽑고 있다. 각을 구할 때에는 세 점의 좌표를 알고있으므로, 코사인 제2법칙을 통해서 구한다
  • 정답이 되는 점에서 q/p를 출력하면, 위와 같이 10.88998/9 이므로 정답은 107이 된다

마지막으로 정답이 되는 상황의 그림을 그리고 마무리 하겠다. 정답이 되는 PQ는 각각 Pans, Qans로 마킹해 두었고, 쌍곡선을 함께 그려두었다.

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번 정답상황

반응형