Metody L Zadanie 3 Lab

  1. Wstęp teoretyczny

Metoda Newtona – jest jedną z opcji szukana miejsc zerowych funkcji. Opiera się na jej linearyzacji, tj. zastąpieniu funkcji bazowej przez szereg funkcji liniowych, stycznych do jej wykresu. Metoda ta jest szybkozbieżna, p=2 lecz nie zawsze. W każdym przypadku jest zbieżna dla funkcji kwadratowych.

Wzór na linearyzację w punkcie c:

Rozwiązaniem w omawianej metodzie jest miejsce zerowe funkcji liniowej. Jego wyznaczenie wymaga wyznaczenia pochodnej funkcji. Wzór obliczeniowy dla Metody Newtona zamieszczono poniżej.

Aby wyeliminować konieczność liczenia pochodnych zamiast metody Newtona używa się metody siecznych.

Metoda siecznych - w tej metodzie szukania miejsc zerowych zamiast pochodnej pojawia się iloraz różnicowy. Metoda wolniej zbieżna niż Newtona, p=1,618 jednak pewniejsza. Dokładnego przybliżenia nie uzyskamy jedynie wówczas gdy początkowe przybliżenia znajdują się zbyt daleko rzeczywistego pierwiastka.

Wzór obliczeniowy dla metody siecznych:


$$\alpha = x_{n + 1} = x_{n} - \frac{f(x_{n})(x_{n} - x_{n - 1})}{f\left( x_{n} \right) - f(x_{n - 1})}$$

  1. Kod źródłowy programu MatLAB

%Zadanie 3.11 Miejsca zerowe

clc; clear all; close all; format long

f=inline('x.^2-6*x+9');

df=inline('2.*x-6');

a=2; b=4; x=linspace(a,b);

plot(x,f(x))

grid on

% metoda Newtona

xp=3.2; eps0=0.001; mx=30;

[fp,it] = newton(a,b,f,df,xp,eps0,mx,1)

%Obliczenia metodą siecznych

x0=3.2; x1=3.4; delta=0.001; tol=10^-6; max1=30;

[P, it] = sieczne(f, x0, x1, delta, tol, max1)

Zastosowano do obliczeń następujące funkcje:

function [fp,it] = newton(a,b,f,df,xp,eps0,mx,rysuj)

% INPUT

% fun - zadana funkcja

% dfun- zadana pochodna funkcji

% xp - startowy punkt iteracji

% eps - dokladnosc z jaka wyznaczony bedzie punkt staly

% mx - maksymalna liczba iteracji

% OUTPUT

% fp - kolejne przyblizenia pierwiastka

% it - ilosc iteracji do uzyskania zadanej dokladnosci "eps"

xn=xp;

x=linspace(a,b,250);

fun=vectorize(fun);

dfun=vectorize(dfun);

fs=inline('fxn-dfxn*(xn-x)'); fs=vectorize(fs);

r=1;

it=0;

% wymagana liczba iteracji

function [P, it] = sieczne(f, x0, x1, delta, tol, max1)

% INPUT

% f - iterowana funkcja

% x0 - pierwszy punkt startowy

% x1 - drugi punkt startowy

% delta - dokładnosc wyznaczenia miejsca zerowego

% tol - dokladnosc iteracji wartości funkcji

% max1 - maksymalna liczba iteracji

% OUTPUT

% P - wektor kolejnych wartości punktow {pk}

% it - wartosc funkcji g(x) w kolejnych przyblizeniach

r=1; it=0; zero=1;

P(1)=x0;P(2)=x1;

while zero>tol

it=it+1;

x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));

r=abs(x2-x1);

zero=abs(f(x2));

x0=x1;

x1=x2;

P(it+2)=x2;

if r<tol

break

elseif it==max1

disp('przekroczono maksymalna ilosc iteracji')

break

end

end

P=P';

I TUTAJ TRZEBA COŚ Z TYMI SIECZNYMI ALE KURDE NIE WIEM JAK BO MI NIE IDZIE


Wyszukiwarka

Podobne podstrony:
Metody L Zadanie 3 Lab gut
Metody L Zadanie 2 Lab
Metody L Zadanie 1 Lab
zadania z lab 3
Błędy w obliczeniach numerycznych - stare, Informatyka WEEIA 2010-2015, Semestr IV, Metody numeryczn
sprawko oczkowawezlowa, aaa, studia 22.10.2014, całe sttudia, III semestr, metody numeryczne lab
metody zadanie 3
metody materialy, LAB
zadanie lab oblicz rownolegle
zadanie lab-sieci kolejkowe
zadania lab C3
Metody zadania 5
Metody zadania 4
Metodyka zadania
sprawko 2 izy, Automatyka i robotyka air pwr, VI SEMESTR, Notatki.. z ASE, metody numeryczne, lab 2
metody numeryczne wartosc funkcji, Automatyka i Robotyka, Semestr IV, Metody Numeryczne, Lab, lab2
Sprawko Sebastiana i Stacha, Informatyka WEEIA 2010-2015, Semestr IV, Metody numeryczne, Lab 1 spraw
Sprawko moje pierwsze, Informatyka WEEIA 2010-2015, Semestr IV, Metody numeryczne, Lab 1 sprawko
Sprawko moje piąte, Informatyka WEEIA 2010-2015, Semestr IV, Metody numeryczne, Lab 5

więcej podobnych podstron