Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Formulario (solo algoritmi) Metodi numerici, Formulari di Metodi Numerici

Formulario (solo algoritmi spiegati durante il corso) di Metodi numerici da 8 crediti

Tipologia: Formulari

2020/2021

Caricato il 09/10/2021

RP.
RP. 🇮🇹

3.7

(12)

24 documenti

1 / 3

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
PA=LU
[
L ,U , P
]
=lu
(
A
)
y=L¿Pb¿ x=U¿A=L L T→• R=chol
(
A
)
y=R ' ¿b• x=R¿
A=QR
[
Q , R
]
=qr
(
A
)
x=R
(
Q'b
)
A=US V T→•
[
U ,S , V
]
=svd
(
A
)
y=S¿
(
U'b
)
x=Vy
Gauss :for k=1 : n1
for i=k+1 : n
A
(
i , k
)
=A
(
i , k
)
/A(k , k );
for j=k+1 : n
A
(
i, j
)
=A
(
i , j
)
A
(
i , k
)
A
(
k , j
)
;
end
b
(
i
)
=b
(
i
)
A
(
i , k
)
b
(
k
)
;
end
end
x
(
n
)
=b
(
n
)
/A(n , n);
for i=n1 :1 : 1
x
(
i
)
=
(
b
(
i
)
A
(
i ,i +1: n
)
x
(
i+1 : n
)
)
/A
(
i ,i
)
;
end
tridiagonale
Thomas :for k=1 : n1
m
(
k
)
=c(k)/ d(k);
¿
function
[
x , k , ier
]
=Jacobi
(
A , b , x 0, tol , kmax
)
x=[ ] ;
k=[ ];
n=length
(
b
)
;
D=diag
(
diag
(
A
)
)
;tril
(
A
)
per GSmatrice
rho=max
(
|
(
eig
(
eye
(
n
)
inv
(
D
)
A
)
)
|
)
;
if rho>1
ier=2;
return
end
C=AD ;
for k =1 : kmax
¿;
if norm
(
xx0,inf
)
tolnorm(x , inf )
ier=0;
break
end
x0=x;
end
ier=1;
¿
function
[
x , k , ier
]
=gaussseidel
(
A , b , x , tol , kmax
)
n=length
(
b
)
;
ier=1;
for k=1 : kmax
y=x
(
1
)
;
x
(
1
)
=
(
b
(
1
)
A
(
1,2 : n
)
x
(
2 : n
)
)
/A(1,1);
xmax=
|
(
x
(
1
)
)
|
;
emax=
|
(
x
(
1
)
y
)
|
;
for i=2 : n
y=x
(
i
)
;
x
(
i
)
=
(
b
(
i
)
A
(
i , 1: i1
)
x
(
1 : i1
)
A(i ,i +1 : n)x
(
i+1 : n
)
)
/A
(
i ,i
)
;
if
|
(
x
(
i
)
)
|
>xmax
xmax=
|
(
x
(
i
)
)
|
;
end
if
|
(
x
(
i
)
y
)
|
>emax
emax=
|
(
x
(
i
)
y
)
|
;
end
end
if emax<tolxmax
ier=0;
return
end
end
function
[
x , k , ier
]
=gauss¿
(
A , b , x , tol , kmax
)
n=length
(
b
)
;
d=diag
(
A
)
;
[
c , r , a
]
=find
(
A'diag
(
diag
(
A
)
)
)
;
¿
pf3

Anteprima parziale del testo

Scarica Formulario (solo algoritmi) Metodi numerici e più Formulari in PDF di Metodi Numerici solo su Docsity!

PA=LU → •

[

L ,U , P

]

=lu

A

  • y=L ¿ P∗b ¿ • x=U ¿ A=L L

T

→ • R=chol

A

  • y=R ' ¿ b • x=R ¿

A=QR → • [ Q , R ]=qr

A

  • x=R

Q

'

∗b

A=US V

T

→• [ U , S , V ]=svd

A

  • y=S ¿

U

'

∗b

  • x=Vy

Gauss :for k= 1 :n− 1

for i=k + 1 : n

A ( i , k )= A ( i , k ) / A (k , k );

for j=k + 1 :n

A ( i, j)= A (i , j)− A ( i , k )∗A ( k , j) ;

end

b ( i)=b ( i)− A ( i , k )∗b ( k ) ;

end

end

x

n

=b

n

/ A (n , n);

for i=n− 1 :− 1 : 1

x (i) =( b ( i )− A ( i ,i+ 1 : n)∗x ( i+ 1 : n) ) / A ( i ,i) ;

