0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

正方形751の面積の問題(名大数学 参考より)「中学生にもわかる名古屋大学入試問題」をChatGPTとsympyとFreeCADでやってみたい。

Last updated at Posted at 2024-08-10

・正確に作図しました。点Pを点Eと表示していません。
・???ページの最後に、不思議な類題があります。
 ??? 高校入試 直線5 6 13の離れの問題

オリジナル

・名古屋大学の問題文はテキストのみ

名大文系 1963前期 3(理系前期2と同じ)
< 名古屋大学 数学入試問題過去問 64年分(現在前期のみ)様
http://server-test.net/math/php.php?name=05_nagoya&v1=0&v2=1963&v3=1&v4=3&y=1963&n=2

・YouTube

YUUU0123 様 (0:00〜:7:44)

中学生にもわかる名古屋大学入試問題

・大学入試数学問題集成 様>未登録

1989年度より登録
https://mathexamtest.web.fc2.com/daigakubetumj/10481index.html#y1997

ChatGPT-3.5先生へ

正方形 ABCD とその内部の 1 点 P がある。線分 AP,BP,CP の長さがそれぞれ 7,5,1 であるとき,この正方形の面積を求めよ。

ChatGPT (以下抜粋)
User

sympyで
import sympy as sp

# シンボルの定義
x, y, a = sp.symbols('x y a')

# 方程式の定義
eq1 = sp.Eq(x**2 + y**2, 49)  # AP = 7
eq2 = sp.Eq((x - a)**2 + y**2, 25)  # BP = 5
eq3 = sp.Eq((x - a)**2 + (y - a)**2, 1)  # CP = 1

# 方程式を解く
solutions = sp.solve([eq1, eq2, eq3], (x, y, a))

# 解の表示
solutions

User

sympyの円の交点計算で

ChatGPT

import sympy as sp

# シンボルの定義
x, y, a = sp.symbols('x y a')

# 円の方程式の定義
circle1 = sp.Eq(x**2 + y**2, 49)  # AP = 7
circle2 = sp.Eq((x - a)**2 + y**2, 25)  # BP = 5
circle3 = sp.Eq((x - a)**2 + (y - a)**2, 1)  # CP = 1

# 円の交点を求める
intersection_points = sp.solve([circle1, circle2, circle3], (x, y, a))

# 解の表示
intersection_points
では、実際にPythonで実行してみましょう。
間違っていませんか

ChatGPT

確認ありがとうございます。解答を見直しましょう。

sympyで

ver0.1 距離で連立方程式。
・ChatGPTと同じ
The Euclidean distance between self and another GeometricEntity.
https://docs.sympy.org/latest/modules/geometry/points.html#sympy.geometry.point.Point.distance

# ver0.1 距離で連立方程式。 
from sympy import *
var('d,Px,Py',real=True,poitive=True)
A,B,C,P=map(Point,[(0,d),(0,0),(d,0),(Px,Py)])
sol=solve([Eq(P.distance(A),7),
           Eq(P.distance(B),5),
           Eq(P.distance(C),1)
          ],[d,Px,Py])
print("#",sol)
print("#",sol[3])
print("#",sol[3][0])
print("#",sol[3][0]**2)
# [(-4*sqrt(2), -7*sqrt(2)/2, -sqrt(2)/2), (-3*sqrt(2), -7*sqrt(2)/2, sqrt(2)/2), (3*sqrt(2), 7*sqrt(2)/2, -sqrt(2)/2), (4*sqrt(2), 7*sqrt(2)/2, sqrt(2)/2)]
# (4*sqrt(2), 7*sqrt(2)/2, sqrt(2)/2)
# 4*sqrt(2)
# 32

ver0.2 できませんでした。???これは調子にのりすぎ。終了しません。
・変数で計算。

# ver0.2 できませんでした。変数で計算。???これは調子にのりすぎ。終了しません。 
from sympy import *
var('d,Px,Py' ,real=True,poitive=True)
var('PA,PB,PC',real=True,poitive=True)
A,B,C,P=map(Point,[(0,d),(0,0),(d,0),(Px,Py)])
sol=solve([Eq(P.distance(A),PA),
           Eq(P.distance(B),PB),
           Eq(P.distance(C),PC)
          ],[d,Px,Py])
print("#",sol)
print("#",sol[3])
print("#",sol[3][0])

ver0.3 円と円の交点計算。

# ver0.3 円と円の交点計算。
from sympy import *
var('d',real=True,poitive=True)
A,B,C=map(Point,[(0,d),(0,0),(d,0)])
P1 =Circle(A,7).intersection(Circle(B,5))[1]
P2 =Circle(B,5).intersection(Circle(C,1))[1]
sol=solve([Eq(P1.x,P2.x),Eq(P1.y,P2.y)],[d])
print("#",sol)
print("#",sol[1][0])
print("#",sol[1][0]**2)
print()
rep={d:sol[1][0]}
A=A         .subs(rep)
B=B         .subs(rep)
C=C         .subs(rep)
D=Point(d,d).subs(rep)
P=P1        .subs(rep)
print("#",           P.distance(A) .simplify())
print("#",           P.distance(B) .simplify())
print("#",sqrtdenest(P.distance(C)).simplify())
# [(-4*sqrt(2),), (4*sqrt(2),)]
# 4*sqrt(2)
# 32

# 7
# 5
# 1

FreeCADのマクロで作図

・計算部分は、Ver.0.1 の コピー貼り付けです。

