Anteprima
Vedrai una selezione di 3 pagine su 8
Esercizi di MATLAB (Main & Function) risolti del corso di Calcolo numerico Pag. 1 Esercizi di MATLAB (Main & Function) risolti del corso di Calcolo numerico Pag. 2
Anteprima di 3 pagg. su 8.
Scarica il documento per vederlo tutto.
Esercizi di MATLAB (Main & Function) risolti del corso di Calcolo numerico Pag. 6
1 su 8
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Formattazione del testo con tag HTML

-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)

-CONDIZIONAMENTO

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)
clear all;
a=[1 2 3 4];
z=[5 6 7 8];
v=linspace(5,8,100);
[s]=splineprimogrado(v,a,z);
clear all;
clc
f1 = @(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 [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:

5-x3;
3,1,1 on on x1,f1a,'r' x1,f1b,'b'
3,1,2 on on x2,f2a,'r' x2,f2b,'b'
3,1,3 on on x3,f3a,'r' x3,f3b,'b'
Dettagli
Publisher
A.A. 2022-2023
8 pagine
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.