Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
MATLAB LEZIONE 1
06-03-2014
Federico Poloni
f.poloni@unipi.it
MATLAB: programma diffuso nell'ambito dell'ingegneria.
- realmax: numero più grande rapp.
- realmin: "" livello mag. di 0,
- eps: risoluzione del museo od ottemure.
- format long: vedo più cifre significative.
Possiamo assegnare altra variabile: b = 1e4 = 10000
Se facciamo molti equazioni con grandi numeri, generiamo ERRORI
- 1/98 . 98 = 1
- 1 – (1/98) . 98 = 1,11... Esempio di formazione dell'errore.
Se metto il ";" il risultato non compare a video
Ricordiamo tutti gli end, alla fine e anche dopo gli if.
Per fermare un ciclo troppo lungo ctrl+c
Uno script sono una serie di comandi scritti uno dopo l'altro.
funzione: è cioè a se stante, che prende valore in ingresso e che restituisce in uscita qualcosa.
- fattoriali: prodotto di tutti i numeri da 1 a n.
- function = espomuniale (x,n) Calcola ex è prendendo i primi n termini dello sviluppo di Taylor.
fx = 1 + x + x2/2! + x3/3! + ... + xn/n!
function p = polnom(a,b) p=1; % accumulatore for i=1:b p=p*a; if b==0 p=1; end end end function y=potenza(x,n) % calcola x^n per n naturale a=x; % accumulatore for i=1:n-1 % oppure a=1 a=a*x; end end if n> plot ([1 2 5 4], [-1 2 4 2])coordinata x
coordinata y
>> plot ([1 2 5 4], [-1 2 4 2], 'r')
= grafica in ROSSO.
>> plot ([1 2 5 4], [-1 2 4 2], 'o')
disegna dei pallini
>> plot (' ', ' ', ('x-g'))
eseguito in linea continua si vede
>> plot ([1 2 3 4 5 6...], [1 4 9 16 25 36...])
>> plot ([1:10], ([1:10]).*([1:10]))
prodotto p.to x p.to
>> x = 1:10
>> plot (x, x .* x)
x .* x è come scrivere (x.^2)
>> x .^ 2
>> plot (x, 3 .* x .^ 3 + 5 + x)
cioè
x3+5x
Disegniamo un cerchio:
t = 0:0.001:2 * pi
plot (cos(t), sin(t))
se diminuiamo il passo possiamo vedere l'insieme di spezzate
>> x = 1000 * rand(2,1)
>> A * x
>> b = A * x
>> x_calcolato = A \ b
Otteniamo circa 8 cifre significative giuste e poi abbiamo tutte cifre diverse
> norm(x_calcolato-x) / norm(x)
\[ \frac{\|x - x\|}{\|x\|} \leq k(A) \cdot \frac{\|b - b\|}{\|b\|} \]
("errore relativo del termine noto")
> econd(A) * eps: cifre significative ehi ho quando
risolvo il sistema lineare
> norm(x - x_calcolato): ERR ASSOLUTO
perturbiamo a mano:
>> b_tilde = b
>> b_tilde(1) = b(1) + 1
>> norm(b_tilde - b) / norm(b)
> econd(A) * norm(b_tilde - b) / norm(b)
>> x_tilde = A \ b_tilde; in caso grande xk il
condizionamento è alto.
Fattorizzazione LU matlab
formo - A21 / R1
formo - A31 / R1
formo - A41 / R1
A = A11 A12 A13 A14 * * * * * * * * * *
L = 1 0 0 0 A21 / A11 1 0 0 A31 / A11 0 1 0 A41 / A11 0 0 1
A = L A
La = A11 A12 A13 A14 0 b22 b23 b24 0 b32 b33 b34 0 b42 b43 b44
LA
- b32 R2 / b22
- b42 R2 / b22
9° passo riduzione a scala
L2 = 1 0 0 0 0 1 0 0 b32 / b22 0 1 0 - b42 / b22 0 0 1
L1A = A11 A12 A13 A14 0 b22 b23 b24 0 0 e33 e34 0 0 e43 e44
L2L1A
passo gemileo
XH =
bK - k-1∑j=1 LkjXj
Lkk
numero di righe di L
function x=utsolve(l,b)
m=size(l,1)
for k=1:m
y=b(k);
for j=1:k-1
y=y-L(k,j)*x(j);
end
x(k) =
y
L(k,k)
end
end
>> triu (L) prende una matrice ed è la sua matrice triangolare superiore
es:>> triu (ones (5))
>> L=triu (laplacian (5))
>> V=[2;3;4;5;6]
>> ut-solve (L,V)
Prendiamo x e moltiplichiamo per l (L*x) per vedere se il risultato è corretto.
3.
(n): -2zn-1 + (2+zn)1 = 0
(n-1): -2zn-2 + (2+zn-1) zn-1 -1 = 0
(n-2): -2zn-3 + (2+zn-3) zn-2 - zn-1 = 0
(2): -z1 + (2+z2) z2 - z3 = 0
(1): -z0 + (2+z1) z1 = θ
Risolvendo l'equazione in ordine da n a 1 risolviamo le inequazioni
matlab:
function [z, theta] = eomplito(n, alpha)
quanto la chiamiamo [a,b] eomplito [100, 1]
beta = 2+alpha
z = zeros( m-1, 1)
z(n-1) = beta
z(n-2) = beta * z(n-1) -1
for i = 1: n-3
- z(n-(i+2)) = beta*z(n-(i+1))-z(n-i) ;
(n): zn-1 = zn + 3
(n-1): zn-2 = (zn-3) zn-2 -1
zn-3 = (zn-2) zn-2 - zn-3
zn-4 = (zn-3) zn-3 - zn-2