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.
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.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
LABORATORIO 6 CALCOLO%
per n = 5% f(xi) = yi
x = linspace(-5, 5, 6); %ho messo 6 perché ci sono n+1 nodi
wf = 1./(1 + w.^2);
y = subs(f, w, x)
format short e
y = [1/26, 1/10, 1/2, 1/2, 1/10, 1/26] %perché se no mi dava che era ancora simbolico
p = polyfit(x, y, 5)
x1 = -5:0.01:5;
y1 = polyval(p, x1);
per n = 10% f(xi) = yi
x = linspace(-5, 5, 11); %ho messo 11 perché ci sono n+1 nodi
wf = 1./(1 + w.^2);
y = subs(f, w, x);
y = [1/26, 1/17, 1/10, 1/5, 1/2, 1, 1/2, 1/5, 1/10, 1/17, 1/26];
p = polyfit(x, y, 10);
x2 = -5:0.01:5;
y2 = polyval(p, x2);
GRAFICI DI F E I DUE INTERPOLANTI
plot(x1, y1, 'k-', 'linewidth', 2)
hold on
fplot(f, 'm', 'linewidth', 2)
hold on
plot(x2, y2, 'k', 'linewidth', 2)
syms winterpolante_err_5 = subs(f, w, x1);
%poi devi farlo diventare double e non syms
err_5 = abs(y1 - interpolante_err_5)
plot(err_5, 'r', 'linewidth', 2)
syms
winterpolante_err_10 = subs(f, w, x2)%poi devi farlo diventare double e non syms err_10 = abs(y2 - interpolante_err_10); hold on plot(err_10, 'b', 'linewidth', 2) RI C HI ESTA 1 POLINOMIO LAGRANGE sigma = [0 0.06 0.14 0.25 0.31 0.47 0.6 0.7]; epsilon = [0 0.08 0.14 0.20 0.23 0.25 0.28 0.29]; p = polyfit(sigma, epsilon, 7); sigma1 = 0:0.01:0.7; epsilon1 = polyval(p, sigma1); plot(sigma1, epsilon1, 'k', 'linewidth', 2) hold on plot(sigma, epsilon, 'o', 'linewidth', 2) COMPOSITA LINEARE sigma2 = 0:0.01:0.7; epsilon2 = interp1(sigma, epsilon, sigma2); plot(sigma2, epsilon2, 'k', 'linewidth', 2) hold on plot(sigma, epsilon, 'o', 'linewidth', 2) MINIMI QUADRATI epsilonIMQ(1, :) = polyval(polyfit(sigma, epsilon, 1), sigma1); epsilonIMQ(2, :) = polyval(polyfit(sigma, epsilon, 2), sigma1); epsilonIMQ(3, :) = polyval(polyfit(sigma, epsilon, 4), sigma1); plot(sigma1,
epsilonIMQ( 1 , : ) , 'k' , 'linewidth' ,2) hold on plot( sigma1, epsilonIMQ( 2 , : ) , 'm' , 'linewidth' ,2) hold on plot( sigma1, epsilonIMQ( 3 , : ) , 'g' , 'linewidth' ,2) hold on plot( sigma, epsilon , 'o' , 'linewidth' ,2) legend('MQ 1', 'MQ 2' , 'MQ 4', 'dati') RI C HI ESTA 2 figure () plot( sigma1 , epsilon1 , 'k' , 'linewidth' , 2); hold on plot( sigma2 , epsilon2 , 'm' , 'linewidth' ,2) hold on plot( sigma1, epsilonIMQ( 3 , : ) , 'g' , 'linewidth' ,2) hold on plot( sigma, epsilon , 'o' , 'linewidth' ,2) legend('Lagrange', 'composita', 'minimi quadrati' , 'dati') RI C HI ESTA 3 La_1 = polyval( p , 0.4) La_2 = polyval( p , 0.75) %La_1 = 2.5275e-01 %La_2 = 8.0963e-02 com_1= interp1(sigma, epsilon, 0.4) com_2= interp1(sigma, epsilon, 0.75) %com_1 = 2.4125e-01 %com_2 =NaNIMQ_1 = polyval(polyfit( sigma , epsilon ,4 ) , 0.4 ) IMQ_2 = polyval(polyfit( sigma , epsilon ,4 ) , 0.75 ) %IMQ_1 = 2.4318e-01 %IMQ_2 = 2.9642e-01 I risultati confermano quanto detto in precedenza. In particolare l'interpolazione polinomiale di Lagrange sembrerebbe essere meno adeguata per rappresentare la legge tra sforzi e deformazioni, producendo un valore di sforzo troppo elevato. x =-2:6; y = x.*sin(x); plot(x,y) % n = 2 x = linspace ( -2 , 6 , 3); syms wf = w.*sin(w); y_1 = subs (f , w ,x) %y_1=[2*sin(2), 2*sin(2), 6*sin(6)] p = polyfit (x , y_1 , 2); x1 = -2 : 0.01 : 6; y1 = polyval( p , x1); % n = 4 x = linspace ( -2 , 6 , 5); syms wf = w.*sin(w); y_2 = subs (f , w ,x) %y_2 = [2*sin(2), 0, 2*sin(2), 4*sin(4), 6*sin(6)] p = polyfit (x , y_2 , 4); x2 = -2 : 0.01 : 6; y2 = polyval( p , x2); % n = 6 x = linspace ( -2 , 6 , 7); syms wf = w.*sin(w); y_3 = subs (f , w ,x) %y_3 = [2*sin(2), (2*sin(2/3))/3, (2*sin(2/3))/3, 2*sin(2),(10*sin(10/3))/3, (14*sin(14/3))/3, 6*sin(6)] p = polyfit (x , y_3 , 6); x3
x = -2:0.01:6;
y3 = polyval(p, x3);
x = -2:6;
y = x.*sin(x);
plot(x, y)
hold on
plot(x1, y1, 'm', 'linewidth', 2)
hold on
plot(x2, y2, 'g', 'linewidth', 2)
hold on
plot(x3, y3, 'r', 'linewidth', 2)
legend('dati', 'n = 2', 'n = 4', 'n = 6')
syms winter_err_2 = subs(f, w, x1) %lo metti in double
err_2 = abs(y1 - inter_err_2);
syms winter_err_4 = subs(f, w, x2) %lo metti in double
err_4 = abs(y2 - inter_err_4);
syms winter_err_6 = subs(f, w, x3) %lo metti in double
err_6 = abs(y3 - inter_err_6);
plot(err_2, 'k', 'linewidth', 2)
hold on
plot(err_4, 'm', 'linewidth', 2)
hold on
plot(err_6, 'g', 'linewidth', 2)
legend('n = 2', 'n = 4', 'n = 6')
norm(err_2, inf)
norm(err_4, inf)
norm(err_6, inf)
ans = 4.5425
ans = 2.0946
ans = 0.5724
%x nod è quello con linspace
%xdis è x1
% n = 5
% x = (a + b)
./ 2 + ( b -a )*c ./ 2n = 5;a = -5;b = 5;%for j = 0 : 5c = cos( - (pi * (0:n)) ./ n);%endx = ( a + b ) ./ 2 + ( b -a )*c ./ 2;syms wf = 1./ ( 1 + w.^2) ;y = subs(f , w , x);y = double(y);p = polyfit( x , y , 5);x1 = a : 0.01 : b ;y1 = polyval (p , x1);plot(x1 , y1 , 'k' , 'linewidth' , 2 )hold onfplot ( f , 'm' , 'linewidth' , 2)% n = 10n = 10;a = -5;b = 5;c = cos( - (pi * (0:n)) ./ n);x = ( a + b ) ./ 2 + ( b -a )*c ./ 2;syms wf = 1./ ( 1 + w.^2) ;y = subs(f , w , x);y = double(y);p = polyfit( x , y , 10);x2 = a : 0.01 : b ;y2 = polyval (p , x2);hold on %così aggiunge sul precedente graficoplot( x2 , y2 , 'g' , 'linewidth' , 2)legend( ' n = 5 ' , 'f' , ' n = 10 ' )ERRORIsyms win_er_5 = subs (f , w , x1);in_er_5 = double(in_er_5);er_5 = abs( y1 - in_er_5);syms win_er_10 = subs (f , w , x2);in_er_10 = double(in_er_10);er_10 = abs( y2 - in_er_10);plot( x1, er_5 , 'k',
<code>'linewidth' , 2)hold onplot( x2, er_10 , 'm', 'linewidth' , 2)legend ( ' n = 5 ' , ' n = 10 ')n = 2;x = linspace (-2*pi , 2*pi , 3);syms wf = sin (1./ (1 + w.^2));y = subs (f , w , x);y = double(y);p = polyfit(x , y , 2);x1 = -2*pi : 0.01 : 2* pi;y1 = polyval( p , x1); % questo è il polinomio interpolante%n = 10;x = linspace (-2*pi , 2*pi , 11);syms wf = sin (1./ (1 + w.^2));y = subs (f , w , x);y = double(y);p = polyfit(x , y , 10);x2 = -2*pi : 0.01 : 2* pi;y2 = polyval( p , x2);p = Columns 1 through 8-0.0000 -0.0000 0.0002 0.0000 -0.0061 -0.00000.0765 0.0000Columns 9 through 11-0.3999 -0.0000 0.8415(per i nodi plot(x , y, 'o'), per tracciare la funzione :x = linspace (-2*pi , 2*pi);f = sin (1./ (1 + x.^2)); )inter = subs ( f , w , x2) ;inter = double(inter);err= abs(inter-y2);plot ( x2,err)norm(err, inf)%ans = 1.8944n = 4;a = -2*pi;b = 2*pi;c = cos( - (pi * (0:n)) ./ n);x = ( a + b ) ./ 2 + ( b -a )*c ./ 2;syms wf =
sin(1./ ( 1 + w.^2)) ;y = subs(f , w , x);y = double(y);p = polyfit( x , y , 4);x1 = a : 0.01 : b ;y1 = polyval (p , x1);syms winter4 = subs ( f , w , x1);inter4 = double(inter4);err4 = abs(y1 - inter4);norm(err4, inf)% ans = 0.4248Con 8 l’errore max è 0.2007. con 10 è 0.1309x = linspace(-1 , 1);f = abs(x - pi/12);plot (x,f)n = 5;a = -1;b= 1;x = linspace(a , b , n+1);syms wf = abs(w - pi/12);y = subs(f , w ,x);y = double(y);p = polyfit (x , y ,n);x1 = a : 0.01 : b;y1 = polyval( p , x1);(nero è 5 , rosa 10 , verde 15)N = [2 : 25];a = -1;b = 1;ris = [];err = [];syms wf = abs(w - pi/12) ;figure()x1 = (a : 0.01 : b);for n = Nc = cos( - (pi * (0:n)) ./ n);x = ( a + b) ./ 2 + ( b -a )*c ./ 2;y = subs(f , w , x);y = double (y);p = polyfit( x , y , n);y1 = polyval(p , x1);inter = subs( f, w , x1);inter = double(inter);err = [err ; abs(y1 - inter)];ris = [ris ; norm(abs(y1 - inter), inf)];plot(x1,y1)hold onendloglog ( N , ris) %(io l’avevo fatto solo
così)M = 2.^[1:7];a = -1;b = 1;err = [];ris = [];syms wf = abs(w - pi/12) ;figure()x1 = a : 0.01 : b;ampiezza= [];for n = MH = (b - a)./n ;ampiezza = [ampiezza ; H];x2 = a : H : b ;y = subs(f , w ,x2);y = double(y);y1 = interp1(x2, y, x1); %(x1 sarebbe la seconda x che trovo%solitamente)inter = subs( f, w , x1);inter = double(inter);err = [err ; abs(y1 - inter)];ris=[ris ; norm(abs(y1 - inter),inf)];plot(x1,y1)hold onendloglog(ampiezza , ris)%al grafico che hai fatto al punto 4 , ci metti sopra questoM = 2.^[1:5];a = -1;b = 1;err = [];ris = [];syms wf = abs(w - pi/12) ;% figure()x1 = a : 0.01 : b;ampiezza= [];for n = MH = (b - a)./n ;ampiezza = [ampiezza ; H];x2 = a : H : b ;y = subs(f , w ,x2);y = double(y);y1 = interp1(x2, y, x1); %(x1 sarebbe la seconda x che troco%solitamente)inter = subs( f, w , x1);inter = double(inter);err = [err ; abs(y1 - inter)];ris=[ris ; norm(abs(y1 - inter),inf)];% plot(x1,y1)% hold onendloglog(M , ris)PUNTO 2>> lab6_7_1>> hold
on>> lab6_7_2>> legend ('legge di moto' , 'dati sperimentali',' Lag ' , ' com ', ' mq ')
PUNTO 3y_L_1_05 = polyval ( p , 1.05)
IMQ_1_05 = polyval(polyfit( (0 : 0.1 : 1)' , y_s ,2 ) , 1.05 )
tdis = linspace (min( t ) , 1.1 , 1000 )
t = 0 : 0.1 :1 ;
tdis = linspace (min( t ) , 1.1 , 1000 )
y_new = polyval ( p , tdis)
y_imq_new = polyval ( polyfit ( t , y_s , 2 ) , tdis)