Wybrane metody numeryczne

Metody numeryczne rozwiązywania równania f(x)=0

Poniżej przedstawiono dwie metody znajdowania miejsca zerowego funkcji f(x) w danym przedziale [A,B] czyli wyznaczania pierwiastka równania f(x)=0, a mianowicie metodę:
        1) bisekcji (połowienia przedziału)
        2) siecznych (reguła falsi)

Metody te opierają się na twierdzeniu Bolzano-Cauchy'ego:
"Jeżeli funkcja ciągła f(x) ma na końcach przedziału domkniętego wartości różnych znaków, to wewnątrz tego przedziału, istnieje co najmniej jeden pierwiastek równania f(x) = 0".

Metody wymagają spełnienia następujacych warunków:
        a) funkcja jest ciągła,
        b) ma różne znaki na końcach danego przedziału [A, B],
        c) ma tylko jeden pierwiastek w tym przedziale


1) metoda bisekcji (połowienia przedziału)

(3kb)

Zdefiniuj funkcję f1(x) i zapisz w osobnym pliku (o nazwie f1.m)

Następnie napisz program według nastepujacego algorytmu:

1) Wczytaj dane: granice przedziału: A, B, oraz dokładność: D
2) Wyświetl wykres funkcji f1(x) w przedziale A, B
3) Jeśli f1(A) i f1(B) mają jednakowe znaki to wyświetl komunikat: "Zły przedział" i zakończ działanie programu, a w przeciwnym przypadku:
4) podstaw: S=A
5) Dopóki |f1(S)|>D wykonuj połowienie przedziału nastepująco:
        6) oblicz środek: S=(A+B)/2
        7) Jeśli f1(A) i f1(S) mają jednakowe znaki to podstaw A=S a w przeciwnym przypadku podstaw B=S
8) Koniec pętli "dopóki"
8) WYNIK=S, wyświetl WYNIK i zakończ


2) metoda siecznych (reguła falsi)

(8kb)

Zdefiniuj funkcję f2(x) i zapisz w osobnym pliku (o nazwie f2.m)

Następnie napisz program według nastepujacego algorytmu:

1) Wczytaj dane: granice przedziału: A, B, oraz dokładność: D
2) Wyświetl wykres funkcji f2(x) w przedziale A, B
3) Jeśli f2(A) i f2(B) mają jednakowe znaki to wyświetl komunikat: "Zły przedział" i zakończ działanie programu, a w przeciwnym przypadku:
3) podstaw: S=A
3) Dopóki |f2(S)|>D wykonuj zmniejszanie przedziału nastepująco:
        4) oblicz punkt w którym sieczna przecina oś x: S=(A*f2(B)-B*f2(A)) / (f2(B)-f2(A))
        5) Jeśli f2(A) i f2(S) mają jednakowe znaki to podstaw A=S a w przeciwnym przypadku podstaw B=S
6) Koniec pętli "dopóki"
7) WYNIK=S; wyświetl WYNIK i zakończ


Sortowanie rosnące zbioru

Napisz program sortowania w/g podanego niżej algorytmu.

Podpowiedzi: wykorzystaj funkcję length oraz pętlę while (kolor niebieski) i pętlę for (kolor żółty). Jeśli czegoś nie pamiętasz to m.in. masz do dyspozycji "help słowo_do objaśnienia".
(4kb)