Anteprima
Vedrai una selezione di 4 pagine su 11
Disdici quando
vuoi
vuoi
Acquista con carta
o PayPal
o PayPal
Scarica i documenti
tutte le volte che vuoi
tutte le volte che vuoi
Estratto del documento
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);
return
end
end
end
Algoritmo di Newton
function [xstar,x ] = algnewton(f,df,x0)
k=0;
x=x0;
tol=1e-8;
while true
k=k+1;
x(k+1)=x(k)-f(x(k))/df(x(k));
if abs(f(x(k+1)))<tol
xstar=x(k+1);
return
end
end
end
MAIN DI BISEZIONE
clear all
clc
f1 = @(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 all A=zeros(8,8); for i=1:8 for j=1:8 A(i,j)=1/(i+j-1); end end b=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);DIMENSIONI
function [n_elementi ] = dimensioni( matrice ) [n_righe,n_colonne]=size(matrice); n_elementi=n_righe*n_colonne; endESERCIZIO DI ESAME DI CALCOLO NUMERICO
function [ s,m ] = esame(A) %si opera per righe %[n,n]=size(A); s = zeros(1,n); m = zeros(1,n); for j=1:n s(j)=s(j)+A(1,j); for i=1:n if m(j)>A(i,j) m(j)=A(i,j); end end end endINTEGRALE
clear all clcf = @(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)
abs((I-I2t)/I)e3t = abs((I-I3t)/I)-MAIN DI MINIMOMATRICE
clear all
% A = 2*rand(5,6)-1
A = [132 -234 23 -960 97 -4 80 0 24 160 0 0 -11]
-MAIN DI MINIMOQUADRATI
clear all
close all
clcm = 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 PRODOTTOMATRICI
clear all;
A = 2*rand(5,6)-1
B = 2*rand(6,3)-1
C = prodottomatrici(A,B)
A*B
[A0,i0,j0] = minimomatrice(A)
-MAIN DI SPLIPRIMOGRADO
clear all;
a=[1 2 3 4];
z=[5 6 7 8];
v=linspace(5,8,100);
[s]=splineprimogrado(v,a,z);
-MAIN DI ALGORITMO DI NEWTON
clear all
clcf1 = @(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 MINIMOMATRICE
function [A0,i0,j0] =
minimomatrice(A)[m,n] = size(A);
A0 = A(1,1);
i0 = 1;
j0 = 1;
for i = 1:m
for j = 1:n
if A(i,j) < A0
A0 = A(i,j);
i0 = i;
j0 = j;
end
end
end
end
-FUNCTION DI MINIMOQUADRATI
function [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 MATRICI
function 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:n
for j = 1:p
S = 0;
for k = 1:m
S = S + A(i,k)*B(k,j);
end
C(i,j) = S;
end
end
end
Dettagli
SSD
Scienze matematiche e informatiche
MAT/08 Analisi numerica
I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Thomas_9 di informazioni apprese con la frequenza delle lezioni di Calcolo numerico 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.