Calcolo tramite Matlab per l'interpolazione di una funzione data:
Istruzione MATLAB:
clear all;
f_esatta = @(x) 2.7*exp(-((x+2)/3).^2);
n=5;
xi = linspace(-5,5,n+1);
yi = f_esatta(xi);
% interpolazione
a=polyfit(xi,yi,n);
% valutazione dell'interpolante
x=linspace(-5,5,1e4);
yp=polyval(a,x);
% grafico
figure;
plot(x,f_esatta(x),'-',...
xi,yi,'X',...
x,yp,'--');
grid on;
INTERPOLAZIONE FUNZIONE
i = 1:7;
x = -cos((i-1)*pi/6);
f = @(x) exp(x) .* sin(pi*x);
y = f(x);
p = polyfit(x,y,length(x)-1)
figure
xplot = linspace(x(1),x(end),1000);
yplot = f(xplot);
pplot = polyval(p,xplot);
plot(xplot,yplot,'--',...
xplot,pplot,'-')
FATTORIZZAZIONE LU DI UNA MATRICE A:
FATTORIZZAZIONE LU DI UNA MATRICE A:
%Fattorizzazione LU
A=[9 2 8; 9 2 3; 5 3 8];
[L,U,P]=lu(A);
b=[19 14 16]';
y=L\P*b;
x=U\y;
disp(x);
disp(y);
POLINOMIO INTERPOLANTE CON IL METODO DI NEWTON:
POLINOMIO INTERPOLANTE CON IL METODO DI NEWTON:
% pulizia
clear all
close all
clc
% dati del problema
x = -2:2;
y = [3 1 2 0 5];
% differenze divise
d = difdiv(x,y);
% ascisse in cui valutare P4
xi = linspace(-2,2,1000);
% valuto P4
P4 = interp(x,d,xi);
% grafico
figure
plot(x,y,'o',...
xi,P4,'-')
xlabel('x')
ylabel('y')
grid on
legend('dati da interpolare',...
'polinomio interpolante');