Giter VIP home page Giter VIP logo

nummat-2324's Introduction

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.

nummat-2324's People

Contributors

agilmartin avatar moj0 avatar mrcinv avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.