Sei sulla pagina 1di 4

clear

format hex
clc
0.2+0.2-0.4
0.2+0.2+0.2-0.6
a=0.1;
(1+0.01-1)/0.01
%in hex noto errore nell'ultima cifra
format
a=0:0.1:1
b=linspace(0,1,11)
a-b
clc
clear
a=1e16;b=2;c=1;
format hex
a
a+b
a+c
%noto che a+c=a (fenomeno della cancellazione numerica), alcun contributo
%di c anche se non nullo
format
(a+b)-(a+c) %mi aspetto che rianga 1 ma ottengo 2, ancora una volta
%CANCELLAIZONE NUMERICA per c
format hex
%cambia un valore eperde anche il contributo di b
%il problema fortemente malcondizionato
a=1e17; b=8; c=6;
s1=a+b+c
s2=(a+b)+c
s3=(a+c)+b
%in questo caso la somma rimane associativa
a=1e17; b=8; c=-6;
%dovrebbero venire diversi
s1=a+b+c
s2=(a+b)+c
s3=(a+c)+b
format
clear
clc
a=1e280;b=1e30;c=1e-29;
[(a*b)*c a*(b*c) (a*c)*b]
%anche per la moltiplicazione non vale la propriet associativa
%il problema in questo caso che sommo il real max
clear
clc
a=1e16; b=1; c=1e-15;
format hex
[(a+b)*c a*c+b*c]
%non vale neanche la propriet distributiva pertanto
%% CIFRE ESATTE,CIFRE SIGNIFICATIVE
%ERRASS<=0.5*10^(S-N+1) QUESTA E' LA FORMULA CHIAVE
%PRESUPPONE CONOSCENZA DEL VALORE ESATTO
%nella realt calcolo l'errore tra due approssimazioni successive
%x=2.6*x*(1-x) intersezione prabola logistica bisettrice
%x=0.7, determinare valori successive
format long
x(1)=0.7;
for k=2:10
x(k)=2.6*x(k-1)*(1-x(k-1));
end
x
%noto convergenza verso un punto, sono in presenza di un punto fisso
s=-1; %in base alla definiizone, comodo usare format e
for k=1:9 %potevo anche andare da 2 a 10
ea=abs(x(k)-x(k+1));
n(k)=0;
while ea<=0.5*10^(s-n(k)+1);
n(k)=n(k)+1;
end
n(k)=n(k)-1;
end
n
%n dunque il vettore delle cifre significative ad ogni iterata
%questo ciclo e questa formula si possono applicare sempre tranne per il
%confronto con lo zero
%% GRAFICI
%HO SEMPRE BISOGNO DI DUE VETTORI, ascissa e ordinata, unisce i punti
%graf di y=x^2 in -1,1
clear
clc
a=linspace(-1,1,500);
o=a.^2;
plot(a,o)
%il numero di punti chiaramente aumenta la risoluzione
%clf pulisce l'area grafica
%pi figure sullo stesso grafico, come fare?
%y=x^3-x^2+3x+4 e y2=-x^2+2x-3 in -2,2 ,li voglio inserire sullo stesso
%graf successivamente
clf
clear
clc
x=-2:0.01:2;
size(x);
y=x.^3-2*x.^2+3*x+4;
plot(x,y,'k')
%azzurro il colore di default
%come esportare il grafico, come abbellirlo?
xlabel('ascissa')
ylabel('ordinata')
title('grafico di prova, confronto polinomi')
%PER INSERIRE ALL'INTERNO....
gtext('polinomio1')
%volgio inserire secondo polinomio
hold on
y=-x.^2+2*x-3;
plot(x,y,'linewidth',3)
gtext('polinomio2')
hold off %se plotto ancora perdo tutto
%per salvare la figura lavoro sulla finestra della figura stessa
axis([-2.5 2.5 -11.5 -1.5]) %cambiare la scala del grafico, prima le
%ascisse e poi le ordinate
axis equal %per avere le unit di misura identiche
%linewidth, 1 la larghezza di default
%utilizzo di pi aree grafiche
figure(2)
plot(x,y,'linewidth',9)
%il matlab continua a lavorare sull'ultima figura attivata
clear
clc
clf
close all
%y=x^2 in 0 1 e -x in 1 3
%o uso stepfun o il comando hold on, ho queste due possibilit
%principalmente
x=0:0.01:1;
y=x.^2;
plot(x,y,'r')
hold on
x1=1:0.01:3;
y=-x1;
plot(x1,y)
%uso di step fun
x=0:.01:3;
y=x.^2.*(stepfun(x,0)-stepfun(x,1))-x.*(stepfun(x,1));
plot(x,y)
%stepfun unisce i due tratti con una verticale, pertanto meno corretto
%dal punto di vista analitico
clear
clc
close all
clf
%voglio confrontare senx sen2x 2senx nell'intervallo -pi pi, il tutto in
%una sola area grafica, devo utilizzare subplot
x=linspace(-pi,pi,1000);
figure(100)
subplot(3,1,1)
% 3 righe una colonna, lavoro nel primo grafico
plot(x,sin(x))
subplot(3,1,2)
plot(x,2*sin(x)) %noto una differenza nell'asse y
subplot(3,1,3)
plot(x,sin(2*x))
%come disegnare una circonferenza e quindi una non funzione?
%la devo PARAMETRIZZARE
figure(4)
t=linspace(0,2*pi,1000);
plot(4*cos(t),4*sin(t),'r','linewidth',3)
axis square
%viene menzionato comando comet
clc
% comet(4*cos(t),4*sin(t))
%% grafici nello spazio
t=-10:10;
plot3(1-t,2*t,t-1) %le curve devono essere parametrizzate
grid
t=linspace(-4*pi,4*pi,1000);
plot3(cos(t).*t,sin(t).*t,t);
%potrei usare comet3
%%GRAFICO DI SUPERFICI
%non posso fare mesh troppo fitte
[x,y]=meshgrid(-2:.1:4,-4:.1:2);
%prodotto cartesiano?
z=y.*sin(x)+exp(cos(y)-x);
%ho due modi per rappresentare la superfice
mesh(z) %vedo solo il mio telaio della funzione
figure(3)
surf(z) %colora tutto lo spazio funzionale
shading flat %liscia, rende piatto, va applicata dopo il comando surf
shading interp %mi da la migliore risoluzione possibile