!!! RÉGI OLDAL !!!

 

 

 

 

 

A fizika numerikus módszerei II. - előadás

Neptun kód: mf1n1m04, mf1c1m04

Időpont: csütörtök 10-12

Helyszín: É 4.95

Prezentációk: 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16

Facebook: https://www.facebook.com/fiznum2

A fizika numerikus módszerei II. - gyakorlat

Neptun kód: mf1c2m04

Házi feladatok, zh eredmények és jegyek

Időpontok: H 12-13, H 13-14, P 8-9, P 9-10

Helyszín: É 5.56

Jegyszerzés

A gyakorlatok látogatása kötelező. A Tanulmányi- és Vizsgaszabályzat értelmében a félév során legfeljebb három igazolatlan hiányzás esetén szerezhető jegy. A gyakorlati jegy megszerzésének feltétele az alább található házi feladatok kidolgozása, határidőre történő beküldése, valamint az óra keretében történő bemutatása. A legutolsó feladat beküldési határideje a szorgalmi időszak utolsó hetére esik - így az utolsó héten még lesz mód arra, hogy mindenki személyesen beszámolhasson a feladatokról. Szintén a TVSZ értelmében a gyakorlati jegyeket a vizsgaidőszak első hetének végéig be kell írni a Neptunba, így a házi feladatok későbbi beadására nincs lehetőség. A jegyszerzés további feltétele egy teszt elégséges megírása, melyre a félév végén, az előadás időpontjában kerítünk sort. Elégtelen teszt javítására a vizsgaidőszak első hetében, szóbeli keretében biztosítok majd lehetőséget.

Programozási segédlet

C programozási segédlet

További hasznos linkek a lap alján.

Házi feladatok

A házi feladatokra adott megoldásokat C (esetleg C++) nyelven kell elkészíteni. A házikat a domino.vo.elte.hu weboldalon keresztül kell beküldeni. A program új, ezért előfordulhatnak hibák. Ha kitöltitek a hibaüzenet alatt megjelenő űrlapot, akkor megkapom a részletes hibaleírást, és hamar tudom javítani a problémákat.

1. feladat: Egyszerű mátrixműveletek

Minimum feladat: Írjunk olyan programot, amely parancssorban megadott MxN méretű mátrixot (pl. matrix.dat) és egy N elemű oszlopvektort (pl. vector.dat) fájlból beolvas, összeszorozza őket, és az eredményvektort kiírja a standard outputra! A parancssor M=5, N=3 esetén így nézhet ki:

matmul 5 3 matrix.dat vector.dat

Teljes feladat: Írjuk meg a mátrixot fájlból betöltő függvényt úgy, hogy az ne várja előre a mátrix méretét, hanem találja ki a fájlban levő oszlopok és sorok számából. Figyelem: a fájlt csak egyszer és csak szekvenciálisan szabad végigolvasni, valamint a fájl tetszőlegesen nagy lehet!

Beküldési határidő: március 1. éjfél

2. feladat: Gauss-elimináció

Minimum feladat: Írjunk olyan programot, amelyik beolvas egy NxN méretű valós mátrixot (szöveges, szóközzel illetve soremeléssel elválasztott fájlokból), eredményként pedig kiírja a mátrix inverzét! Algoritmusként használjuk a Gauss-eliminációt sor- és oszlopcserékkel! Tervezzük meg modulárisan a programot, úgy, hogy egy lineárisegyenlet-megoldó algoritmus függvényként legyen hívható!

Teljes feladat: A Gauss-elimináció implementálása után használjuk mátrix inverzének meghatározására a LAPACK csomag szingulárisérték-dekompozíció függvényét. Hasonlítsuk össze az SVD algoritmus eredményét a Gauss-eliminációéval néhány mátrix esetében! Teszteljük a két algoritmus sebességét!

A Gauss-elimináció leírása.

Beküldési határidő: március 29. éjfél

3. feladat: Polinomillesztés

Minimum feladat: Írjunk olyan programot, amely az előző feladatban kidolgozott lineáris egyenletrendszermegoldó-kódot felhasználva általános N változós polinomillesztést hajt végre általános lineáris legkisebb négyzetek módszerével! A program legyen képes N változó esetén legalább másodrendű polinom illesztésére! Bemenetként az illesztendő polinom rendje és a mérési adatok száma mellett az adatokat egy olyan szöveges fájlból olvassa be, amelyben az első N oszlop a független változókat tartalmazza, az (N+1)-ik a függő változót, az (N+2)-ik pedig ennek hibáját. A program két kimeneti fájlt hozzon létre, az egyikbe írja ki a polinom együtthatóit, a másikba pedig soronként az eredetileg illesztendő, és a becsült függő változókat.

Minta bemeneti fájl (5 független változó + függő változó + mérási hiba):
small.dat (2.5MB, 42189 sor)
big.dat (40MB, 666694 sor).

A módszer elvi leírása.

A módszer leírása példával.

Beküldési határidő: április 19. éjfél

4. feladat: Differenciálegyenlet megoldása

Minimum feladat: Írjunk olyan programot, amelyik az explicit Euler-módszer segítségével megoldja a Föld-Hold-rendszer mozgásegyenletét. Ábrázoljuk a kapott eredményeket. Nézzük meg, hogy tapasztalható-e eltérés az analitikus megoldástól sok periódus után!

Föld tömege: 5.9736 × 1024 kg
Hold tömege: 7.349 × 1022 kg
Apogeum távolsága: 405.500 km
Sebesség apogeumban: 964 m/s
Perigeum távolsága: 363.300 km
Sebesség perigeumban: 1076 m/s
Gravitációs állandó: 6.67384 × 10-11 m3 kg-1 s-2

Teljes feladat: Integráljuk a mozgásegyenletet egyszerű, valamint adaptív lépéshossz-szabályozott negyedrendű Runge-Kutta-módszerrel! Használjunk függvénypointereket!

Beküldési határidő: május 10. éjfél

Programozási segédlet

Az elméleti anyaghoz tartozó segédletek Csabai István honalpjáról tölthetők le.

C programozási segédlet

Hasznos weboldalak