PDA

Pogledaj cijelu verziju : Scientific computing help



cham3leon
15-09-2009, 19:27
Ako ima znalaca u ovome, trebao bih pomoć sa zadacima koje smo dobili na samom početku kolegija Uvod u znanstveno računanje. Stvar jest da svi koji smo upisali kolegij nemamo gotovo nikakvog iskustva u znanstvenom računanju, te korištenju jezika poput FORTRAN-a ili librariesa za iste. Zadaci slijede:

1. Napiši C program koji konstruira i ispisuje (kao decimalni broj, kao
četiri “1 byte unsigned int” i kao bitni uzorak) minimalni i maksimalni
realni broj u 32 bitnoj reprezentaciji.

2. Napiši C program koji ilustrira kolika mora biti razlika u eksponentu za
32 bitnu reprezentaciju brojeva a i b da a+b=a (a>b, b ≠ 0)

3. Napiši C program koji poziva fortran subrutinu s double float
argumentom (> 0.) i vraća drugi korijen izračunat upotrebom fortran
sustavne funkcije DSQRT

Luka
15-09-2009, 20:33
Uh.

Čak i za ove koje imam ideju kako bih riješio, nisam siguran traži li se to. ((unsigned)-1) će npr. dati najveći mogući 4bajtni integer.

1.:

najjednostavnija ideja bi bila uzeti ove vrijednosti iz float.h (http://www.cplusplus.com/reference/clibrary/cfloat/)
nemam pojma što bi bitni uzorak trebao značiti, ako se misli na zapis u hex sustavu, onda je to ovo: 0x0 i 0xffffffff
4 byte unsigned int je tip podatka, no možda se misli na ovo sa (unsigned)-1. sumnjam

2.:

ovo mi je potpuno nejasno, pretpostavljam da ima neke veze sa načinom na koji se realni brojevi zapisuju i brojčanim preljevom kad ponestane bitova

3.:

ovo se vjerojatno odnosi na korištenje Fortran funkcija u Cu

guglanjem sam ovo prvo pronašao - http://www.yolinux.com/TUTORIALS/LinuxT ... nAndC.html (http://www.yolinux.com/TUTORIALS/LinuxTutorialMixingFortranAndC.html), skrolaj negdje na polovicu gdje piše "C++ calling a FORTRAN function:"

to je za C++, ali sigurno ima i za C, malo proguglaj o tome

cham3leon
15-09-2009, 21:20
Hvala na pomoći, kažem, mi koji to sad slušamo još manje se kužimo u to uključujući moju malenkost tako da je svaka pomoć dobrodošla.

EDIT: Evo još jedan zadatak šta nam je danas dao:

Napiši C ili FORTRAN program koji koristeći LAPACK nalazi
ispisuje sve vlastite vrijednosti i vlastite vektore matrice:
1. 2. 3. 4. 5.
5. 1. 2. 3. 4.
4. 5. 1. 2. 3.
3. 4. 5. 1. 2.
2. 3. 4. 5. 1.

Luka
15-09-2009, 21:31
http://www.netlib.org/lapack/Svaljda ovo trebate koristiti?

ako da, imaš tu "tutorial": http://www.netlib.org/lapack/lug/index.html