v3=[1 0 -1 0]' - eco0115 - eco1300 - eco2400
TRANSCRIPT
clear format long gdisp('')disp('exo 1B Solutions partie 1 - calculs des matrices')
exo 1B Solutions partie 1 - calculs des matrices
disp('')disp('Version préliminaire: Attention aux coquilles')
Version préliminaire: Attention aux coquilles
date
ans = '26-Sep-2019'
disp('********************************')
********************************
disp('Q1')
Q1
disp('********************************')
********************************
disp('') v1=[1 1 1 1]'
v1 = 4×1 1 1 1 1
v2=[1 0 1 0]'
v2 = 4×1 1 0 1 0
plot(v2)
1
v3=[1 0 -1 0]'
v3 = 4×1 1 0 -1 0
v4=[0 1 0 1]'
v4 = 4×1 0 1 0 1
v5=[0 2 0 2]'
v5 = 4×1 0 2 0 2
v6=[1 0 0]'
2
v6 = 3×1 1 0 0
v7=[0 1 0]'
v7 = 3×1 0 1 0
v8=[0 1 1]'
v8 = 3×1 0 1 1
disp('Dot product')
Dot product
v1v2=v1'*v2
v1v2 = 2
v1v3=v1'*v3
v1v3 = 0
v1v4=v1'*v4
v1v4 = 2
v1v5=v1'*v5
v1v5 = 4
v2v3=v2'*v3
3
v2v3 = 0
v2v4=v2'*v4
v2v4 = 0
v4v5=v4'*v5
v4v5 = 4
v6v7=v6'*v7
v6v7 = 0
v7v8=v7'*v7
v7v8 = 1
v6v8=v6'*v8
v6v8 = 0
disp('******************** ')
********************
disp(' Q2 ')
Q2
disp(' ')
disp(' ')
4
disp('******************** X1 *********************')
******************** X1 *********************
X1=[1 1 3 0 2 4]
X1 = 2×3 1 1 3 0 2 4
results1=matrixmat(X1)
XX = 3×3 1 1 3 1 5 11 3 11 25Warning: Matrix is singular to working precision.XXinv = 3×3 Inf Inf Inf Inf Inf Inf Inf Inf Infresults1 = struct with fields: Xdet: NaN Xrank: 2 XX: [3×3 double] XXrank: 2 XXdet: -1.4210854715202e-14 XXinv: [3×3 double] XXinvDet: NaN
%X'X singular disp(' ')
disp(' ')
disp(' ')
disp('******************** X2 *********************')
******************** X2 *********************
X2=[1 0
5
1 4 3 8]
X2 = 3×2 1 0 1 4 3 8
results2=matrixmat(X2)
XX = 2×2 11 28 28 80XXinv = 2×2 0.833333333333334 -0.291666666666667 -0.291666666666667 0.114583333333333results2 = struct with fields: Xdet: NaN Xrank: 2 XX: [2×2 double] XXrank: 2 XXdet: 96 XXinv: [2×2 double] XXinvRank: 2 XXinvDet: 0.0104166666666667
disp(' ')
disp(' ')
disp(' ')
disp('******************** X3 *********************')
******************** X3 *********************
X3=[1 0 1 4 1 8]
X3 = 3×2 1 0 1 4 1 8
results3=matrixmat(X3)
XX = 2×2
6
3 12 12 80XXinv = 2×2 0.833333333333333 -0.125 -0.125 0.03125results3 = struct with fields: Xdet: NaN Xrank: 2 XX: [2×2 double] XXrank: 2 XXdet: 96 XXinv: [2×2 double] XXinvRank: 2 XXinvDet: 0.0104166666666667
disp(' ')
disp(' ')
disp(' ')
disp('******************** X4 *********************')
******************** X4 *********************
X4=[1 0 5 1 4 2 3 8 1]
X4 = 3×3 1 0 5 1 4 2 3 8 1
results4=matrixmat(X4)
invX = 3×3 0.375 -1.25 0.625 -0.15625 0.4375 -0.09375 0.125 0.25 -0.125XX = 3×3 11 28 10 28 80 16 10 16 30XXinv = 3×3 2.09375 -0.664062500000001 -0.34375 -0.664062500000001 0.224609375 0.1015625 -0.34375 0.1015625 0.09375
7
results4 = struct with fields: Xdet: -32 Xrank: 3 Xinv: [3×3 double] XX: [3×3 double] XXrank: 3 XXdet: 1024 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.000976562500000001
disp(' ')
disp(' ')
disp(' ')
disp('******************** X5 *********************')
******************** X5 *********************
X5=[1 0 4 1 4 2 3 8 4]
X5 = 3×3 1 0 4 1 4 2 3 8 4
results5=matrixmat(X5)
invX = 3×3 0 -2 1 -0.125 0.5 -0.125 0.25 0.5 -0.25XX = 3×3 11 28 18 28 80 40 18 40 36XXinv = 3×3 5 -1.125 -1.25 -1.125 0.28125 0.25 -1.25 0.25 0.375results5 = struct with fields: Xdet: -16 Xrank: 3 Xinv: [3×3 double]
8
XX: [3×3 double] XXrank: 3 XXdet: 256 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.00390625
disp(' ')
disp(' ')
disp(' ')
disp('******************** X6 *********************')
******************** X6 *********************
X6=[1 2 3 4]
X6 = 2×2 1 2 3 4
results6=matrixmat(X6)
invX = 2×2 -2 1 1.5 -0.5XX = 2×2 10 14 14 20XXinv = 2×2 5.00000000000002 -3.50000000000001 -3.50000000000001 2.50000000000001results6 = struct with fields: Xdet: -2 Xrank: 2 Xinv: [2×2 double] XX: [2×2 double] XXrank: 2 XXdet: 3.99999999999999 XXinv: [2×2 double] XXinvRank: 2 XXinvDet: 0.25
9
disp(' ')
disp(' ')
disp(' ')
disp('******************** X7 *********************')
******************** X7 *********************
X7=[1 0 0 1 4 0 3 8 2]
X7 = 3×3 1 0 0 1 4 0 3 8 2
results7=matrixmat(X7)
invX = 3×3 1 0 0 -0.25 0.25 0 -0.5 -1 0.5XX = 3×3 11 28 6 28 80 16 6 16 4XXinv = 3×3 1 -0.25 -0.5 -0.25 0.125 -0.125 -0.5 -0.125 1.5results7 = struct with fields: Xdet: 8 Xrank: 3 Xinv: [3×3 double] XX: [3×3 double] XXrank: 3 XXdet: 64 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.015625
disp(' ')
10
disp(' ')
disp(' ')
disp('******************** X8 *********************')
******************** X8 *********************
X8=[1 1 1 1 4 0 1 8 2]
X8 = 3×3 1 1 1 1 4 0 1 8 2
results8=matrixmat(X8)
invX = 3×3 0.8 0.6 -0.4 -0.2 0.1 0.1 0.4 -0.7 0.3XX = 3×3 3 13 3 13 81 17 3 17 5XXinv = 3×3 1.16 -0.14 -0.22 -0.14 0.06 -0.12 -0.22 -0.12 0.74results8 = struct with fields: Xdet: 10 Xrank: 3 Xinv: [3×3 double] XX: [3×3 double] XXrank: 3 XXdet: 100 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.01
disp(' ')
disp(' ')
11
disp(' ')
disp('******************** X9 *********************')
******************** X9 *********************
X9=[1 0 0 1 1 2 3 3 4]
X9 = 3×3 1 0 0 1 1 2 3 3 4
results9=matrixmat(X9)
invX = 3×3 1 0 0 -1 -2 1 0 1.5 -0.5XX = 3×3 11 10 14 10 10 14 14 14 20XXinv = 3×3 1 -1 0 -1 5.99999999999996 -3.49999999999997 0 -3.49999999999997 2.49999999999998results9 = struct with fields: Xdet: -2 Xrank: 3 Xinv: [3×3 double] XX: [3×3 double] XXrank: 3 XXdet: 4.00000000000003 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.25
disp(' ')
disp(' ')
disp(' ')
12
disp('******************** X10 *********************')
******************** X10 *********************
X10=[1 2 1 1 4 0 1 8 1 1 -2 0]
X10 = 4×3 1 2 1 1 4 0 1 8 1 1 -2 0
results10=matrixmat(X10)
XX = 3×3 4 12 2 12 88 10 2 10 2XXinv = 3×3 0.527777777777778 -0.0277777777777778 -0.388888888888889 -0.0277777777777778 0.0277777777777778 -0.111111111111111 -0.388888888888889 -0.111111111111111 1.44444444444444results10 = struct with fields: Xdet: NaN Xrank: 3 XX: [3×3 double] XXrank: 3 XXdet: 144 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.00694444444444444
disp(' ')
disp(' ')
disp(' ')
disp('******************** X11 *********************')
******************** X11 *********************
X11=[1 2 1 1 4 0
13
1 8 1 1 -2 1]
X11 = 4×3 1 2 1 1 4 0 1 8 1 1 -2 1
results11=matrixmat(X11)
XX = 3×3 4 12 3 12 88 8 3 8 3XXinv = 3×3 1.31578947368421 -0.0789473684210526 -1.10526315789474 -0.0789473684210526 0.0197368421052632 0.0263157894736842 -1.10526315789474 0.0263157894736842 1.36842105263158results11 = struct with fields: Xdet: NaN Xrank: 3 XX: [3×3 double] XXrank: 3 XXdet: 152 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.00657894736842106
disp(' ')
disp(' ')
disp(' ')
disp('******************** X11 b) une autre version alternative *********************')
******************** X11 b) une autre version alternative *********************
X11b=[1 2 1 1 4 0 1 8 1 1 -2 1.5]
X11b = 4×3 1 2 1 1 4 0 1 8 1
14
1 -2 1.5
results11b=matrixmat(X11b)
XX = 3×3 4 12 3.5 12 88 7 3.5 7 4.25XXinv = 3×3 1.64141414141414 -0.133838383838384 -1.13131313131313 -0.133838383838384 0.023989898989899 0.0707070707070707 -1.13131313131313 0.0707070707070707 1.05050505050505results11b = struct with fields: Xdet: NaN Xrank: 3 XX: [3×3 double] XXrank: 3 XXdet: 198 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.00505050505050505
disp(' ')
disp(' ')
disp(' ')
disp('******************** X12 *********************')
******************** X12 *********************
X12=[1 2 1 1 4 0 1 8 1 1 -2 2]
X12 = 4×3 1 2 1 1 4 0 1 8 1 1 -2 2
results12=matrixmat(X12)
XX = 4 12 4 12 88 6
15
4 6 6XXinv = 1.80882352941176 -0.176470588235294 -1.02941176470588 -0.176470588235294 0.0294117647058823 0.088235294117647 -1.02941176470588 0.088235294117647 0.764705882352941results12 = struct with fields: Xdet: NaN Xrank: 3 XX: [3×3 double] XXrank: 3 XXdet: 272 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.00367647058823529
disp(' ')
disp(' ')
disp(' ')
disp('******************** X13 *********************')
******************** X13 *********************
X13=[1 2 1 1 4 0 1 8 1 1 -2 0 1 2 0]
X13 = 1 2 1 1 4 0 1 8 1 1 -2 0 1 2 0
results13=matrixmat(X13)
XX = 5 14 2 14 92 10 2 10 2XXinv = 0.381818181818182 -0.0363636363636364 -0.2 -0.0363636363636364 0.0272727272727273 -0.1 -0.2 -0.1 1.2results13 = struct with fields:
16
Xdet: NaN Xrank: 3 XX: [3×3 double] XXrank: 3 XXdet: 220 XXinv: [3×3 double] XXinvRank: 3 XXinvDet: 0.00454545454545455
disp(' ')
disp(' ')
disp(' ')
disp('******************** X14 *********************')
******************** X14 *********************
X14=[1 2 1 0 1 4 0 1 1 8 1 0 1 -2 0 1 1 2 0 1]
X14 = 1 2 1 0 1 4 0 1 1 8 1 0 1 -2 0 1 1 2 0 1
results14=matrixmat(X14)
XX = 5 14 2 3 14 92 10 4 2 10 2 0 3 4 0 3Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 9.251859e-19.XXinv = 3.00239975158033e+15 -0.11969696969697 -3.00239975158033e+15 -0.11969696969697 0.0272727272727273 -0.0166666666666667 -3.00239975158033e+15 -0.0166666666666667 3.00239975158033e+15 -3.00239975158033e+15 0.0833333333333333 3.00239975158033e+15results14 = struct with fields: Xdet: NaN Xrank: 3 XX: [4×4 double]
17
XXrank: 3 XXdet: -4.88498130835069e-14 XXinv: [4×4 double] XXinvRank: 1 XXinvDet: 21959700662385.1
disp(' ')
disp(' ')
disp(' ')
disp('******************** X15 *********************')
******************** X15 *********************
X15=[1 2 1 0 1 4 0 1 1 8 1 0 1 -2 0 1 1 2 0 1.1]
X15 = 1 2 1 1 4 0 1 8 1 1 -2 0 1 2 0
results15=matrixmat(X15)
XX = 5 14 2 14 92 10 2 10 2 3.1 4.2 0XXinv = 162.750000000006 0.250000000000008 -164.000000000006 0.250000000000008 0.0277777777777778 -0.388888888888897 -164.000000000006 -0.388888888888897 166.444444444451 -157.500000000006 -0.277777777777786 158.888888888895results15 = struct with fields: Xdet: NaN Xrank: 4 XX: [4×4 double] XXrank: 4 XXdet: 1.43999999999985 XXinv: [4×4 double] XXinvRank: 4
18
XXinvDet: 0.694444444444425
disp(' ')
disp(' ')
disp(' ')
disp('******************** X16 *********************')
******************** X16 *********************
X16=[1 2 1 0 1 4 0 1 1 8 1 0 1 -2 0 1 1 2 0 1.01]
X16 = 1 2 1 1 4 0 1 8 1 1 -2 0 1 2 0
results16=matrixmat(X16)
XX = 5 14 2 14 92 10 2 10 2 3.01 4.02 0XXinv = 15372.7499998851 2.74999999997902 -15386.499999885 2.74999999997902 0.0277777777777739 -2.88888888886789 -15386.499999885 -2.88888888886789 15401.4444443293 -15324.9999998854 -2.77777777775686 15338.8888887742results16 = struct with fields: Xdet: NaN Xrank: 4 XX: [4×4 double] XXrank: 4 XXdet: 0.0144000000002717 XXinv: [4×4 double] XXinvRank: 4 XXinvDet: 69.4444444431645
19
disp(' Pour générer les y ')
Pour générer les y
epsilon2=[1 -1]
epsilon2 = 1 -1
epsilon3=[1 0 -1]
epsilon3 = 1 0 -1
epsilon4=[1 -1 1 -1]
epsilon4 = 1 -1 1 -1
epsilon5=[1 -1 1 -1 0]
epsilon5 = 1 -1 1 -1 0
beta2=[1 2]
beta2 =
20
1 2
beta3=[1 2 3]
beta3 = 1 2 3
beta4=[1 2 3 0.5]
beta4 = 1 2 3 0.5
disp(' Générons les y ')
Générons les y
disp(' ')
disp('******************** y2a *********************')
******************** y2a *********************
y2a=X6*beta2+epsilon2
y2a = 6 10
%y2aLatexTable = latex(sym(y2a))results= olsmat(y2a,X6)
results = struct with fields: betahat: [2×1 double]results = struct with fields: betahat: [2×1 double] yhat: [2×1 double]results = struct with fields: betahat: [2×1 double]
21
yhat: [2×1 double] epsilonhat: [2×1 double]results = struct with fields: betahat: [2×1 double] yhat: [2×1 double] epsilonhat: [2×1 double]
betahat2a=results.betahat
betahat2a = -2.00000000000003 3.99999999999999
yhat2a=results.yhat
yhat2a = 5.99999999999996 9.99999999999988
epsilonhat2a=results.epsilonhat
epsilonhat2a = 4.44089209850063e-14 1.19015908239817e-13
disp(' ')
disp('******************** y2b *********************')
******************** y2b *********************
y2b=X1*beta3+epsilon2
y2b = 13 15
%y2bLatexTable = latex(sym(y2b))results= olsmat(y2b,X1)
Warning: Matrix is singular to working precision.
results = struct with fields: betahat: [3×1 double]results = struct with fields: betahat: [3×1 double] yhat: [2×1 double]results = struct with fields: betahat: [3×1 double] yhat: [2×1 double] epsilonhat: [2×1 double]results = struct with fields:
22
betahat: [3×1 double] yhat: [2×1 double] epsilonhat: [2×1 double]
% singular disp(' ')
disp('******************** y3a *********************')
******************** y3a *********************
y3a=X2*beta2+epsilon3
y3a = 2 9 18
%y3aLatexTable = latex(sym(y3a))results= olsmat(y3a,X2)
results = struct with fields: betahat: [2×1 double]results = struct with fields: betahat: [2×1 double] yhat: [3×1 double]results = struct with fields: betahat: [2×1 double] yhat: [3×1 double] epsilonhat: [3×1 double]results = struct with fields: betahat: [2×1 double] yhat: [3×1 double] epsilonhat: [3×1 double]
betahat3a=results.betahat
betahat3a = 1.66666666666666 1.66666666666667
yhat3a=results.yhat
yhat3a = 1.66666666666666 8.33333333333334 18.3333333333333
epsilonhat3a=results.epsilonhat
epsilonhat3a = 0.333333333333337
23
0.666666666666663 -0.333333333333339
disp(' ')
disp('******************** y3b *********************')
******************** y3b *********************
y3b=X3*beta2+epsilon3
y3b = 2 9 16
%y3bLatexTable = latex(sym(y3b))results= olsmat(y3b,X3)
results = struct with fields: betahat: [2×1 double]results = struct with fields: betahat: [2×1 double] yhat: [3×1 double]results = struct with fields: betahat: [2×1 double] yhat: [3×1 double] epsilonhat: [3×1 double]results = struct with fields: betahat: [2×1 double] yhat: [3×1 double] epsilonhat: [3×1 double]
disp(' ')
disp('******************** y3c *********************')
******************** y3c *********************
y3c=X8*beta3+epsilon3
y3c = 7 9 22
24
%y3cLatexTable = latex(sym(y3c))results= olsmat(y3c,X8)
results = struct with fields: betahat: [3×1 double]results = struct with fields: betahat: [3×1 double] yhat: [3×1 double]results = struct with fields: betahat: [3×1 double] yhat: [3×1 double] epsilonhat: [3×1 double]results = struct with fields: betahat: [3×1 double] yhat: [3×1 double] epsilonhat: [3×1 double]
disp(' ')
disp('******************** y4 *********************')
******************** y4 *********************
y4=X10*beta3+epsilon4
y4 = 9 8 21 -4
%y4LatexTable = latex(sym(y4))results= olsmat(y4,X10)
results = struct with fields: betahat: [3×1 double]results = struct with fields: betahat: [3×1 double] yhat: [4×1 double]results = struct with fields: betahat: [3×1 double] yhat: [4×1 double] epsilonhat: [4×1 double]results = struct with fields: betahat: [3×1 double] yhat: [4×1 double] epsilonhat: [4×1 double]
betahat4=results.betahat
25
betahat4 = 4.44089209850063e-16 2 5
yhat4=results.yhat
yhat4 = 9 8 21 -4
epsilonhat4=results.epsilonhat
epsilonhat4 = 3.5527136788005e-15 0 3.5527136788005e-15 -4.44089209850063e-16
disp(' ')
disp('******************** y5a *********************')
******************** y5a *********************
y5a=X13*beta3+epsilon5
y5a = 9 8 21 -4 5
%y5aLatexTable = latex(sym(y5a))results= olsmat(y5a,X13)
results = struct with fields: betahat: [3×1 double]results = struct with fields: betahat: [3×1 double] yhat: [5×1 double]results = struct with fields: betahat: [3×1 double] yhat: [5×1 double] epsilonhat: [5×1 double]results = struct with fields: betahat: [3×1 double] yhat: [5×1 double]
26
epsilonhat: [5×1 double]
betahat5a=results.betahat
betahat5a = 0.309090909090907 2.01818181818182 4.6
yhat5a=results.yhat
yhat5a = 8.94545454545455 8.38181818181818 21.0545454545455 -3.72727272727273 4.34545454545454
epsilonhat5a=results.epsilonhat
epsilonhat5a = 0.0545454545454547 -0.381818181818181 -0.0545454545454582 -0.27272727272727 0.654545454545456
disp(' ')
disp(' ')
disp(' ')
disp('******************** y5b *********************')
******************** y5b *********************
y5b=X14*beta4+epsilon5
y5b = 9 8.5 21 -3.5 5.5
%y5bLatexTable = latex(sym(y5b))results= olsmat(y5b,X14)
27
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 9.251859e-19.
results = struct with fields: betahat: [4×1 double]results = struct with fields: betahat: [4×1 double] yhat: [5×1 double]results = struct with fields: betahat: [4×1 double] yhat: [5×1 double] epsilonhat: [5×1 double]results = struct with fields: betahat: [4×1 double] yhat: [5×1 double] epsilonhat: [5×1 double]
% singular disp(' ')
disp(' ')
disp(' ')
disp('exo 1B Solutions partie 2 - Régressions à compléter')
exo 1B Solutions partie 2 - Régressions à compléter
28