Jednostavni primjeri za vježbu

Selekcija jednostavnih primjera za vježbu iz programiranja u fizici.

Primjeri zadataka za vježbu

  1. Napisati program koji od korisnika traži da unesu koordinate (x,y) tačke u Dekartovom koordinatnom sistemu, a zatim ih izračunava i ispisuje u odgovarajućim polarnim koordinatama (gdje je polarni ugao u stepenima).
  2. Svaki novi član Fibonacci niza se dobije zbrajanjem prethodna dva člana, počevši od 1 i 1 kao prvih članova. Prvih 10 članova niza će tako biti: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Uzeti članove Fibonacci niza čije vrijednosti ne prelaze 4 miliona i naći sumu takvih parnih članova.
  3. Koristeći Newtonov metod riješiti naći korjen jednačine $x^4−2x^3+5x^2−6=0$ na intervalu $[1,2]$. Newtonov metod koristi rekurzivnu formulu $x_{n+1}=x_n−\dfrac{f(x_n)}{f′(x_n)}$, gdje se u prvoj iteraciji za $x_0$ uzima neki proizvoljan broj (iz datog intervala).
  4. Napisati program koji učitava matricu kolonu X, a zatim izračunava standardnu devijaciju učitane matrice. Ispisati vrijednost standardne devijacije pozivom na funkciju za ispis.
  5. Napisati skriptu koja vrši konverziju energije u različitim jedinicama. Od korisnika se traži da unese brojnu vrijednost u jedinicama J (džul), a program zatim ispisuje vrijednost energije u eV(elektronvolt) i kWh (kilovat-čas).
  6. Koristeci funkciju rand() generirati 4 slučajne tačake u intervalu $[0,1]$, a zatim koristeci kubni spline interpolirati vrijednosti u 100 ekvidistantnih tačaka iz istog intervala. Rezultat prikazati odgovarajucim grafikonom.
  7. Lopta je puštena da pada sa tornja visine $h$ bez početne brzine. Napisati program koji od korisnika traži da unese visinu tornja u metrima i zatim izračunava i ispisuje vrijeme potrebno da lopta padne na tlo (zanemariti otpor vazduha). Koristiti program za računanje vremena da loptica padne sa tornja visine 100 metara.
  8. U nuklearnoj fizici se semi-empirijska formula mase koristi za izračunavanje približne vrijednosti energije veze B atomskog jezgra masenog broja A i atomskog broja Z: $$ B= a_1A - a_2A^{2/3} - a_3\dfrac{Z^{2}}{A^{1/3}} - a_4\dfrac{(A-2Z)^2}{A} + \dfrac{a_5}{A^{1/2}} $$ gdje su konstane $a_1=15.8$, $a_2=18.3$, $a_3=0.714$ i $a_4=23.2$ izražene u jedinicama $MeV$, dok je: $$a_{5}=\left\{ \begin{array}{cc} 0, & A \:neparno\\ 12, & A\:i\:Z\:oba\:parni\\ -12, & A\:parno,\:Z \:neparno \end{array}\right.$$
a) Napisati program koji za input uzima vrijednosti A i Z, a ispisuje energiju veze za odgovarajući atom. Izračunati vrijednost energije veze za atom čije su vrijednosti A=58, Z=28. (Trebali bi dobiti oko 490 MeV).
b) Modifikovati program tako da izračunava energiju veze po jednom nukleonu (B/A).
c) Sada modifikovati program tako da za input uzima samo jednu vrijednost Z i zatim prolazi kroz sve vrijednosti za A, počevši od A=Z do A=3Z kako bi pronašli najveću vrijednost energije veze po jednom nukleonu. Tako dobijena vrijednost daje najstabilniji nukleus sa datim atomskim brojem. Neka program ispiše vrijednost A za tako dobijeni najstabilniji nukleus i vrijednost energije veze po nukleonu.
d) Ponovo modifikovati program tako umjesto da uzima samo jednu vrijednost Z kao input, uzima sve vrijednosti za Z od 1 do 100, a zatim ispisuje najstabilniju vrijednost A za svako Z. Za koju vrijednost Z se dobija najveća energiju veze po nukleonu? (Stvarna vrijednost je Z=28 (Ni), a semi-emiprijska formula će dati ugrubo tačnu vrijednost).
  1. Korištenjem operatora dvotačka definisati vremenski interval od 0 do 15 sekundi sa korakom 0.05 sekundi, a zatim u tom intervalu na jednom grafu nacrtati funkcije $x(t)=cos(2\pi ft)$ i $v(t)=−2\pi f sin(2\pi ft)$. Uzeti da je f=0.2 Hz. Obavezno napisati naziv grafa ("Zavisnost elongacije i brzine od vremena") i označiti na grafu pripadnost linija odgovarajućim funkcijama, te nacrtati gridlines.
  2. U nekom fizičkom eksperimentu je mjerena zavisnost fizičke veličine Y od druge fizičke veličine X. Rezultati mjerenja su snimljeni u datoteci rezultati_mjerenja.csv. Učitati podatke i izvršiti fit metodom najmanjih kvadrata (linearna metoda). Rješenje prikazati na grafikonu (podaci, dobijena prava i navesti vrijednosti koeficijenata).
Linearna regresija: $$ y=ax+b$$ $$ a=\dfrac{\sum_i^N (x_i-\bar{x})(y_i-\bar{y})}{\sum_i^N(x_i-\bar{x})^2}$$ $$ b=\bar{y}-a\bar{x}$$

Objavi komentar

0 Komentari