import FreeCAD
import Part
import DraftTools
import Draft
import Mesh
############################################################################
# 名古屋大学
# ver0.1 距離で連立方程式。 
from sympy import *
var('d,Px,Py',real=True,poitive=True)
A,B,C,P=map(Point,[(0,d),(0,0),(d,0),(Px,Py)])
sol=solve([Eq(P.distance(A),7),
           Eq(P.distance(B),5),
           Eq(P.distance(C),1)
          ],[d,Px,Py])
print("#",sol)
print("#",sol[3])
print("#",sol[3][0])
print("#",sol[3][0]**2)
############################################################################
rep={d:sol[3][0],Px:sol[3][1],Py:sol[3][2]}
A=A         .subs(rep)
B=B         .subs(rep)
C=C         .subs(rep)
D=Point(d,d).subs(rep)
P=P         .subs(rep)
############################################################################
# 3D作図 z=0 XY平面に作図しました。
############################################################################
def myXYZ2Txt_2D(A):
    return '(' + str(A.x) + ',' + str(A.y) +  ')'
    #return ""
def myTxtXYZ_2D(A,myWedgei):
    P5x=float(A.x)
    P5y=float(A.y)
    P5z=0.0
    p5 = FreeCAD.Vector(P5x, P5y, P5z)
    myText = Draft.makeText(myWedgei, p5)
    myText.Label = myWedgei
    FreeCADGui.ActiveDocument.ActiveObject.FontSize = '0.5 mm'
 #  FreeCADGui.ActiveDocument.ActiveObject.FontSize = '1.0 mm'
    return
def myTxtXYZ_S_2D(*xy_tx):
    for i in range(1,int(len(xy_tx)/2)+1):
        myTxtXYZ_2D(xy_tx[2*i-2],xy_tx[2*i-1]+myXYZ2Txt_2D(xy_tx[2*i-2]) )
    return
def myLine_2D(A,B):
    Ax,Ay,Az=float(A.x),float(A.y),0.0
    Bx,By,Bz=float(B.x),float(B.y),0.0
    pl = FreeCAD.Placement()
    pl.Rotation.Q = (0.4247081540122249, 0.17592004639554645, 0.33985110062924484, 0.8204732460821097)
    pl.Base = FreeCAD.Vector(-3.9166066876399563, -2.1670824762243774, 1.7495260956243028)
    points = [FreeCAD.Vector(Ax,Ay,Az), FreeCAD.Vector(Bx,By,Bz)]
    line = Draft.make_wire(points, placement=pl, closed=False, face=True, support=None)
    Draft.autogroup(line)
    return
def myLine_S_2D(*args):
    for i in range(1,len(args)):
        myLine_2D(args[i-1],args[i])
    return
def myLine_C_2D(*args):
    for i in range(1,len(args)):
        myLine_2D(args[i-1],args[i])
    myLine_2D(args[i],args[0])
    return
def myLine_H_2D(*args):
    for i in range(1,len(args)):
        myLine_2D(args[0],args[i])
    return
##################################################################################
myLine_C_2D  (A,B,C,D)  
myLine_S_2D  (A,P,C)  
myLine_S_2D  (B,P)  
myTxtXYZ_S_2D(A,"A",B,"B",C,"C",D,"D")
myTxtXYZ_S_2D(P,"P")
####################################################################################
doc = App.activeDocument()
#App.ActiveDocument.addObject("App::Origin", "Origin")
#App.ActiveDocumen!t.getObject('Origin').Visibility = True
App.ActiveDocument.recompute()
Gui.activeDocument().activeView().viewAxonometric()
Gui.SendMsgToActiveView("ViewFit")

isometric方向?です。
1.png

拡大図
99.png

拡大図(CADの操作で寸法線を追加)
・(青色の)角度寸法は、ニセモノです。Part>計測>角度計算 です。
・角度寸法の表示は、まだ勉強中です。
3.png

sympyで(オリジナル 様の方法を参考に)

>実は、これは一直線になります。
・補助線(鉛直線・水平線)を追加。

from sympy import *
var('p,q,r,s,x',real=True,poitive=True)
eq1A=Eq(p**2+r**2,7**2)
eq1B=Eq(q**2+r**2,x**2)
eq2A=Eq(p**2+s**2,5**2)
eq2B=Eq(q**2+s**2,1**2)
eq1 =Eq(eq1A.lhs-eq1B.lhs,eq1A.rhs-eq1B.rhs)         ;print("#",eq1)
eq2 =Eq(eq2A.lhs-eq2B.lhs,eq2A.rhs-eq2B.rhs)         ;print("#",eq2)
sol =solve(Eq(eq1.lhs-eq2.lhs,eq1.rhs-eq2.rhs),x)[1] ;print("#",sol)
print("#",8*8*Rational(1,2))
# Eq(p**2 - q**2, 49 - x**2)
# Eq(p**2 - q**2, 24)
# 5
# 32

参考

いつもの? sympyの実行環境と 参考のおすすめです。

(テンプレート)

・以下ができたら、助かります。指定と全部です

いつもと違うおすすめです。

・PASSLABO 様
伝説の入試数学 図形問題【超シンプルなのに難問】
>図形の問題のポイント
>図形の世界の標準は三角形

・多数
>名大数学 正方形751の面積の問題

教えて下さい。??? 高校入試 直線5 6 13の離れの問題???

 アドバイスいただけると幸いです。
・直線が90度折れているところを、折らない。直線???
 私は説明できません。 本問題と同じに見えます。

・今さらですけど、私は内部を考慮していませんでした。
 BP=s*BC+t*BA (0<s,t<1)で定義しないとだめでした。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?