(2022-02-11)〈1/3〉が長文になったので、分割しました。
sympyのわかる方へ
sympyのpiecewiseを使えば,3行で計算できると思いましたが、できませんでした。
教えて下さい。
Pycharmで:「一定の手順に従って数学的に処理する(問題作成方針 )」に違反しているコード
以下がポイントでした。
自転車が歩行者に追いつく地点を,A点(xA,yA)としています。
(youtube「福田の共通テスト直前演習です。2021年共通テストの問題4」より)
コード22行より短くなる方法を教えてください。
(2022-02-11)
from sympy import *
a,b = Function('a'),Function('b')
n = symbols('n',integer=True)
var('xA yA t')
a1,b1={a(1):2},{b(1):2}
print("#ア ",
solve([Eq(yA- 0 ,1*(xA- 0) ),Eq(yA-0,2*(xA- 2 ))],[xA,yA])[xA])
ans=solve([Eq(yA-b(n),1*(xA-a(n))),Eq(yA-0,2*(xA-a(n)))],[xA,yA])
t=ans[xA]-a(n)
fa=a(n)+ t+1+ (b(n)+b(n))/2+ 1
fb=b(n)+1*t+0+1*(b(n)+b(n))/2+1*1
bn=powsimp((rsolve(b(n+1)-fb ,b(n),b1)))
an=powsimp((rsolve(a(n+1)-fa.subs({b(n):bn}),a(n),a1)))
print("#イウ ",an.subs({n:2}),",",bn.subs({n:2}) )
print("#エオ ",ans[xA] ,",",ans[yA] ," "* 6,",3 an+bn,4 2bn")
print("#カキ ",fa," "* 9,",an1=an+カ*bn+キ-----①")
print("#ク ",fb," "*16,",bn1= 3*bn+ク-----②")
print("#ケ ",bn," "* 6,",bn=5/2*3**(n-1) -1/2")
print("#コ ",an," "* 2,",an=5/2*3**(n-1)+n-3/2")
m=int((solve(2*bn-300 <= 0,n).rhs))
print("#サ ",m)
print("#シスセ",(an+bn).subs({n:m}))
#ア 4
#イウ 8 , 7
#エオ a(n) + b(n) , 2*b(n) ,3 an+bn,4 2bn
#カキ a(n) + 2*b(n) + 2 ,an1=an+カ*bn+キ-----①
#ク 3*b(n) + 1 ,bn1= 3*bn+ク-----②
#ケ 5*3**(n - 1)/2 - 1/2 ,bn=5/2*3**(n-1) -1/2
#コ 5*3**(n - 1)/2 + n - 3/2 ,an=5/2*3**(n-1)+n-3/2
#サ 4
#シスセ 137
Pycharmで:「一定の手順に従って数学的に処理する(問題作成方針 )」に準拠しているコード
(途中)
参考
リンク切れ
解説 < 共通テスト2022 数学ⅡB問題|共通テスト解答速報2022|予備校の東進
https://www.toshin.com/kyotsutest/data/646/sugaku-2b.pdf#page=12
sympy.solvers.recurr.rsolve(f, y, init=None)
未定
https://www.youtube.com/watch?v=UZuWS7k4yR8&t=5s