以下の問題を python で解き,LUNA へ提出せよ.LUNA へは ipynb と pdf 形式の2種類を提出すること.
上記のデータ点に対して,一次関数 $$ F(x) = a0 + a1*x $$ でのフィッティングを考える.
データと関数との誤差の2乗で得られたsum関数のa0, a1に対する最安定(最小値)点を求めよ. 微分して連立方程式で解けばもとまります.
また,得られた関数と1(a)のデータ点を同時にプロットせよ. うまくいけば,次のplotのようになります.
import numpy as np
xdata = np.array( [1,2,3])
ydata = np.array([0,5,15])
from sympy import *
a0, a1, x,y = symbols('a0, a1, x, y')
def func(x):
return a0+a1*x
sum = 0
for i in range(0,3):
sum += (ydata[i]-func(xdata[i]))**2
expand(sum)
ヴァンデルモンド(Vandermonde)行列 $V$ を
$$ V = \begin{bmatrix} 1 & x_1 & x_1^2\\ 1 & x_2 & x_2^2\\ 1 & x_3 & x_3^2\\ \end{bmatrix} $$として, $$ V \begin{bmatrix} a_0\\ a_1\\ a_2\\ \end{bmatrix} =\begin{bmatrix} y_0\\ y_1\\ y_2\\ \end{bmatrix} $$ の逆行列から, 2次のフィッティング関数 $$ f(x) = a_0 + a_1 x+a_2x^2 $$ を求めよ.
データは
xdata = np.array([1,2,3])
ydata = np.array([0,5,15])
を使え.
ただし,以下に添付したBingの解答例(2023/11/28)は,題意から正解ではありません.
# Bingの解答例(2023/11/28)
import numpy as np
# データを定義します
xdata = np.array([1,2,3])
ydata = np.array([0,5,15])
# ヴァンデルモンド行列を生成します
V = np.vander(xdata, N=3)
# 逆行列を計算し、フィッティングパラメータを求めます
a = np.linalg.solve(V, ydata)
print("a0:", a[0])
print("a1:", a[1])
print("a2:", a[2])
a0: 2.499999999999999 a1: -2.499999999999998 a2: -1.3322676295501882e-15
(2021 大学入試センター試験 数学 II・B/本試験 第 2 問)
$a$ を実数とし, $f(x)=(x-a)(x-2)$とおく. また, $F(x)= \int_0^x f(t)dt$とする.
(1) $a=1$のとき, $F(x)$は $x = \fbox{ ア }$で極小になる.
(2) $a = \fbox{ イ }$のとき,$F(x)$はつねに増加する. また,$F(0) = \fbox{ ウ }$であるから, $a = \fbox{ イ }$のとき,$F(2)$ の値は$\fbox{ エ }$である.
$\fbox{ エ }$の解答群:[0, 正, 負]
(3) $a > \fbox{ イ }$とする.
$b$を実数とし,$G(x)= \int_b^x f(t)dt$とおく.
関数$y=G(x)$のグラフは, $y=F(x)$のグラフを $\fbox{ オ }$方向に $\fbox{ カ }$だけ並行移動したものと一致する. また,$G(x)$は$x = \fbox{ キ }$で極大になり, $x = \fbox{ ク }$で極小になる.
$G(b) = \fbox{ ケ }$であるから, $b = \fbox{ キ }$のとき, 曲線$y=G(x)$と $x$軸との共有点の個数は$\fbox{ コ }$個である.
$\fbox{ オ }$の解答群:[$x$軸, $y$軸]
$\fbox{ カ }$の解答群:[$b$, $-b$, $F(b)$, $-F(b)$, $F(-b)$, $-F(-b)$]
問3で$f(x)=(x-a)(x-\sqrt{5})$として同様に求めよ. さらに, 得られたG(x)関数をsubs({a: 3}), (x,2,3.5)でプロットせよ.