Zadatak za petu laboratorijsku vježbu iz APR-a

Implementirati metode numeričke integracije po Runge-Kutta postupku 4. reda (stranica 7-35 sa predavanja) te trapeznom postupku. Program treba (iz datoteka) učitavati matrice sustava A i B te početno stanje x(t=0). Za uporabu trapeznog postupka potrebno je zadani linearni sustav prethodno transformirati u eksplicitni oblik (predavanja 7-24, 25). Sustav je općenitog oblika:

Potrebno je bez prevođenja programa omogućiti zadavanje željenog koraka integracije (T) i vremenskog intervala za koji se provodi postupak. Program treba paralelno rješavati sustav po oba zadana postupka te prilikom rada ispisivati varijable stanja na ekran, no ne u svakoj iteraciji nego svakih nekoliko iteracija (omogućiti da taj broj zadaje korisnik). Osim na ekran, ispis je uputno preusmjeriti i u datoteku. Nakon završetka postupka potrebno je (pozivom MATLABovih funkcija) nacrtati kretanje varijabli stanja za oba postupka izračunavanja (vodoravna os je vrijeme, uspravna su vrijednosti).

Za pretvorbu sustava u eksplicitni oblik i crtanje rezultata mogu se koristiti MATLABove funkcije. Korištenje istih iz C/C++ programa opisano je ovdje:
Integracija C/C++-a sa MATLABom

Primjeri sustava

Sustav predstavlja matematičko njihalo. x1(t=0) je početni odmak od ravnotežnog položaja a x2(t=0) je početna brzina. Analitičko rješenje sustava je

x1[t] =  x1(t=0)*Cos[t] + x2(t=0)*Sin[t]; x2[t] = x2(t=0)*Cos[t] - x1(t=0)*Sin[t]

Želimo li npr. dobiti sustav s prigušenjem, element matrice A sa indeksom (2,2) treba postaviti na negativnu vrijednost.

Fizikalno njihalo s prigušenjem (primjer sa auditornih). Isprobajte postupke s periodom integracije T = 0.1 za oba postupka i obratite pažnju na numeričku stabilnost! (uz početne uvjete sa auditornih vježbi)