sobota, 28 lutego 2015

[Ubuntu / Linux] Jak zrobić obraz pyty CD

  • Posługując się komendą:
    ls /dev/ | grep cdrom
    Sprawdź jak nazywa się napęd optyczny, którego obraz chcesz zrobić.
  • Następnie, używając nazwy urządzenia, wykonaj plecenie:
    dd if=/dev/cdrom of=~/obraz.iso
    Po jego wykonaniu w katalogu domowym utworzony zostanie obraz płyty.

piątek, 27 lutego 2015

Mały tutorial Matlab / Octave

Dość często zdarza mi się rozwiązać mały problem w środowisku Octave. Prezentuję tutaj najbardziej przydatne rozwiązania.

Rysowanie gęstości

Sposób na rysowanie wykresu funkcji dwuwymiarowej.

a=linspace(-1,1,200);
[xx,yy]=meshgrid(a,a);
colormap("list");
pcolor(a,a,sin(xx.^2+yy.^2)) ;
shading flat
colbar

shading interp

Jak dodać paczkę do OCTAVE

Istnieją na to dwa sposoby:

Instalacja z Octave Forge. W repozytorium Octave Forge wyszukaj paczkę, którą chcesz zainstalować np. "control". Aby dokonać instalacji uruchom Octave i wpisz: "pkg install -forge control". Paczka powinna automatycznie ściągnąć się z repozytorium i zainstalować.

Instalacji można dokonać również ręcznie, ściągając plik: "control-***.tar.gz" (gwiazdki oznaczają wersję) i wpisując "pkg install control-***.tar.gz". Uwaga! Octave musi być otwarte w katalogu w którym znajduje się ściągnięta paczka.

Zainstalowane paczki można wyświetlić poleceniem: "pkg list". Paczki pozbyć się można poleceniem "pkg uninstall control"

Jak pomnożyć wielomiany w Octave

W środowisku Octave wielomian jest reprezentowany przez współczynniki funkcji wielomianowej poczynając od najbardziej znaczącego. Na przykład wektor:
p=[3 -2 4 0 1];
reprezentuje funkcję wielomianową:
p(x)=3*x^4-2*x^3+4*x^2+1
Możemy teraz wyświetlić sobie funkcje wielomianową następującym poleceniem:
polyout(p,'x')
3*x^4 - 2*x^3 + 4*x^2 + 0*x^1 + 1
Mnożenie dwóch wielomianów p,q możemy wykonać poleceniem: r = conv(p,q);. Dzielenie natomiast poleceniem: [b,r] = deconv(y,a);. Gdzie b-wynik dzielenia wielomianów, r-reszta z dzielenia.

Jak numerycznie rozwiązać równanie różniczkowe?

Octave pozwala na rozwiązanie wektorowych równań różniczkowych w postaci dx/dt = f(t,x).

  1. Pierwszym krokiem jest definicja funkcji f(x,t). Załóżmy, że f(x,t)=sin(t).
    octave:1> function x_pirm = f(x,t)
    > x_prim = sin(t);
    > endfunction
  2. Definiujemy czas rozwiązania: t=[0:0.01:6*pi]; lub t=linspace(0,6*pi,2000);
  3. Definiujemy warunki początkowe x_0=1;
  4. Rozwiązujemy równanie poleceniem y=lsode("f",x_0,t);
  5. Rysujemy rozwiązanie: plot(t,y)

Jak znaleźć zero funkcji?

Do rozwiązywanie nie liniowych równań postaci f(x)=0 służy funkcja fsolve.

  1. Najpierw musimy zdefiniować funkcję lub ich układ.
    octave:1> function retval = wielo(x)
    > retval = x.^3-x.^2 +4;
    > endfunction
  2. Kolejnym krokiem jest wybór wartości początkowych x_0. Niech x_0 = -1.
  3. Możemy spróbować rozwiązać równanie poleceniem: fsolve(@wielo,x_0). Powinniśmy otrzymać
  4. octave:3> fsolve(@wielo,x_0)
    ans = -1.3146

    Warto zwrócić uwagę, że nie zawsze polecenie fsolve znajduje poprawne rozwiązanie. Jeśli położymy x_0 = 5, rozwiązanie okaże się błędne.

Jak zmienić grubość linii na wykresie?

Służy do tego parametr 'LineWidth' w funkcji plot. Na przykład: plot(x,y,'LineWidth',2)

czwartek, 12 lutego 2015

Jak pomnożyć wielomiany w Octave.

W środowisku Octave wielomian jest reprezentowany przez współczynniki funkcji wielomianowej poczynając od najbardziej znaczącego. Na przykład wektor:
p=[3 -2 4 0 1];
reprezentuje funkcję wielomianową:
p(x)=3*x^4-2*x^3+4*x^2+1
Możemy teraz wyświetlić sobie funkcje wielomianową następującym poleceniem:
polyout(p,'x')
3*x^4 - 2*x^3 + 4*x^2 + 0*x^1 + 1
Mnożenie dwóch wielomianów p,q możemy wykonać poleceniem: r = conv(p,q);. Dzielenie natomiast poleceniem: [b,r] = deconv(y,a);. Gdzie b-wynik dzielenia wielomianów, r-reszta z dzielenia.

wtorek, 3 lutego 2015

Ciekawe blogi

Szybki wpis typu lista. Lista blogów, które uważam za szczególnie ciekawe: