Anteprima
Vedrai una selezione di 7 pagine su 28
Esercizi di esame di Geometria e algebra lineare e Calcolo numerico revisionati con sol software Matlab Pag. 1 Esercizi di esame di Geometria e algebra lineare e Calcolo numerico revisionati con sol software Matlab Pag. 2
Anteprima di 7 pagg. su 28.
Scarica il documento per vederlo tutto.
Esercizi di esame di Geometria e algebra lineare e Calcolo numerico revisionati con sol software Matlab Pag. 6
Anteprima di 7 pagg. su 28.
Scarica il documento per vederlo tutto.
Esercizi di esame di Geometria e algebra lineare e Calcolo numerico revisionati con sol software Matlab Pag. 11
Anteprima di 7 pagg. su 28.
Scarica il documento per vederlo tutto.
Esercizi di esame di Geometria e algebra lineare e Calcolo numerico revisionati con sol software Matlab Pag. 16
Anteprima di 7 pagg. su 28.
Scarica il documento per vederlo tutto.
Esercizi di esame di Geometria e algebra lineare e Calcolo numerico revisionati con sol software Matlab Pag. 21
Anteprima di 7 pagg. su 28.
Scarica il documento per vederlo tutto.
Esercizi di esame di Geometria e algebra lineare e Calcolo numerico revisionati con sol software Matlab Pag. 26
1 su 28
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

MAIN DI SUMMAX

clear all
A = rand(5,12)
[s,m] = summax(A)

FUNCTION DI SUMMAX

function [s,m] = summax(A)
[l,n] = size(A);
s = zeros(1,n);
m = zeros(1,n);
for j = 1:n
    for i = 1:l
        s(j) = s(j) + A(i,j);
        if A(i,j) > m(j)
            m(j) = A(i,j);
        end
    end
end
end

MAIN DI ERRORE

clear all
x = [1 2 3];
y = [4 5 6];
[ea,er] = errore(x,y,1)
[ea,er] = errore(x,y,2)
[ea,er] = errore(x,y,3)
[ea,er] = errore(x,y,4)

FUNCTION DI ERRORE

function [ea,er] = errore(x,y,p)
nx = length(x);
ny = length(y);
assert(nx==ny,'La lunghezza dei vettori x e y deve essere la stessa.')
n = nx;
e = x-y;
Se = 0;
Sx = 0;
for i = 1:n
    Se = Se + abs(e(i))^p;
    Sx = Sx + abs(x(i))^p;
end
ea = Se^(1/p);
npx = Sx^(1/p);
er = ea/npx;
end

BISEZIONE

function [xstar,x] = bisezione(f,a,b)
assert(f(a)*f(b)<0,'Dati non consistenti.')
tol = 1e-8; %1*10^-8
i = 0;
while true
    i = i+1;
    x(i) = (a(i)+b(i))/2;
    if f(x(i))*f(a(i)) < 0
        a(i+1) = a(i);
        b(i+1) = x(i);
    else
        a(i+1) = x(i);
        b(i+1) = b(i);
    end
    if abs(f(x(i))) < tol % f(x(i)) == 0
        xstar = x(i);
        break;
    end
