生成AI19回目です。
前回は関数当てゲームの形を作りました。今回は関数を合成していきます。
入力:
入力:32ビット整数の範囲でランダムな10桁の数字を出力してください。戦闘の数字が0の場合はそのまま出力して下さい。
以下のプロセスを実行してください。
“””プロセス
まず、以降のプロセスに使うシード値として直前に出力した10桁の数字を設定してください。
合成関数でない関数からランダムに2種類選んでください。選んだ2種類の関数を合成として、変数xに関する合成関数を作ってください。 合成関数の関数名は”randomfunction_0″とします。
選んだ関数に-10~10の範囲でランダムに係数,乗数,定数を付して関数y=f(x)を作成してください。 作成した3種類の関数が、100 >= x >0の範囲でyが1×10^12を超えるか判定してください。 超える場合、再度係数,乗数,定数をランダムに決定して関数y=f(x)を作成してください。このプロセスを、y=f(x)の100>=x>0における最大値が1×10^12以下になるまで繰り返してください。
“randomfunction_0″を決定したら、 {–出力内容}を出力をしてください。
–出力内容 -xを横軸、yを縦軸とした、0<x<100の範囲におけるy=f(x)の線グラフをjpgファイルまたはpngファイルで出力”””
出力:生成されたランダムな10桁の数字は 5500641154 です。
ぱっと見三角関数+1次関数。y=a*sin(b*x+c)+dx+e
入力:”randomfunction_0″について教えてください。必要ならシード値” 5500641154″を使ってください。yの極大値のうちxが最も小さいもの、2番目に小さいもののx,yをそれぞれ教えてください。
出力:
- 最も小さい極大値:x = 0.09, y ≈ 18.51
- 2番目に小さい極大値:x ≈ 1.38, y ≈ 18.17
多項式部分はd~-0.26x。周期bはa*sin(b*x+c)でx=1.29のとき2πなので、b=2π/1.29。振幅aは極小値を聞くか。
入力:”randomfunction_0″について教えてください。必要ならシード値” 5500641154″を使ってください。yの極小値のうちxが最も小さいもののx,yをそれぞれ教えてください。
出力:
- x ≈ 0.74
- y ≈ -1.58
振幅aは((18.51+18.17)/2-(-1.58))/2=9.96
位相cはπ/2がc+0.09bだから、c=π/2-0.09*2π/1.29
最後に定数項eはx=0.09のときy=18.51で振幅9.96部分を除くと9.55。ここから0.09*-0.26を引いて9.57
というわけでy=9.96*sin(4.87x+1.13)-0.26x+9.57と予想。
答え:
y = 5.92 * sqrt(-0.13 * x + 2.09) + 9.96 * sin (4.88 * x + 7.40)
振幅、周期は〇、位相は異なるように見えるけど7.40≒2π+1.13なので〇。三角関数は合ってた。
多項式は一次関数を予想していたら平方根だった。確かに見返すとxが大きくなるにつれ線が下がっていってる。極大値を2点しか聞かなかったのが甘え。
パラメータの計算は暗算でやるには年取りすぎたから、別chat開いてgpt4にやらせるか、パラメータ計算すっ飛ばして関数の種類だけ予想するかした方がいいな。
次回に続く