# Generátor projektov - Numerická matematika.
# Tento program generuje vstupy a výstupy semestrálneho projektu z numerickej matematiky.
# V projekte treba aplikovať :
# Numerickú interpoláciu, výpočet numerických chýb, numerické riešenie nelineárnych rovníc
# numerické integrovanie a grafické a výpočtové funkcie programov
# Použité programové systémy: SageMath (Python) a MATLAB
# P. Szabó
import random
x=var("x")
for i in [1,2,..,100]:
f(x) = 1
n=random.randint(4,5)
z=random_vector(QQ,n,20)
# generátor polynómu f(x) s náhodným koreňom z[j]
for j in [0,1,..,n-1]:
k=random.randint(0,4)
z[j]=(z[j])+k/5
f(x)=f(x)*(x-z[j])
t=sorted(z.list())
.......
# Každý študent za reťazcom "Študent x:" môže nájsť svoju úlohu podľa priradenia študentov
# zo súboru "Študenti - priradenie úloh".
# Tu sú uvedené kroky realizácie projektu:
# 0) Pripraviť, konvertovať body B = {[xi,yi],i=0,1,..,k} do systému SageMath (MATLAB).
# 1) Nakresliť body B = {[xi,yi],i=0,1,..,k} v danom programovom systéme.
# 2) Spojiť body [xi,yi] a [xi+1,yi+1] s úsečkami (lineárna interpolácia), i=0,1,..,k-1.
# 3) Nájsť Lagrangeov interpolačný polynóm f(x), f(xi)=yi, i=0,1,..,k.
# 4) Vykonať test správnosti výpočtu, porovnanie koeficientov polynómu.(v riadku za bodmi [xi,yi], sa nachádza interpolačný polynóm)
# 5) Nájsť intervaly [ai,bi], i=1,2,..,m kde funkcia f(x) má jeden koreň.
# 6) Nájsť korene na intervaloch [ai,bi], i=1,2,..,m, s presnosťou 0.0001 (Používajte bisekciu).
# 7) Na intervaloch [ai,bi], i=1,2,..,m, vypočítajte určité integrály funkcie f(x) (Lagrangeov polynóm, viď bod 3.).
# 8) Vypočítané úlohy nahrajte do súboru Priezvisko_num_mat.ipynb. Súbor odovzdajte v systéme Moodle.
# 9) Súbor musí obsahovať hlavičku s informáciami:
# Fakulta, AR,
# Názov predmetu,
# názov projektu
# Meno a priezvisko riešiteľa
# číslo úlohy
# SageMath, verzia programu
# Dátum odovzdania