・グラフを作図しました。
・standard form と vertex form と factored form
オリジナル
・問題文 テキスト < 大学入試数学問題集成 様
https://mathexamtest.web.fc2.com/2025/202510000/2025100000100mj.html#top-0103
・解答解説 < T氏の数学日記 様
https://mathmathmass.exblog.jp/34422363/
sympyで(オリジナル 様の方法で)
(勉強中)
sympyで(いつもの方法で)
・値の取り出し?を省略しています。申し訳ありません。
sympy.calculus.util.maximum(f, syTbol, domain=Reals)
https://docs.sympy.org/latest/modules/calculus/index.html#sympy.calculus.util.maximum
・ver0.1 >3点座標を入力して、2次関数abcを決定しています。standard form
# ver0.1 >3点座標を入力して、2次関数abcを決定しています。standard form
from sympy import *
import re
var('a') # ここがポイント a≠0 表示方法がわかりませんでした。
var('x,b,c')
def myHobutusen_3P(x1,y1,x2,y2,x3,y3):
y=a*x**2+b*x+c
return y.subs(solve([Eq(y.subs({x:x1}),y1),
Eq(y.subs({x:x2}),y2),
Eq(y.subs({x:x3}),y3)],
[a,b,c]))
def myHobutusen_TopMax(C1_y,C1_xS,C1_xE):
C1_yT=maximum(C1_y,x,Interval(C1_xS,C1_xE))
C1_xT=solve (Eq(C1_y,C1_yT),x)[0] # ??? 普通は中点
return C1_xT,C1_yT
C1_xS,C1_xE=Rational(-5,2),Rational( 1,2) # 多項式の係数について。小数→分数 nsimplifyがありました。
C3_xS,C3_xE=Rational( 5,2),Rational(-1,2)
C2_xS =Rational( 3,2)
#
C1_y =myHobutusen_3P (C1_xS,0,C1_xE,0,0,1)
C1_xT,C1_yT=myHobutusen_TopMax(C1_y,C1_xS,C1_xE)
C3_y =myHobutusen_3P (C3_xS,0,C3_xE,0,0,1)
C3_xT,C3_yT=myHobutusen_TopMax(C3_y,C3_xE,C3_xS)
C2_y =myHobutusen_3P (C2_xS,0,C1_xT,C1_yT,C3_xT,C3_yT)
C2_xE =solve (Eq(C2_y,0 ),x)[0] # ??? 判別省略。[0]で
C2_xT,C2_yT=myHobutusen_TopMax(C2_y,C2_xE,C2_xS)
print("# (1)アイウエ",C1_y," "*2,"# C1 : y =",C1_y.evalf())
print("# ",C2_y," "*5,"# C2 : y =" ,re.search(r'\(([^,]+)',str(Poly(C2_y.evalf(),x))).group(1) )
print("# ", re.search(r'\(([^,]+)',str(Poly(C2_y,x))).group(1) )
print("# カキ ",C1_yT," "*20,"#",float(C1_yT)," m (C1,C3:二つの小さな噴水の高さ) +",float(C2_yT-C1_yT)," m")
print("# クケコサ",C2_yT," "*18,"#",float(C2_yT), "m (C2 :中央の大きな噴水の高さ)")
print("# シ ",round(C2_yT/C1_yT))
#------------------------------------------------------------
C2d_y =myHobutusen_3P (0,5 ,C1_xT,C1_yT,C3_xT,C3_yT)
C2d_xS =solve (Eq(C2d_y,0),x)[1] # ??? 判別なし。[1]で
print("# (2)スセ ",C2_xS -C2d_xS)
print("# ソ ",C2d_xS<C2_xS ) # ??? if文勉強中。情報Ⅰ
#------------------------------------------------------------
C2d_xE=-C2d_xS
plot( (C1_y ,(x,C1_xS ,C1_xE)), # plotにx座標の大小は関係無いようです。 分数表示勉強中です。
(C2_y ,(x,C2_xS ,C2_xE)),
(C3_y ,(x,C3_xS ,C3_xE)),
(C2d_y,(x,C2d_xS,C2d_xE)),
aspect='equal'
)
# (1)アイウエ -4*x**2/5 - 8*x/5 + 1 # C1 : y = -0.8*x**2 - 1.6*x + 1.0
# 81/25 - 36*x**2/25 # C2 : y = -1.44*x**2 + 3.24
# -36/25*x**2 + 81/25
# カキ 9/5 # 1.8 m (C1,C3:二つの小さな噴水の高さ) + 1.44 m
# クケコサ 81/25 # 3.24 m (C2 :中央の大きな噴水の高さ)
# シ 2
# (2)スセ 1/4
# ソ True
・ver0.2 平方完成風。vertex form
省略。同じになりそうなので。
# ver0.2 平方完成風。vertex form
・ver0.3 因数分解風。対称性を使っています。factored form
# ver0.3 因数分解風。対称性を使っています。factored form
from sympy import *
var('a') # ここがポイント a≠0 表示方法がわかりませんでした。
var('x')
def myHobutusen_InsuBunkai(x1,x2,yido, xq,yq):
y=a*(x-x1)*(x-x2)+yido
return (y.subs( {a:solve(Eq(y.subs({x:xq}),yq),a)[0]}).expand())
def myHobutusen_TopTyuten(y,xS,xE):
xT=(xS+xE)/2 # 今回は中点で。対称性
yT=y.subs({x:xT})
return xT,yT
C1_xS,C1_xE=Rational(-5,2),Rational( 1,2)
C3_xS,C3_xE=Rational( 5,2),Rational(-1,2)
C2_xS =Rational( 3,2)
#
C1_y =myHobutusen_InsuBunkai(C1_xS,C1_xE,0, 0,1)
C3_y =myHobutusen_InsuBunkai(C3_xS,C3_xE,0, 0,1)
C1_xT,C1_yT=myHobutusen_TopTyuten (C1_y,C1_xS,C1_xE)
C3_xT,C3_yT=myHobutusen_TopTyuten (C3_y,C3_xS,C3_xE)
C2_y =myHobutusen_InsuBunkai (C1_xT,C3_xT,C3_yT, C2_xS,0)
C2_xT =0
C2_yT =C2_y.subs({x:0})
print("# (1)アイウエ",C1_y )
print("# カキ ",C1_yT)
print("# クケコサ",C2_yT)
print("# シ ",round(C2_yT/C1_yT))
# #------------------------------------------------------------
C2d_y =myHobutusen_InsuBunkai (C1_xT,C3_xT,C3_yT, 0,5)
C2d_xS =solve (Eq(C2d_y,0),x)[1] # ??? 判別なし。[1]で
print("# (2)スセ ",C2_xS -C2d_xS)
print("# ソ ",C2d_xS<C2_xS ) # ??? if文勉強中。情報Ⅰ
# (1)アイウエ -4*x**2/5 - 8*x/5 + 1
# カキ 9/5
# クケコサ 81/25
# シ 2
# (2)スセ 1/4
# ソ True
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。
Wikipedia
英語
日本語
>standard form と vertex form と factored form
>放物線は二次曲線の一種で、離心率は 1 である。
またまた、???別の3つの違い。放物線と二次曲線と二次関数???
放物線 ⊂ 二次曲線
Parabola ⊂ Conic_section
Qiita内で
> 以下、AI先生に教えてもらいました。
> completing the square