% Approximation par la méthode des moindre carrés clear all close all % nuage d[e points expérimentaux exple 1 x=[0 0.4 0.8]; y=[2.97 2.87 2.45]; % exple 2 %x=[1 4 9]; %y=[1 2 3]; % exple 3 %x=input('Entrez les abcisses entre crochets en les séparant par un espace = '); %y=input('Entrez les ordonnées entre crochets en les séparant par un espace = '); n=length(x); % on détermine le nbe de points % on trace les points expérimentaux figure(1); plot(x,y,'o'); title('Approximation par la méthode des moindres carrés'); legend('points expérimentaux'); hold on; % Approche par g(x) = a0*exp(-a1.x) % % Changement de variable Y = Ln(y) => G(x) = Ln(a0) -a1.x => G(x) = A0 + A1.x Y=log(y); % changement de variable [A0,A1]=bar(x,Y,n); % on détermine ensuite les coeff de la fonction g(x) = a0*exp(-a1.x) a0 = exp(A0) a1 = -A1 % creation d'un vecteur d'abcisses entre les valeurs mini et maxi de x x_vector = linspace(min(x),max(x),20); % creation des ordonnées selon la fonction g(x) = a0*exp(-a1.x) y_vector = a0*exp(-a1*x_vector); plot(x_vector,y_vector,'g'); %legend('approche par la fonction g(x) = a0*exp(-a1.x)'); grid; % Approche par g(x) = a0/sqrt(1 + a1*sqrt(x)) % 1er Changement de variable X = sqrt(x) => g(X) = a0/sqrt(1 + a1*X) X = sqrt(x); % 2eme Changement de variable Y = (1/y)^2 => G(X) = (1/a0)^2 + (a1/a0^2)*X % G(X) = A0 + A1 * X Y=1./y.^2; [A0,A1]=bar(X,Y,n); % on détermine ensuite les coeff de la fonction g(x) = a0/sqrt(1 + a1*sqrt(x)) a0 = sqrt(1/A0); a1 = A1*a0^2; % creation d'un vecteur d'abcisses entre les valeurs mini et maxi de x x_vector = linspace(min(x),max(x),20); % creation des ordonnées selon la fonction g(x) = a0*exp(-a1.x) y_vector = a0./sqrt(1 + a1.*sqrt(x_vector)); plot(x_vector,y_vector,'r'); %legend('approche par la fonction g(x) = a0*exp(-a1.x)'); grid;