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 =
``` ```htmlx(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
```html
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 =
```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.
-
Esercizi di "Algebra Lineare e Geometria"
-
Esercizi Algebra e geometria lineare
-
Algebra lineare e geometria - esercizi
-
Esercizi - Geometria e Algebra lineare