Newtonov fortran polinom kod
-
Upload
armin-bajric -
Category
Documents
-
view
281 -
download
0
description
Transcript of Newtonov fortran polinom kod
Tu
zla
, D
ec
em
ba
r 2
01
5.
RUDARSKO-GEOLOŠKO-GRAĐEVINSKI FAKULTET
GRAĐEVINSKI ODSJEK
ODABRANA POGLAVLJA MATEMATIKE
1. Newtonov interpolacijski polinom2. Metod najmanjih kvadrata
3. Trapezna-Simpsonova formula
Profesor: Dr.sc. Mevludin Avdić, redovni prof. Student: Semra Softić
Decembar,2015
UVOD
Newtonova metoda (naziva se i Newton-Raphsonova metoda) je jedna od najpoznatijih i najefikasnijih procedura u cijeloj numeričkoj analizi. Ova metoda je naziv dobila po engleskom fizičaru, matematičaru i astronomu Isaac Newton-u.
Ovom metodom pokušavamo pronaći najbolji način za pronalaženje interpolacijskog polinoma koji je jednostavan za programsku upotrebu, a pri tome omogućava brzu i brojčano stabilnu procjenu.Da bi u potpunosti shvatili ovu metodu, potrebno nam je određeno znanje o polinomima.Metoda uvijek konvergira ako je početna aproksimacija dovoljno blizu rješenju.
3
Decembar,2015
Prvi korak metode je lokalna aproksimacija funkcije f (x) pomoću linearne funkcije g(x) koja predstavlja tangentu funkcije f (x) u tački M0. Rješenje jednačine g(x) = 0, x1, predstavlja sljedeću aproksimaciju rješenja jednačine f (x) = 0
Kako bismo izveli algoritam za Newtonovu metodu, postavimo sljedeću relaciju:
Rješenje ove jednačine za , pri čemu je da je:
4
Rekurzivna formula za Newtonovu interpolaciju … (1.1)
Decembar,2015
Jednačina (1.1) se ponavlja dok se ne zadovolji jedan od ili oba kriterija konvergencije:
Newtonova metoda ima i nedostataka jer je za neke funkcije vrlo teško analitički izračunati prvi izvod, a za neke funkcije to uopšte nije moguće. Osim toga, može se desiti da u toku iterativnog procesa prvi izvod bude jednak nuli, čime ne bi bilo moguće nastaviti postupak rješavanja. U takvim slučajevima koriste se neke druge metode, kao što je modifikovana Newtonova metoda ili metoda sječice.
Slika 2.9 Prikaz Newtonov interpolacijskog polinoma u Excelu
5
Decembar,2015
function [f, a, d] = newtoninter(x, y, p)
% Newton interpolation
%
% [f a d] = newtoninter(x, y, p)
%
% Input arguments ([]s are optional):
% x (vector) of size 1xN which contains the interpolation nodes.
% y (vector) of size 1xN which contains the function values at x
% p (vector) of size 1xP which contains points to be interpolated.
%
% Output arguments ([]s are optional):
% f (vector) of size 1xP. The result of interpolation respect to p.
% [a] (vector) of size 1xN which is leading coefficients genereated by
% divided difference method.
% [d] (matrix) of size NxN (triangular) which is the result of the
% divided difference method
%
% Example
% >> x=[1,2,4,7,8]
% >> y=exp(x);
% >> [f a d]= newtoninter(x, y, 5)
%
% Author: Semra Softic <sonots(at)umd.edu
% Date : Dec 2015
6
Newtonov interpolacijski polinom
Decembar,2015
n = length(x);
d(:,1)=y';
for j=2:n
for i=j:n
d(i,j)= ( d(i-1,j-1)-d(i,j-1)) / (x(i-j+1)-x(i));
end
end
a = diag(d)';
Df(1,:) = repmat(1, size(p));
c(1,:) = repmat(a(1), size(p));
for j = 2 : n
Df(j,:)=(p - x(j-1)) .* Df(j-1,:);
c(j,:) = a(j) .* Df(j,:);
end
f=sum(c);
Code
7
Decembar,2015
function run_newtoninter_equallyspaced
% Date: Dec 2015
% Author: Semra Softic <sonots(at)umd.edu>
% sampling points: eqaully spaced
a = -1; b = 1;
n = 10;
h = (b-a)/(n-1);
x = a + (0:n-1)*h;
% interpolation points: eqaully spaced
n = 50;
h = (b-a)/(n-1);
p = a + (0:n-1)*h;
% (1) f(x) = exp(x)
y = exp(x);
truth = exp(p);
f = newtoninter(x,y,p);
hold on;
plot(x,y,'ob');
plot(p,truth,'-b');
plot(p,f,'-r');
title('Newton Interpolation: Uniform spaced nodes');
legend('samples', 'truth', 'interpolation');
% (2) f(x) = 1 / (1 + 25 * x^2)
figure;
y = 1 ./ (1 + 25 .* x.^2);
truth = 1 ./ (1 + 25 .* p.^2);
f= newtoninter(x,y,p);
hold on;
plot(x,y,'ob');
8
Decembar,2015
plot(p,truth,'-b');
plot(p,f,'-r');
title('Newton Interpolation: Uniform spaced nodes');
legend('samples', 'truth', 'interpolation');
Rezultat:
9