TMA4320 Introduksjon til vitenskapelige beregninger

Beskjeder

  • 08.08.2017: Håper det gikk bra i dag med kont. Her kommer eksamen inkl mulige LF.
  • 12.06.2017: Jeg har lige levert mine rettelser til eksamenskontoret, så dere skal få et beskjed fra dem veldig snart (antar jeg). Husk at det er mappevurderingen, altså en kombinasjon av eksamen*70% + prosjekter*30%; likevel må man ha alle godkjendte komponenter for å bestå. Dvs de som fikk "F" i eksamen får ikke å bestå faget selvom de hadde bra prosjekter. Oppsumetingen: ut av 120 som kom til eksamen har jeg følgende karakterdistribusjon: {'F': 10, 'E': 3, 'D': 15, 'C': 24, 'B': 41, 'A': 27}. PDFen med kand.nr. og de endelige karakterene ligger her, vennligst sjekk at karakterene stemmer med det, de får fra StudentWeb. Prøv å diskutere vurderingen med meg først før dere klager. I fjør ut av 8 klagesaker fikk 7 samme karakter tilbake, og 1 noe verre. (Altså jeg bare ber dere å ikke spille våres tid med grunnløse klagesaker.) Det var morsom å jobbe med dere, og jeg ønsker en bra sommer til alle uansett om vi må møtes igjen i august eller ei. Precisering: Jeg er selvfølgelig villig å gi begrunnelser, fordi det er bare min tid da. Men når det går til klager, må jeg finne to sensorer (en ekstern), så det er typisk veldig mye arbeid for veldig mye penger som mange ganger ikke gir noe resultat. Det er deres rett å klage, jeg ber bare at dere bruker den ansvarlig.
  • 08.06.2017: Her kommer mine foreløpige kommentarer etter jeg har gått igjennom deres besvarelser en gang. Nå skal jeg sjekke en gang til, og gjøre mappevurdering (altså eksamen + prosjekt).
  • 30.05.2017:
    • LF til eksamensoppgaver finnes her. Husk at det finnes mange mulige veier å løse visse oppgaver på (f.eks. oppg 1)
    • Referat fra den siste møte i referansegruppa ligger her.
  • 26.05.2017:
    • Vil bare påminne at vi har spm&svar mulighet i dag og den 29.05 kl 10:15-12 i S7
    • DFT er ikke med i år, mens lineær algebra er med - se pensumlisten
    • Her kommer den siste versjon av prosjekt karakterene som jeg har
  • 14.05.2017: Her kommer den nyeste versjon med prosjekt karakterene, som vi håper er mere korrekt. Vi stadig ikke har kand nr. for to studenter, og ikke heller et stud nr. for kand nr 10044. Jeg har ikke hørt noe fra de som har tatt emnet i fjør: det står i emnebeskrivelsen at "Vurderingsmelding krever godkjent undervisningsmelding samme semester. Obligatorisk aktivitet fra tidligere semester kan godkjennes av instituttet."
  • * 12.05.2017: Vennligst sjekk at karakterene fra deres prosjekt innleveringer som jeg har stemmer. Det er flere steder i tabellen hvor kand nr = ???? - dette er pga den manglende student nr informasjon som jeg fikk. Hvis dere ser problemer, ta kontakt med meg og Mariusz hurtigst mulig. Også, de som har tatt emnet i fjør og har per avtale med meg at jeg aksepterer deres prosjekt innleveringer fra i fjør: send en email til meg med deres studentnr, fordi jeg trenger denne informasjon for å finne deres karakterene fra i fjør. Husk å bruke TMA4320 i subject-linjen.
  • 10.05.2017: Evalueringen fra prosjekt 3 + visse forslag fra dere finnes her og her .
  • 08.05.2017: Flere spm&svar timer:
    • Fredag 26. mai: 10:15-12:00 i S7
    • Mandag 29. mai: 10:15-12:00 i S7
  • 06.05.2017: Kommentarer og vurdering av prosjekt 3 er tilgjengelig her og muligvis på ovsys.
  • 05.05.2017: Rettelsene til prosjekt 3 er endelig ferdige. Ta gjerne kontakt med Jonas Blomberg Ghini for å få tilbakemelding på deres innleveringer.
  • 28.04.2017: Flere spm&svar timer:
    • Torsdag 4. mai: 12:15-14:00 i R5
    • Fredag 5. mai: 10:15-12:00 i R7
  • 25.04.2017: Jeg er i kontakt med referansegruppa for å bestemme flere spm&svar timer før eksamen. De skal annonseres her på wiki. Ta gjerne kontakt med meg hvis dere har spesifikke spørsmål om eksamen eller oppgaver osv. Ellers vil jeg bare legge informasjonen om StudForsk program her.
  • 24.04.2017:
    • Jeg regner med at rettelsene til prosjekt 3 er ferdige d. 04 mai. Tak for deres tålmodighet.
    • Etter et forslag skal jeg i morgen gå igjennom de "vanskeligeste" gamle eksamensoppgaver. Still gjerne spørsmål/send flere forslag.
  • 20.04.2017: Jeg skal oppdatere pensumlisten snart. Hvis dere har noe spesifikke spørsmål (f.eks. til de gamle eksamensoppgaver) som dere vil ha diskutert enten i morgen eller på tirsdag, send gjerne en email til meg og/eller Mariusz.
  • 03.04.2017: Rapport mal med LaTeX source
  • 01.04.2017: Happy April Fools' Day 2017!
    • Likning (5) innehåller en fortegnsfeil, som de fleste har funnet. Implementasjonen av likningen på side 12 er korrekt.
    • Flere av dere får resultatene som ser annerledes ut enn det Tor viste på gjennomgangen. Årsaken er at i oppgaven står det at partikkelfeltet skal sentreres på (-3000000, -1200000), mens i løsningsforslaget (som Tor viste på gjennomgangen) har Tor brukt (-3000000, -1300000). Forskjellen er at det siste ligger nærmere kysten, og havner dermed i en mer variabel del av strømfeltet. Hvis dere vi se mer varierende partikkeldistribusjoner, kan dere endre grensene i oppgave 3 slik at senteret ligger i (-3000000, -1300000). Bare si hva du gjør i rapporten.
    • Kan være interessant til dere vit. beregningere: "In the frame of the Supercomputing course TMQ4280 we are happy to welcome Niclas Jansson from the PDC Center for High Performance Computing at KTH, Stockholm. The talk will be about trends in parallel computing in the perspective of Exascale, Partitioned Global Address Space model and new hardware architectures, and their application to the development of high-performance Navier–Stokes solvers for the simulation of turbulent flows. Location and Time: Monday Apr 3. 14:00 at EL2"
    • Hvis dere får feilmelding som klager om NetCDF4,

