Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function lab3()
- T = [-5.00 -4.80 -4.60 -4.40 -4.20 -4.00 -3.80 -3.60 -3.40 -3.20 -3.00 -2.80 -2.60 -2.40 -2.20 -2.00 -1.80 -1.60 -1.40 -1.20 -1.00 -0.80 -0.60 -0.40 -0.20 0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 1.60 1.80 2.00 2.20 2.40 2.60 2.80 3.00 3.20 3.40 3.60 3.80 4.00 4.20 4.40 4.60 4.80 5.00 5.20 5.40 5.60 5.80 6.00 6.20 6.40 6.60 6.80 7.00];
- Y = [-217.20 -198.58 -190.56 -169.78 -161.21 -142.92 -125.03 -96.20 -119.56 -88.24 -76.31 -72.98 -65.20 -63.61 -42.55 -47.65 -30.06 -27.50 -16.43 -17.70 -13.39 -11.78 4.09 -6.36 -11.19 3.03 -13.31 0.23 3.00 -6.03 0.10 -16.02 -4.39 -6.34 -17.59 -39.34 -38.89 -44.95 -43.50 -46.01 -73.25 -64.62 -81.79 -86.02 -111.45 -116.46 -142.02 -142.38 -148.94 -163.01 -189.59 -208.73 -216.31 -237.48 -235.97 -267.14 -279.62 -312.59 -329.20 -360.14 -369.02];
- Y1 = OLS(Y,T);
- delta = calculateDelta(Y,Y1);
- fprintf('Delta = %3.2f',delta);
- plot(T,Y,'.b',T,Y1,'r');
- legend({'Sample';
- 'Model';
- })
- end
- function Y2 = OLS(Y,T)
- psiMatrix = makePsiMatrix(T);
- thetaArray = (psiMatrix' * psiMatrix)\(psiMatrix'*Y');
- disp(thetaArray);
- n = length(Y);
- Y2 = zeros(1,n);
- for i = 1:n
- Y2(i) = thetaArray(1) + ...
- thetaArray(2)*T(i) + ...
- thetaArray(3)*T(i)^2;
- end
- end
- function Psi = makePsiMatrix(T)
- n = length(T);
- p = 3;
- Psi = zeros(n,p);
- for i = 1:n
- for j = 1:p
- Psi(i,j) = T(i)^(j-1);
- end
- end
- end
- function X = calculateDelta(Y,Ynew)
- n = length(Y);
- sum = 0;
- for i = 1:n
- sum = sum + power((Y(i) - Ynew(i)), 2);
- end
- X = sqrt(sum);
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement