Esercizi di MATLAB risolti del corso di Calcolo numerico. Gli argomenti degli esercizi risolti sono: algoritmo di Newton, troncamento di potenze, algoritmo di bisezione, prodotto di matrici, successione, metodo dei minimi quadrati, splitting.
…continua
Esercizi di MATLAB (Main & Function) risolti del corso di Calcolo numerico
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
clear 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;
end-ESERCIZIO 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
end
end-INTEGRALE
clear all
clc
f = @(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 MINIMO
MATRICE
clear all
% A = 2*rand(5,6)-1
A = [132 -234 23 -960 97 -4 80 0 24 160 0 0 -11]-MAIN DI MINIMO
QUADRATI
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')
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)
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 [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 sx2; sx sx2 sx3; sx2 sx3 sx4];
B = [sy; sxy; sx2y];
p = A\B;
r = [m sx sx2; sx sx2 sx3; sx2 sx3 sx4]\[sy; sxy; sx2y];
er = norm(A*p-B);
ep = norm(A*r-B);
end
```html
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-MAIN DI RADICI1
clear all
close all
x1 = 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 all
close all
x1 = 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 =
```Il testo formattato con i tag HTML è il seguente:
SSDScienze matematiche e informaticheMAT/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.
Ciao! Sono il tuo Tutor AI, il compagno ideale per uno studio interattivo. Utilizzo il metodo maieutico per affinare il tuo ragionamento e la comprensione. Insieme possiamo:
Risolvere un problema di matematica
Riassumere un testo
Tradurre una frase
E molto altro ancora...
Cosa vuoi imparare oggi?
Il Tutor AI di Skuola.net usa un modello AI di Chat GPT.
Per termini, condizioni e privacy, visita la relativa pagina.