sjansen er at alle pakker er på plass men systemet kan ikke finne datafilen. Et par studenter har løst problemet ved å flytte hele prosjekt mappen til et annet sted (f.eks. desktop) og ved å endre navn på datafilen.

  • 30.03.2017: Alle som har problemer med 'netcdf3': en mulig løsning er å bare begynne med en helt ny installasjon av anaconda. Jeg har nettop testet den følgende på laptoppen min: (alle komandoer kjøres i Terminalen):
# install miniconda + packages

mkdir test
cd test
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o miniconda3.sh
chmod +x ./miniconda3.sh
./miniconda3.sh -b -f -p `pwd`
./bin/conda install --yes -c conda-forge numpy matplotlib scipy xarray pyproj netcdf4 cartopy dask

# download example code + data
mkdir prosjekt3
cd prosjekt3
curl https://wiki.math.ntnu.no/_media/tma4320/2017v/examplecode.py -o examplecode.py
curl http://folk.ntnu.no/nordam/data/Norkyst-800m.nc -o Norkyst-800m.nc

# run the example code
../bin/python examplecode.py

Dette produserer to billeder plus output

[[ 0.10296753]
 [ 0.05097104]]

På Windows maskiner en mulighet er å bare bruke VirtualBox til å installere f.eks. Lubuntu og kjøre Python der.

  • 29.03.2017: Slides fra Jonas sin presentasjon i dag.
  • 28.03.2017:
    • I oppgave 1, prosjekt 3, meningen er at partikkelens posisjon i \(t=0\) er \([L,0]\) og ikke \([0,L]\).
    • Flere av dere har sett noe kommentarer til deres innlevering av prosjekt 2. Noe mer kontekst ift kommentarene kan fås fra dette dokumentet. Hvis dere har videre spørsmål ta venligst kontakt med Jonas Blomberg Ghini.
  • 24.03.2017: På onsdag d. 29.03 kl. 10:00-11:30 skal Jonas Blomberg Ghini gi en slags tutorial i "gode vaner i Python" som skal skje i R2.
  • 21.03.2017:
    • Prosjekt 3 presenteres d. 24.03 kl 10:15 i R5.
    • Resultatene fra undersøkelsen av prosjekt 2 finnes her. Mange takk til alle som har skrevet kommentarer!
    • Referat fra møtet med referansegruppe ligger her.
  • 14.03.2017: Vennligst husk å fylle inn undersøkelsen av prosjekt 2.
  • 10.01.2017: LaTeX sourse til rapport malen er publisert her.
  • 09.03.2017: Husk at vi er i R2 istedenfor R5 i morgen, 10.03.
  • 02.03.2017:
    • Gamle eksamensoppgaver og likn. oppgaver med løsningsforslag finnes nederst på denne side.
    • Vi har også diskutert retningslinjer ifm prosjektoppgaver. Her er svaret fra FYS: Dere skal besvare oppgavene, med LaTeX som "språk". Det betyr å forklare hvordan dere har løst de ulike oppgavene, med gode figurer og korte, forklarende tekster. Det fungerende program skal vedlegges (inkluder ikke hele koden i rapporten).
    • Errata til prosjekt 2 er lagt op - see her. Jonas og Mariusz har også skrevet en mal som kan brukes for å besvare prosjektoppgaven (samme sted)
  • 28.02.2017: Prosjekt 1 har vært rettet. Dere kan få deres rapportene inklusive tilbakemeldinger hos Mariusz Eivind Grøtte.
  • 22.02.2017: 10.03 blir vi i R2 istedenfor R5.
  • 21.02.2017: Introduksjon til prosjekt 2 blir gitt på fredag, 24.02, kl 10:15 i R5.
  • 20.02.2017: Resultatene fra undersøkelsen av prosjekt 1 finnes her.
  • 14.02.2017: Referansegruppen og jeg setter stor pris på at du tar få minuter til å fylle ut denne undersøkelsen av prosjekt #1.
  • 02.02.2017: På grunn av vedlikehold av ventilasjonsanlegg i S7 i uke 7+8, er forelesningen TMA4320 tirsdag 8:15-10:00 flyttet til S5. Dette gjelder KUN uke 7 og 8.
  • 27.01.2017:
    • Etter øvingen i dag har jeg to lærebøker på mitt kontor, dvs jeg måtte have tatt en av deres. Skriv gjerne en email til meg hvis du mangler din lærebok. Beklagelig kan den hentes tidligst på tirsdag.
    • Referat fra det første møte med referansegruppen finnes her.
  • 26.01.2017: Prosjekt 1 er online.
  • 23.01.2017: Det første møte med referansegruppe skjer d.25.01 kl 14:15. Ta gjerne kontakt med dem hvis dere har spørsmål, bekymringer, eller tilbakemeldinger.
  • 14.01.2017:
    • Hvis dere trenger hjelp med å finne en samarbeidspartner(e) for de kommende prosjektene - sen gjerne en email til meg. Jeg forventer at dere arbeider i grupper av 1-3 personer.
    • Jeg trenger minst to til å slutte seg til referansegruppe, gjerne fra MTFYMA
  • 12.01.2017: Husk å stille deg som representant i referansegruppe! Send en email til meg snarest mulig. Jeg trenger representatner fra både MTFYMA og BFys.
  • 09.01.2017:
    • Den første forelesning er i morgen, 10.01 kl 08:15-10:00 i S7.
    • Den 12.01 kl 10:15-12 har vi en forelesning i S1, ikke i Kjl1
    • De ikke-obligatoriske øvinger begynner denne fredag, altså 13.01 i R5.
    • Jeg kan godt anbefale å installere Anaconda, hvor Python kommer med mange nyttige numeriske biblioteker (Numpy/Scipy/Matplotlib)
  • 10.11.2016: Velkommen til emnet!