end
end
```html

x(i);returnendendend-Algoritmo di Newtonfunction [xstar,x ] = algnewton(f,df,x0)k=0;x=x0;tol=1e-8;while truek=k+1;x(k+1)=x(k)-f(x(k))/df(x(k));if abs(f(x(k+1)))<tolxstar=x(k+1);returnendendend-MAIN DI BISEZIONEclear allclcf1 = @(x) exp(x)-2-x;f2 = @(x) cos(x)+1-x;f3 = @(x) log(x)-5+x;[xstar1,x1]= bisezione(f1,0,10)[xstar2,x2]= bisezione(f2,0,10)[xstar3,x3]= bisezione(f3,0,10)-CONDIZIONAMENTOclear allA=zeros(8,8);for i=1:8for j=1:8A(i,j)=1/(i+j-1);endendb=A*ones(8,1);x=A\b;k=cond(A);er=norm(x-ones(8,1))/norm(x);bcap=b;bcap(8)=b(8)+10^-6;xcap=A\bcap;er1=norm(x-xcap)/norm(x);er2=norm(b-bcap)/norm(b);-DIMENSIONIfunction [n_elementi ] = dimensioni( matrice )[n_righe,n_colonne]=size(matrice);n_elementi=n_righe*n_colonne;end-ESERCIZIO DI ESAME DI CALCOLO NUMERICOfunction [ s,m ] = esame(A) %si opera per righe%[n,n]=size(A);s = zeros(1,n);m = zeros(1,n);for j=1:ns(j)=s(j)+A(1,j);for i=1:nif m(j)>A(i,j)m(j)=A(i,j);endendendend-INTEGRALEclear allclcf = @(x) x.*exp(-x).*cos(2*x);I =

``` ```html

x(i);returnendendend-Algoritmo di Newtonfunction [xstar,x ] = algnewton(f,df,x0)k=0;x=x0;tol=1e-8;while truek=k+1;x(k+1)=x(k)-f(x(k))/df(x(k));if abs(f(x(k+1)))<tolxstar=x(k+1);returnendendend-MAIN DI BISEZIONEclear allclcf1 = @(x) exp(x)-2-x;f2 = @(x) cos(x)+1-x;f3 = @(x) log(x)-5+x;[xstar1,x1]= bisezione(f1,0,10)[xstar2,x2]= bisezione(f2,0,10)[xstar3,x3]= bisezione(f3,0,10)-CONDIZIONAMENTOclear allA=zeros(8,8);for i=1:8for j=1:8A(i,j)=1/(i+j-1);endendb=A*ones(8,1);x=A\b;k=cond(A);er=norm(x-ones(8,1))/norm(x);bcap=b;bcap(8)=b(8)+10^-6;xcap=A\bcap;er1=norm(x-xcap)/norm(x);er2=norm(b-bcap)/norm(b);-DIMENSIONIfunction [n_elementi ] = dimensioni( matrice )[n_righe,n_colonne]=size(matrice);n_elementi=n_righe*n_colonne;end-ESERCIZIO DI ESAME DI CALCOLO NUMERICOfunction [ s,m ] = esame(A) %si opera per righe%[n,n]=size(A);s = zeros(1,n);m = zeros(1,n);for j=1:ns(j)=s(j)+A(1,j);for i=1:nif m(j)>A(i,j)m(j)=A(i,j);endendendend-INTEGRALEclear allclcf = @(x) x.*exp(-x).*cos(2*x);I =

```
-0.122122604618968;[I1q,iter1] = quad(f,0,2*pi);[I2q,iter2] = quad(f,0,2*pi,1e-8);[I3q,iter3] = quad(f,0,2*pi,1e-10);e1q = abs((I-I1q)/I)e2q = abs((I-I2q)/I)e3q = abs((I-I3q)/I)x1 = linspace(0,2*pi,50);x2 = linspace(0,2*pi,250);x3 = linspace(0,2*pi,500);y1 = f(x1);y2 = f(x2);y3 = f(x3);I1t = trapz(x1,y1);I2t = trapz(x2,y2);I3t = trapz(x3,y3);e1t = abs((I-I1t)/I)e2t = abs((I-I2t)/I)e3t = abs((I-I3t)/I)-MAIN DI MINIMOMATRICEclear all% A = 2*rand(5,6)-1A = [132 -234 23 -960 97 -4 80 0 24 160 0 0 -11]-MAIN DI MINIMOQUADRATIclear allclose allclcm = 30;x = linspace(0,100,m);y = 0.5*x.^2 + 3*x + 7;x = x + 2*randn(1,m);y = y + 10*randn(1,m);[r,p,er,ep] = minquadrati(x,y);figure(’color’,’w’)hold on;plot(x,y,’o’)plot(x,r(1)+r(2)*x,’r’)plot(x,p(1)+p(2)*x+p(3)*x.^2,’m’)-MAIN DI PRODOTTOMATRICIclear all;A = 2*rand(5,6)-1B = 2*rand(6,3)-1C = prodottomatrici(A,B)A*B[A0,i0,j0] = minimomatrice(A)-MAIN DI SPLIPRIMOGRADOclear alla=[1 2 3
4];z=[5 6 7 8];v=linspace(5,8,100);[s]=splineprimogrado(v,a,z);-MAIN DI ALGORITMO DI NEWTONclear allclcf1 = @(x) exp(x)-2-x;f2 = @(x) cos(x)+1-x;f3 = @(x) log(x)-5+x;df1=@(x)exp(x)-1;df2=@(x)-sin(x)-1;df3=@(x)1/x+1;[xstar1,x1]=algnewton(f1,df1,5)[xstar2,x2]=algnewton(f2,df2,3)[xstar3,x3]=algnewton(f3,df3,7)-FUNCTION DI MINIMOMATRICEfunction [A0,i0,j0] = minimomatrice(A)[m,n] = size(A);A0 = A(1,1);i0 = 1;j0 = 1;for i = 1:mfor j = 1:nif A(i,j) < A0A0 = A(i,j);i0 = i;j0 = j;endendendend-FUNCTION DI MINIMOQUADRATIfunction [r,p,er,ep] = minquadrati(x,y)m = length(x);sx = sum(x);sy = sum(y);sx2 = sum(x.^2);sx3 = sum(x.^3);sx4 = sum(x.^4);sxy = sum(x.*y);sx2y = sum(x.^2.*y);A = [ m sx;sx sx2 ];b = [ sy; sxy ];C = [ m sx sx2;sx sx2 sx3;sx2 sx3 sx4 ];d = [ sy; sxy; sx2y ];r = A\b;p = C\d;er = norm( r(1)+r(2)*x - y );ep = norm( p(1)+p(2)*x+p(3)*x.^2 - y );end-FUNCTION DI PRODOTTO DI MATRICIfunction C = prodottomatrici(A,B)[n,mA] = size(A);[mB,p] = size(B);assert(mA==mB,’Dimensioni
matrici non corrette.’)m = mA;C = zeros(n,p);for i = 1:nfor j = 1:pS = 0;for k = 1:mS = S + A(i,k)*B(k,j);endC(i,j) = S;endendend -MAIN DI RADICI1 clear allclose allx1 = 0:0.001:2;x2 = 0:0.01:10;x3 = 0:0.01:10;f1 = exp(x1)-2-x1;f2 = cos(x2)+1-x2;f3 = log(x3)-5+x3;figure(’color’,’w’)subplot(3,1,1)hold on; box on;plot(x1,f1,’r’)subplot(3,1,2)hold on; box on;plot(x2,f2,’b’)subplot(3,1,3)hold on; box on;plot(x3,f3,’k’) -MAIN DI RADICI2 clear allclose allx1 = 0:0.001:2;x2 = 0:0.01:10;x3 = 0:0.01:10;f1a = exp(x1); f1b = 2+x1;f2a = cos(x2); f2b = -1+x2;f3a = log(x3); f3b = 5-x3;figure(’color’,’w’)subplot(3,1,1)hold on; box on;plot(x1,f1a,’r’)plot(x1,f1b,’b’)subplot(3,1,2)hold on; box on;plot(x2,f2a,’r’)plot(x2,f2b,’b’)subplot(3,1,3)hold on; box on;plot(x3,f3a,’r’)plot(x3,f3b,’b’) -FUNCTION DI SPLINEPRIMOGRADO function [s ] =
m=length(v);
s=zeros(1,m);
for i=1:m
    if (z(1)<=v(i))&&(v(i)<z(2))
        s(i)=a(1)+a(2)*v(i);
    elseif (z(2)<=v(i))&&(v(i)<z(3))
        s(i)=a(1)+a(2)*v(i)+a(3)*(v(i)-z(2));
    elseif (z(3)<=v(i))&&(v(i)<z(4))
        s(i)=a(1)+a(2)*v(i)+a(3)*(v(i)-z(2))+a(4)*(v(i)-z(3));
    end
