Giter Club home page Giter Club logo

newtoninterpolation's Introduction

Interpolacja metodą Newtona

Projekt to strona/aplikacja z informacjami i kalkulatorem do interpolacji metodą Newtona.

Cechy i możliwości

  • teoria i informacje o interpolacji metodą Newtona (w tym wzory i tabele przygotowane w HTML),
  • kalkulator generujący tabelę ilorazów różnicowych i wielomian wynikowy interpolacji,
    • wejścia pozwalające na numeryczne wyrażenia rozszerzone o stałe (np. pi) i funkcje (np. sinus).
    • tryb krok po kroku (oraz opóźnienia),
    • pokazywanie i ukrywanie szczegółów,
    • skalowanie i wypełnianie tabelek wyjściowych,
  • ładowanie przykładów z pliku JSON,
  • generator przykładów (wbudowany w kalkulator),
  • generowany pasek nawigacji z linkami do fragmentów strony,
  • zadowalająca responsywność (także na telefonach),
  • tryb ciemny (przełączany po kliknięciu na ikonkę lampki w prawej stronie stopki).

Struktura plików

  • index.html - główny plik strony, używa pozostałe zasoby, zawiera treść i ramę aplikacji.
  • scripts/ - folder z skryptami JavaScript aplikacji. Wylistowane w kolejności ładowania:
    • structurer.js - zawiera funkcje pomocnicze generujące menu na podstawie treści strony (sekcje, artykuły i odpowiednie nagłówki).
    • Fraction.js - zawiera głównie klasę Fraction służącą do obsługi ułamków (obliczenia, wyświetlanie).
    • Polynomial.js - zawiera głównie klasę Polynomial służącą do obsługi wielomianów (obliczenia, wyświetlanie).
    • fractionInput.js - zawiera pomocnicze metody do wprowadzania ułamków (w tym: implementacja parsera wyrażeń numerycznych z stałymi i funkcjami używająca ONP).
    • NewtonInterpolationCalculator.js - zawiera metody do obliczeń interpolacji, kontroler kroków (dla trybu krok po kroku) oraz klasę kapsułkującą funkcjonalności kalkulatora, wraz z generatorem przykładów.
    • index.js - główny i ostatni ładowany skrypt JavaScript, instancjonujący klasę kalkulatora, dołączający obsługę kontrolek ustawień (opcje kalkulatora, krok po kroku, tryb ciemny), wczytujący przykłady (asynchroniczne ładowanie JSON).
  • styles/ - folder z stylami kaskadowymi CSS aplikacji. Wylistowane w kolejności ładowania:
    • common.css - plik stylów skupiający się na zmianie wbudowanych standardowych stylów i przygotowaniu stylów generalnej struktury strony.
    • math.css - zawiera głównie pomocne style do wyświetlania elementów związanych z matematyką (ułamki, wielomiany).
    • index.css - główny plik stylów dla strony, zawierające specyficzne dla głównego pliku HTML style.

Uwagi

  • Link do JSONa do załadowania danych przykładów jest zamieniony na osadzony link URI data:, który pozwala na symulowanie zapytania, zwracający pre-generowaną zawartość. Do generowania tego linku istnieje prosta podstrona prepare-data.html (patrz kod).

  • Obsługiwane stałe i funkcje przy wprowadzaniu wyrażeń numerycznych to: pi, e, sqrt, cbrt, abs, min, max, pow, floor, ceil, round, sin, cos, tan, log, sign.

  • Eksperymentalne alternatywne wyświetlanie tabeli pośrednich wyników w kalkulatorze można przełączyć dwukrotnie klikając na nagłówek tabeli. W tym trybie, w przypadku nadmiaru treści tabela nie używa paska przewijania, ale najpierw rośnie od środka strony.

  • Kod strony, skryptów i styli przygotowane przez Patryka Ludwikowskiego w ramach projektu z przedmiotu Technologie Internetowe (2 rok informatyki), rok studencki 2021/22 na Uniwersytecie Rzeszowskim.

    Wymagana "dokumentacja" na rzecz zaliczenia przedmiotu jest umieszczona w folderze docs.

  • Treści przygotowane przez Patryka Ludwikowskiego oraz Dominika Machnika w ramach ćwiczeń z przedmiotu Metody Numeryczne (2 rok informatyki), rok studencki 2021/22 na Uniwersytecie Rzeszowskim.

Todo

Po angielsku, bo tak mi wygodniej myśleć. Nie wszystkie elementy TODO będą wykonane - zawiera się także luźne pomysły i uwagi.

  • docs
  • trigonometric examples and inputs
    • allow to use decimals (i.e. 123.456). Done.
    • numerical expression inputs with constants and functions (i.e. pi*sqrt(3)/2). Done.
    • buttons to insert constants and functions? Is it really necessary?
    • allow to use decimals/roots from presets. Works.
    • option to make example generator make use of those.
  • more examples!
  • step by step: show where from values are used? colors/arrows?
  • could add some theory text about matrixes approach.
  • local examples: 'Save to examples' button (local storage?).
  • refactor: use ECMAScript modules and/or Typescript.
    • Not likely, since .mjs do not work with file://...
    • Why bother - it already works fine-ish with JavaScript and @jsdoc.
  • embed GeoGebra graphs instead linking?
    • I opt against, page will become too messy, especially more complicated graphs could lag.

newtoninterpolation's People

Contributors

againpsychox avatar

Watchers

 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.