end

tridiagonale →

Thomas :for k= 1 :n− 1

m

k

=c ( k)/ d ( k );

function [ x , k , ier] =Jacobi

A ,b , x

0

, tol , kmax

x=[ ];

k=[ ];

n=length

b

D=diag ( diag

A

) ;tril

A

per GS

matrice

rho=max

eig ( eye

n

−inv

D

∗A )

if rho> 1

ier= 2 ;

return

end

C=A−D ;

for k = 1 : kmax

if norm ( x−x

0

,inf ) ≤ tol∗norm( x ,inf )

ier= 0 ;

break

end

x

0

=x ;

end

ier= 1 ;

function [ x , k , ier ] =gauss

seidel

( A , b , x , tol , kmax)

n=length

b

ier= 1 ;

for k= 1 : kmax

y=x ( 1 ) ;

x

=( b

− A

1,2 :n

∗x

2 :n

) / A(1,1);

xmax=|( x ( 1 ))|;

emax=|( x ( 1 ) − y )|;

for i= 2 :n

y=x (i ) ;

x ( i )=( b ( i)−A ( i, 1 :i− 1 )∗x ( 1 :i− 1 ) −A (i ,i+ 1 :n)∗x ( i+ 1 :n) ) / A ( i ,i) ;

if |( x

i

)|> xmax

xmax=|( x ( i) )|;

end

if |( x ( i)− y )|>emax

emax=|( x ( i)− y )|;

end

end

if emax<tol∗xmax

ier= 0 ;

return

end

end

function [ x , k , ier ]=gauss

¿

( A , b , x , tol , kmax)

n=length ( b) ;

d=diag ( A ) ;

[ c ,r , a ]=find

A

'

−diag ( diag

A

a=difdiv ( x , y )

n=length ( x )− 1 ;

for i= 1 : n

for j=n+ 1 :− 1 :i + 1

y ( j)=( y ( j)− y ( j− 1 ))/( x ( j)−x ( j−i));

end

end

a= y ;

p=interp ( x , a , z )

n=length ( x )− 1 ;

function [ p , ier ] = poligonale ( x , y , t)

n=length ( x ) ;

if t< x ( 1 )∨¿ t > x ( n )

ier= 0 ;

return

end

i= 1 ;

while t>x ( i+ 1 )

i=i+ 1 ;

end

p=( t−x

i+ 1

) /(x

i

−x

i+ 1

)∗y

i

+( t−x

i

) /( x

i+ 1

−x

i

)∗y

i+ 1

ier= 1 ;

function [ p ,ier ] = polinomiale

¿

( x , y , d , t)

N =length( x ) ;

if rem ( N − 1 , d ) = 0

ier=− 1 ;

p=[];

return

end

if t< x ( 1 )∨¿ t > x ( N )

ier= 0 ;

p=[];

return

end

i= 1 ;

while t> x(i∗d + 1 )

i=i+ 1 ;

end

c= polyfit

x (

i− 1

∗d + 1 :i∗d + 1 ) , y (

i− 1

∗d + 1 :i∗

p= polyval

c , t

ier= 1 ;

function [ x , ier ]=newton ( f , fd , x 0 ,nmax ,tol )

ier= 0 ;

x ( 1 )=x 0 ;

for n= 1 :nmax

x ( n+ 1 )=x ( n)−f ( x ( n))/fd( x ( n) );

if

x ( n+ 1 ) −x ( n )

≤tol∗|( x ( n+ 1 ))|

ier= 1 ;

break

end

end

function [ x , ier ]=punto

fisso

( g , x 0 , nmax , tol)

ier= 0 ;

x ( 1 )=x 0 ;

for n= 1 :nmax

x ( n+ 1 )=g( x ( n));

if |( x ( n+ 1 )−x ( n ) )|≤tol∗|(x ( n+ 1 ) )|

ier= 1 ;

break

end

end

function t =trapezi ( f , a , b , m)

x=linspace ( a , b , m+ 1 ) ;

y=f ( x ) ;

t=(b−a)/( 2 ∗m)∗( y ( 1 )+ 2 ∗

( y ( 2 :m) ) + y (m+ 1 )) ;

function s=simpson ( f , a , b , m)

x=linspace ( a , b , 2 ∗m+ 1 ) ;

y =f ( x ) ;

t=(b−a)/( 6 ∗m)∗( y ( 1 )+ 2

( y ( 3 : 2 : 2 ∗m− 1 ) ) + 4

( y ( 2 : 2 : 2 ∗m) )