end
function [L,U,D] = splitting(A)
    [n,n] = size(A);
    L = zeros(n,n);
    U = zeros(n,n);
    D = zeros(n,n);
    for i = 1:n
        for j = 1:n
            if i > j
                L(i,j) = A(i,j);
            elseif i < j
                U(i,j) = A(i,j);
            else % in tutti i rimanenti casi, ovvero i == j
                D(i,j) = A(i,j);
            end
        end
    end
end
A = 2*rand(5,5)-1
L = tril(A,-1)
U = triu(A,1)
D = diag(diag(A))
L+D+U
clear all
S = 0;
k = 0;
while S < 2000
    k = k+1;
    S = S + 3*k^2;
end
N = k
clear all
A=zeros(10,10);
[n,m]=size(A);
for i=1:n
    for j=1:m
        A(i,j)=i*j;
    end
end
function y=troncpow2(x,c,t)
    % calcola la spline quadratica nella base delle potenze troncate.
    % INPUT x: punti
della discretizzazione dell'intervallo% c: vettore dei coefficienti% t: vettore dei nodi interni% OUTPUT y: valore della spline interpolante in xm=length(x);y=zeros(m,1);for i=1:mif x(i)<t(1)y(i)=c(1)+c(2)*x(i)+c(3)*x(i)^2;elseif x(i)<t(2)y(i)=c(1)+c(2)*x(i)+c(3)*x(i)^2+c(4)*(x(i)-t(1))^2;elseif x(i)<t(3)y(i)=c(1)+c(2)*x(i)+c(3)*x(i)^2+c(4)*(x(i)-t(1))^2+ ...c(5)*(x(i)-t(2))^2;elsey(i)=c(1)+c(2)*x(i)+c(3)*x(i)^2+c(4)*(x(i)-t(1))^2+ ...c(5)*(x(i)-t(2))^2+c(6)*(x(i)-t(3))^2;endend-MAIN DI TRIANGOLARESUPclear all% U * x = b% [4x4] [4x1] [4x1]U = [132 -234 23 -960 97 -4 80 0 24 160 0 0 -11]b = [12; -588; 94; 0][x,d] = triangolaresup(U,b)U*x-FUNCTION DI TRIANGOLARESUPfunction [x,d] = triangolaresup(U,b)n = length(b);d = 1;for i = 1:nd = d * U(i,i);end è invertibile.')assert(d~=0,’La matrice U nonx = zeros(n,1);for i = n:-1:1S = 0;for j = (i+1):nS = S + U(i,j)*x(j);endx(i) = (b(i)-S)/U(i,i);endend-MAIN DI LAGRANGEclear allx = [10 50 70 230 460 503];y = [1 12
24 -36 59 -73];
j = 3
v = 80
lv = lagrange(x,j,v)

function lv = lagrange(x,j,v)
n = length(x);
assert((j>=1)&&(j<=n),'j deve essere compreso tra 1 e n');
P = 1;
for i = 1:n
    if i ~= j
        P = P * (v-x(i)) / (x(j)-x(i));
    end
end
lv = P;
end

clear all
A = rand(5,12)
[s,m] = summax(A)

function [s,m] = summax(A)
[l,n] = size(A);
s = zeros(1,n);
m = zeros(1,n);
for j = 1:n
    for i = 1:l
        s(j) = s(j) + A(i,j);
        if A(i,j) > m(j)
            m(j) = A(i,j);
        end
    end
end
end

clear all
x = [1 2 3];
y = [4 5 6];
[ea,er] = errore(x,y,1)
[ea,er] = errore(x,y,2)
[ea,er] = errore(x,y,3)
[ea,er] = errore(x,y,4)

function [ea,er] = errore(x,y,p)
nx = length(x);
ny = length(y);
assert(nx==ny,'La lunghezza dei vettori x e y deve essere la stessa.')
n = nx;
e = x-y;
Se = 0;
Sx = 0;
for i = 1:n
    Se = Se + abs(e(i))^p;
    Sx = Sx + abs(x(i))^p;
end
ea = Se^(1/p);
npx = Sx^(1/p);
er = ea/npx;
end

function [xstar,x] = bisezione(f,a,b,tol)
fa = f(a);
fb = f(b);
assert(fa*fb<0,'La funzione deve avere segno opposto agli estremi dell'intervallo.');
x = [];
while abs(b-a)>tol
    xstar = (a+b)/2;
    fxstar = f(xstar);
    x = [x xstar];
    if fa*fxstar<0
        b = xstar;
        fb = fxstar;
    else
        a = xstar;
        fa = fxstar;
    end
end
end
bisezione(f,a,b)assert(f(a)*f(b)<0,'Dati non consistenti.')tol = 1e-8; %1*10^-8%i = 0;while truei = i+1;x(i) = (a(i)+b(i))/2;if f(x(i))*f(a(i)) < 0a(i+1) = a(i);b(i+1) = x(i);elsea(i+1) = x(i);b(i+1) = b(i);endif abs(f(x(i))) < tol % f(x(i)) == 0xstar = x(i);returnendendend

-Algoritmo di Newton

function [xstar,x ] = algnewton(f,df,x0)k=0;x=x0;tol=1e-8;while truek=k+1;x(k+1)=x(k)-f(x(k))/df(x(k));if abs(f(x(k+1)))<tolxstar=x(k+1);returnendendend

-MAIN DI BISEZIONE

clear allclcf1 = @(x) exp(x)-2-x;f2 =

```
Dettagli
Publisher
A.A. 2023-2024
28 pagine
SSD Scienze matematiche e informatiche MAT/03 Geometria

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Thomas_9 di informazioni apprese con la frequenza delle lezioni di Geometria e algebra lineare e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Morini Benedetta.