Egy cég bevételét vizsgáljuk a reklámra költött összeg függvényében. Az alábbi grafikon kilenc évben mutatja a megfelelő $(r_i,b_i)$ párokat, ahol $r_i$ a reklámra költött összeg, $b_i$ pedig a bevétel az adott évben (millió euróban).
r = vector([23,26,30,34,43,48,52,57,58]) b = vector([651,762,856,1063,1190,1298,1421,1440,1518]) n = len(r) pontok = list_plot([(r[i],b[i]) for i in range(n)],color="red",size=100) show(pontok)
(a) Olyan $f(x)=px+q$ lineáris függvényt keresünk, melynek grafikonja illeszkedik a pontokra, azaz $f(r_i)=b_i\ (i=1,\dots,9)$. Írja le a papírra azt a lineáris egyenletrendszert, amelynek megoldásaként megkaphatjuk a lineáris modell $p$ és $q$ paramétereit. Az egyenletrendszert $A \cdot \pmatrix{p\\q} = \mathbf{b}$ alakban adja meg, ahol $A \in \mathbb{R}^{9 \times 2}$ és $\mathbf{b} \in \mathbb{R}^{9 \times 1}$. Legyenek $\mathbf{u}_1$ és $\mathbf{u}_2$ az $A$ mátrix oszlopai. Írja be a következő cellába az $\mathbf{u}_1$, $\mathbf{u}_2$ és $\mathbf{b}$ vektorokat.
u1 = vector([])
u2 = vector([])
b = vector([])
print("OK")
(b) Az egyenletrendszernek sajnos nincs megoldása, mert $\mathbf{b}$ nincs benne az $S:=[\mathbf{u}_1,\mathbf{u}_2]$ altérben. A legjobb közelítő megoldást úgy kapjuk, hogy felbontjuk a $\mathbf{b}$ vektort egy $S$-beli és egy $S$-re merőleges komponens összegére. Ehhez először ortogonalizálni kell az $\mathbf{u}_1,\mathbf{u}_2$ vektorrendszert, hogy egy $\mathbf{v}_1,\mathbf{v}_2$ ortogonális bázist kapjunk $S$-ben. Hajtsa végre a Gram–Schimdt-féle ortogonalizációs eljárást az $\mathbf{u}_1,\mathbf{u}_2$ vektorrendszeren. Írja le a papírra a formulákat és a kiszámított $\mathbf{v}_1,\mathbf{v}_2$ vektorokat. A számítást elvégezheti az alábbi cellában. A $v$ és $w$ vektorok belső szorzatát a $bsz(v,w)$ függvény számítja ki.
def bsz(v,w): return v.dot_product(w) v1 = v2 = pretty_print(v1.n(digits=2)) pretty_print(v2.n(digits=2))
(c) Bontsa a $\mathbf{b}$ vektort egy $S$-beli és egy $S$-re merőleges komponens összegére. Csak az $S$-beli komponensre lesz szükségünk, legyen ez $\mathbf{b}_1$. Írja be az alábbi cellába a $\mathbf{b}_1$ vektor kiszámolására szolgáló formulát. Írja le a papírra a formulát is és a kiszámolt $\mathbf{b}_1$ vektort is.
b1 = pretty_print(b1.n(digits=2))
(d) A keresett $p$ és $q$ paremétereket úgy kapjuk, hogy előállítjuk a $\mathbf{b}_1$ vektort $\mathbf{u}_1$ és $\mathbf{u}_2$ lineáris kombinációjaként: $\mathbf{b}_1 = p\mathbf{u}_1 + q\mathbf{u}_2$. A $p$ és $q$ együtthatókat az alábbi lépcsős alakból lehet kiolvasni:
M = matrix([u1,u2,b1]).transpose() pretty_print(M.n(digits=2)) pretty_print(M.rref().n(digits=2))
Olvassa ki $p$ és $q$ értékét, írja le a papírra és a következő cellába is, majd gyönyörködjön a grafikonban. 😀
p = q = egyenes=plot(p*x+q,(x,min(r),max(r))) show(pontok+egyenes)
(e) A kapott lineáris modell alapján válaszoljon a következő kérdésekre. Ha 1 millió euróval többet költ a cég reklámra, mennyivel növekszik a bevétele? Mennyi lenne a bevétel, ha egyáltalán nem reklámoznának?
Üres cellák (szükség esetére):