Skip to content

mrcinv/nummat-2324

Repository files navigation

Vaje pri predmetu Numerična matematika

Navodila

To je projekt za delo pri predmetu Numerična matematika. Projekt je na začetku semestra prazen, tekom semestra bomo na vsakih vajah dodali rešitve. Gradiva z bolj podrobnim opisom so pripravljena v repozitoriju z gradivi.

Predlagam, da si vsak naredi svoj Git repozitorij (na Gitlabu, Githubu ali kje drugje), kjer si uredi kodo in dokumentacijo, ki jo bomo pisali pri tem predmetu. Prav tako bomo git uporabljali za oddajo domačih nalog.

Navodila za hiter začetek

Ob začetku vaje si najprej ustvarimo direktorij oziroma paket za Julio1, kjer bo shranjeno naše delo

$ julia
julia> # pritisnemo ], da pridemo v način pkg
pkg> activate . # aktiviramo delovno okolje v trenutnem direktoriju (npr. vaje)
(vaje)pkg> generate VajaXY # generiramo ogrodje za novo vajo
(vaje)pkg> develop VajaXY  # dodamo pravkar generirano vajo v delovno okolje
(vaje) pkg> # pritisnemo tipko za brisanje nazaj, da zopet pridemo v navaden način
julia>

Zgornji ukazi ustvarijo direktorij VajaXY z osnovno struktura paketa v Jiliji. Za bolj obsežen projekt, lahko uporabite šablono PkgTemplates ali PkgSkeleton.jl.

julia> cd("VajaXY") # pritisnemo ;, da pridemo v način lupine
shell> tree .
.
├── Project.toml
└── src
    └── VajaXY.jl

1 directory, 2 files

Direktoriju dodamo še teste, skripte z demnostracijsko kodo in README dokument.

shell> mkdir test
shell> touch test/runtests.jl
shell> touch README.md
shell> mkdir scripts
shell> touch scripts/demo.jl
shell> tree .
.
├── Manifest.toml
├── Project.toml
├── scripts
│   └── demo.jl
├── src
│   └── VajaXY.jl
└── test
    └── runtests.jl

Ko je direktorij s kodo pripravljen lahko naložimo kodo iz VajaXY.jl v ukazni vrstici

julia> using VajaXY
julia> VajaXY.moja_super_funkcija()

Boljša možnost je, da kodo uporabimo v scripti npr. scripts\demo.jl.

# demo.jl vsebuje primere uporabe funkcije iz modula/paketa VajaXY
using VajaXY

VajaXY.moja_super_funkcija()

Scripto lahko poženemo z ukazom ìnclude.

julia> include("scripts/demo.jl")

Začetno strukturo paketa si lahko shranimo v šablono in uporabimo PkgSkeleton.jl za generiranje novih paketov.

Testi

Vstopna točka za teste je test\runtests.jl. Paket Test omogoča pisanje enotskih testov, ki se lahko avtomatično izvedejo v sistemu nenehne integracije (Continuous Integration).

V juliji teste pišemo z makroji @test in @testset. Če test/runtests.jl lahko napišemo

using Test, VajaXY

@test VajaXY.funkcija_ki_vrne_ena() == 1

Lahko teste poženemo tako, da v pkg načinu poženemo ukaz test VajeXY

(vaje) pkg> test VajeXY

    Testing Running tests...
    Testing VajaXY tests passed

Dokumentacija

Za pisanje dokumentacijo navadno uporabimo format Markdown. S paketom Documenter lahko komentarje v kodi in markdown dokumentente združimo in generiramo HTML ali PDF dokumentacijo s povezavo na izvorno kodo.

Za pripravo posameznih poročil lahko uporabite IJulia, Weave.jl, Literate.jl ali Quadro.

Organizacija direktorijev

  • vaje direktorij z vajami, ki služi kot delovno okolje

  • vaje/VajaXY vsaka vaja ima svoj direktorij

  • posamezen direktorij za vajo je organiziran kot paket s kodo, testi in dokumentacijo

      vaje
       └── Vaja01
         ├── Project.toml
         ├── README.md
         ├── src
         |   └─ Vaja01.jl
         ├── test
         |   └─ runtests.jl
         ├── doc
         |   ├─  makedocs.jl
         |   └─ index.md
         └─ scripts
            └─ demo.jl
    

Delovno okolje

Za hitrejše in lažje delo z programskim jezikom julia uporabite Revise. Pred začetkom dela poženite

julia> using Revise

Zgornji ukaz bo poskrbel, da se bodo definicije funkcij sproti posodabljale, ko bomo spreminjali kodo v datotekah.

Če želite, da se Revise zažene ob vsakem zagonu programa julia, lahko datoteko startup.jl namestite v .julia/config/startup.jl

$ cp startup.jl $HOME/.julia/config/startup.jl

Generiranje PDF dokumentov

Za generiranje PDF dokumentov s paketi Documenter ali Weave.jl je potrebno namestiti TeX/LaTeX. Priporočam uporabo TinyTeX. Po namestitvi tinytex, dodamo še nekaj LaTeX paketov, tako da v terminalu izvedemo naslednji ukaz

tlmgr install microtype upquote minted

Povezave

Footnotes

  1. Na vajah bomo uporabljali programski jezik Julia. Študentje lahko, če želijo, na vajah in za izdelavo domačih nalog uporabljajo katerikoli programski jezik.

About

Gradiva za vaje pri predmetu Numerična matematika na FRI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published