%
%In an experiment, the yield z is dependent on two reactants x and y
%(in mole percentage). The computed yields at 10 data points are given in a
%table with (z,x,y) values given below.
%It is proposed to use the following model that maximizes the yield (so as to
%minimize the least square error):
%z= a0+ a1x+ a2x2 + b1y+ b2y2
%Estimate the parameter vectors a,b from the data.
% matlab file with least squares problem follows:
z=[ 73 78 85 90 91 87 86 91 75 65]';
x=[
20
20
30
40
40
50
50
50
60
70
];
y=[10 10 15 22 22 27 27 27 32 40]';
n=size(y,1);
A=[ones(n,1) x x.*x y y.*y];
disp('data matrix A is ');
disp(num2str(A));
v=A\z;
disp(['least squares solution is v=A\z ']);
disp(num2str(v));
disp('verify the solution by checking the gradient: A''Av-A''z=0');
A'*A*v-A'*z
%%%%%%%%%%%%%%%%%%%%%%output of file follows
data matrix A is
1 20 400 10 100
1 20 400 10 100
1 30 900 15 225
1 40 1600 22 484
1 40 1600 22 484
1 50 2500 27 729
1 50 2500 27 729
1 50 2500 27 729
1 60 3600 32 1024
1 70 4900 40 1600
least squares solution is v=A\z
31.3806
3.23385
-0.0490319
-0.560854
0.043766
verify the solution by checking the gradient: A'Av-A'z=0
ans =
1.0e-09 *
-0.0002
-0.0146
0
-0.0073
-0.2910
%