Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Matlab - Całkowanie numeryczne w Matlabie, wykresy

galgann 02 Maj 2013 13:03 7413 2
  • #1 02 Maj 2013 13:03
    galgann
    Poziom 16  

    Witam serdecznie wszystkich forumowiczów mam pewien problem z matlabem. Uczę się ale nie jestem w stanie jeszcze sobie ze wszystkim poradzić.
    Kwestia dotyczy całkowania numerycznego metodą prostokątów i trapezów a dokładniej samego kreślenia funkcji.

    Otóż mam funkcję, którą będę całkował:

    y = sqrt(0.5*x).*cos(0.5*x);


    I całkuję ją sobie w danych granicach i dzielę na daną liczbę przedziałów. Zdefiniowałem sobie oczywiście x od ilu do ilu z jakim skokiem. Wykorzystałem do tego metodę prostokątów i trapezów. Napisane kody odpowiednio dla metody prostokątów i trapezów.


    function y = prostokat (a,b,n,f)
    % Dane wejsciowe:
    % a = dolna granica calkowania
    % b = gorna granica calkowania
    % n = liczba podprzedzialow (n >= 1)
    % f = (string) nazwa pliku m-file definiujacego
    % funkcje podcalkowa
    % Dane wyjsciowe:
    % y = przyblizona wartosc calki
    h = (b - a)/n;
    y = 0;
    for i = 1 : n
    y = y + feval(f,a+(2*i-1)*h/2);
    end
    y = h*y;



    function y = trapez(a,b,n,f)
    % Dane wejsciowe:
    % a = dolna granica calkowania
    % b = gorna granica calkowania
    % n = liczba podprzedzialow (n >= 1)
    % f = (string) nazwa pliku m-file definiujacego
    % funkcje podcalkowa
    % Dane wyjsciowe:
    % y = przyblizona wartosc calki
    h = (b - a)/n;
    y = (feval(f,a) + feval(f,b))/2;
    for i = 1 : n-1
    y = y + feval(f,a+i*h);
    end
    y = h*y;


    Otrzymałem interesujące mnie wyniki do porównania i wpływu ilości przedziałów na wynik całkowania, oraz oczywiście wykres funkcji całkowanej w jej przedziale.

    I tu moje umiejętności dalej kuleją. Teraz chciałbym napisać program na bazie programu prostokąt/trapez, który dla tych samych danych wejściowych oprócz podania wyniku, będzie również kreślił wykres jak faktycznie realizowane jest całkowanie.
    Czyli oprócz wyniku w "command window" chciałbym dostać wykres na którym będzie wykreślona funkcja którą całkuję oraz nałożone na nią zostaną prostokąty z których liczone jest pole.
    Podobnie z metodą trapezów.

    Z góry dziękuję za pomoc i podpowiedzi.
    Matlab to super opcja, trzeba by go tylko opanować w miarę biegle.

    0 2
  • #3 07 Maj 2013 18:45
    galgann
    Poziom 16  

    Witam, przepraszam, że tak późno odpisuje.

    Dziękuję bardzo, przeanalizuję i postaram się coś z tym zrobić.

    0