Lærebok, læringsmål, og pensum

  • Lærebok: T. Sauer, Numerical analysis: Amazon, Akademika. Dere kan også kikke på H.P. Langtangen, A Primer on Scientific Programming with Python: Springerlink
  • Oversettelser av Matlab koder fra læreboken til Python: finnes her
  • Læringsmål: finnes her
  • Pensum (ver. 24.04.2017):
    • Kapittel 0: 0.1, 0.5. Ha en ide om 0.3-0.4.
    • Kapittel 1: 1.1-1.5.1
    • Kapittel 2: 2.1-2.4; 2.5 (se notatet istedenfor 2.5.3). 2.6.1-2.6.2. 2.7.1
    • Kapittel 3: 3.1-3.3
    • Kapittel 5: 5.2, 5.4
    • Kapittel 6: 6.1-6.6

Timeplan

  • "Teoriuker": uke 2-4, 7-8, 11-12
  • "Prosjektuker": uke 5-6, 9-10, 13-14
  • Repetisjon: uke 16-17

<schedule> <timeslots>08:15-10:00|10:15-12:00|12:15-13:00|13:15-14:00|14:15-15:00|15:00-16:00</timeslots> <entry day:Tu start:0 end:0 color:ntnu2>Forelesning/Prosjektarbeide (S7; S5 i uke 7 og 8) </entry> <entry day:Tu start:2 end:3 color:ntnu2>Kontortid (SBII/1356) </entry> <entry day:We start:3 end:3 color:ntnu2>Kontortid (SBII/1038) </entry> <entry day:Th start:2 end:3 color:ntnu2>Forelesning/Prosjektarbeide (Kjl1; uke 2: S1) </entry> <entry day:Th start:5 end:5 color:ntnu2>Kontortid (SBII/1356) </entry> <entry day:Fr start:1 end:1 color:ntnu2>Øving/Prosjektarbeide (R5; 10.03 i R2) </entry> </schedule>

Forelesninger (plan med forbehold om endringer)

Dato Tema Avsnitt
Uke 16-17 DFT + spm& svar
25.04 Spm & svar
20.04 Definisjon av DFT. FFT algoritmen. jupyternotebooks.zip 10.1
Uke 13-14 Prosjekt 3
Uke 11-12: Løsning av ordinære diff. likninger (ODEs), Kapittel 6
23.03 Mer om implisitte metoder. Adaptivitet. heat_cond.py, int_flame_rk12.py 6.6, 6.5
21.03 Runge-Kuta metoder. Implisitte metoder. Slides, int_flame.py 6.4, 6.6
16.03 Analyse av numeriske metoder for ODEr, trunkeringsfeil. Systemer av ODEer. 6.2, 6.3
14.03 Initial verdi problemer; eksistens og entydighet of løsninger, osv 6.1
Uke 9-10 Prosjekt 2
Uke 7-8: Løsning av systemer av likninger, Kapittel 2
23.02 Konvergens av matrix-splitting type metoder: se notatet. Metoder for ikke-lineære systemer 2.5.3, 2.7.1
21.02 Et par ord om Cholesky faktorisering. Intro til sparse matriser. Iterative metoder. matricer.zip, sparsemat_example.py, jacobi_example.py 2.6.1-2.6.2, 2.5.4, 2.5.1-2.5.2
16.02 Feilkilder. LU med pivotering. 2.3-2.4
14.02 Systemer av lineære algebraiske likninger. LU-faktorisering. Python implementasjonen som beregner LU faktoriseringen "radvis" lu1.py og "kolonvis", v.h.a. rad-operasjoner (nettop som i boken og i Gauss eliminasjon) lu.py 2.1-2.2
Uke 5-6 Prosjekt 1
Uke 4: Numerisk integrasjon, Kapittel 5
28.01 Intro til prosjekt 1. Midtpunkt og Simpsons kvadraturer. Adaptive kvadraturer. midpoint.py, trapezoid.py, uniform_refinement.py, adaptive_refinement.py 5.2.2, 5.2.4, 5.4
24.01 Chebyshevs interpolasjon, Newton-Cotes kvadratur, uniform_interp.py, error_poly.py, chebyshev.py, chebyshev_poly.py; Jupyter notebooks Simpson.ipynb Example 1.ipynb Middelverdisetningen for integraler 3.3, 5.2
Uke 3: Interpolasjon, kapittel 3
21.01 Newtons representasjon av interpolasjonspolynomet, interpolasjonsfeil, Runge fenomen. lagrange_poly.py, nest.py, newtdd.py, uniform_interp.py, error_poly.py, chebyshev.py, chebyshev_poly.py 3.2
18.01 Interpolasjon: Lagrange polynomet og Newtons representasjon av det 3.1, 3.2 (Teorem 3.5), 0.1
Uke 2: Løsning av likninger, kapittel 1
14.01 Løsning av likninger: konvergens av fikspunktiterasjonen, Newtons metode (og litt om sekant metode), litt om nøyaktighet. fpi.py, newton_div.py 1.2.3, 1.4-1.4.1, 1.3, 1.5.1
11.01 Introduksjon til emnet. Løsning av likninger: halveringsmetode, fikspunktiterasjon. lecture01.pdf, bisect.py, fpi.py 1.1, 1.2

Øvinger

Prosjekter

Oppgavene skal gjennomføres av grupper på 1-3 studenter.

  • Prosjekt 1: Spektral metode (uker 5-6, 30.01.17-12.02.17). Nøkkelord: interpolasjon, løsning av likninger, numerisk integrasjon
    • Rettningslinjer: Oppgaveteksten inneholder konkrete spørsmål. Dere kan skrive rapporten i form av å svare på de ulike oppgavene fortløpende, med etterspurte figurer og korte forklarende tekster til – i en pdf-fil. I tillegg leverer dere inn programfilene (ZIP-fil)
    • Innleveringssystemet; frist: 12.02.17, 23:59
  • Prosjekt 2 (uke 9-10).
    • Innleveringssystemet; frist: 12.03.17, 23:59
    • Jonas Blomberg Ghini er ansvarlig for gjennomføring av prosjekt 2. Kontoret hans er D3-189, med navnet på døra som er Amund Gjerde Gjendem. Han er på kontoret hans
      • Mandag: fra 12 og ut dagen,
      • Tirsdag: fra 8 til 12,
      • Onsdag: hele dagen
      • Torsdag: fra 12 og ut dagen,
      • Fredag: fra 11 og ut dagen.
    • Her er noe Python tips fra Jonas og Mariusz. En ny versjon
    • Rapport mal som kan brukes for deres rapporter (oppdaterte versjon: 03.03.2017). LaTeX source
  • Prosjekt 3 (uke 13-14): Particle-based simulation of transport by ocean currents
    • Eksempel kode: examplecode.py. Husk:
      • På Mac eller Linux skriv i terminalen
        • installer xarray: conda install xarray
        • installer pyproj: conda install pyproj
        • installer netcdf4: conda install netcdf4
        • installer cartopy: conda install -c conda-forge cartopy
        • installer dask: conda install -c conda-forge dask
      • På Windows kan man bruke 'Anaconda Navigator':
        • Anaconda Navigator–> Environment –> Channels –> add, og søk opp "conda-forge". Trykk enter og update Channels.
        • For å legge inn pakkene: Environment –> "search Packages" og søk opp navnene på pakkene. (Kan være at "proj4" trengs også) –> huk av og "apply".
      • download data og rediger datapath i examplecode.py slik at den peker på datafilen
    • Innleveringssystemet; frist: 09.04.17, 23:59
    • Kontortid: Tor Nordam tor [dot] nordam [at] ntnu [dot] no er tilgjengelig Man 27.03 kl 10-12 og Man 03.04 kl 10-15 i E3-126 (Realfag)
    • I oppgave 1, prosjekt 3, meningen er at partikkelens posisjon i \(t=0\) er \([L,0]\) og ikke \([0,L]\).
    • Rapport mal med LaTeX source

Informasjon om eksamen

  • Prosjekter: 30%, skriftlig eksamen: 70%
  • Varighet: 4 timer
  • Tillatte hjelpemidler (hjelpemiddelkode C):
    • Enkel kalkulator
    • Rottmann: Matematisk formelsamling

Gamle eksamensoppgaver og likn.

  • Eksamen fra xx.08.2016 med løsningsforslag.
  • Eksamen fra 06.06.2016 med løsningsforslag.
  • Her kommer flere treningsoppgaver fra MA2501. Prøv også å løse DFT oppgaver fra læreboken. Løsningene kan finnes her.
  • Her ligger et set av de gamle eksamensoppgaver fra TMA4215 som man kan bruke til å forberede til eksamen i TMA4320 (mangler DFT delen; løsning av likninger er "tynn"). De fleste løsninger kan finnes her
  • Jeg har lagt sammen noe oppgaver slik at dere kan forberede til den skriftlige eksamen: se her. Løsningsforslaget.

Kontakt

2017-08-08, Anton Evgrafov