Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. %reg_cwicz
  2. close all; clear all; clc;
  3. %Dane
  4. wspZ=0.05;
  5. Ldemp=30; xmin=0.1; xmax=1.1;
  6. dx=(xmax-xmin)/(Ldemp-1); x=[xmin:dx:xmax]';%rand(Ldemp,1);
  7. [Yemp,Yteor,wspZ,Af]=obiekt(x,-wspZ);
  8. %mamy dane teraz regresja
  9. Kd=10; %wielomian kdego-1 stopnia
  10. %obliczamy macierz wejsc uogulnionych FI
  11. FI(:,1)=ones(Ldemp,1);
  12. for (k=2:Kd) FI(:,k)=x.^(k-1); end
  13. %teraz obliczenia formalne
  14. G=inv(FI'*FI); %Macierz Gaussa
  15. Aob=G*FI'*Yemp; % Wspolczynniki modelu
  16. Yob=FI*Aob; %Wartosci Y w obserwacjach
  17. %----liczymy reszty (błąd modelu)
  18. E=Yemp-Yob;
  19. %liczymy wariancje skaldowej losowej i macierz kowariancji wspolczynnikoa, KA
  20. varZ=(E'*E)/(Ldemp-Kd); sigZ=sqrt(varZ)
  21. KA=G*varZ;
  22. %liczymy odchylenie standardowe bledu estymacji dla obserwacji x i licznosc bledow e w 1.sigmowym przedziale
  23. lmalych=0;
  24. for(n=1:Ldemp)
  25. varYm=FI(n,:)*KA*FI(n,:)'; varYe=varZ+varYm;
  26. sgYm(n)=sqrt(varYm); sgYe(n)=sqrt(varYe);
  27. if(abs(E(n))<=sgYe) lmalych = lmalych+1; end;
  28. end
  29. udzialMalych=lmalych/Ldemp*100;
  30. %liczymy odchylenie standardowe bledu estymacji dla zadanych dowolnych xv, np innych niz x
  31. Ldv=500; Xvmin=0; Xvmax=1.55;
  32. dx=(Xvmax-Xvmin)/(Ldv-1); xv=[Xvmin:dx:Xvmax]';%rand(Ldemp,1);
  33. for(n=1:Ldv)
  34. fi(1)=1; for(k=2:Kd) fi(k)=xv(n)^(k-1); end %obliczamy wejscia uogolnione dla zadanych xv(n)
  35. Yv(n)=fi*Aob; varYm=fi*KA*fi'; varYe=varZ+varYm;
  36. sigYm(n)=sqrt(varYm); sigYe(n)=sqrt(varYe);
  37. end
  38. %-----Koniec------
  39. %Generujemy duzo zaklucen, aby zobaczyc jak moga wygladac dane
  40. Ldem=10000;
  41. dx=(Xvmax-Xvmin)/(Ldem-1); xd=[Xvmin:dx:Xvmax]';%rand(Ldemp,1);
  42. [Ye,Yt]=obiekt(xd,wspZ);
  43. figure(1);
  44. subplot(1,2,1);
  45. plot(xd,Ye,'c.', x,Yteor','k',x,Yemp','k.');
  46. xlabel(sprintf('Dane Y_{emp}k i regresja Y_{ob}r: Kd=%d Ldemp=%d sigZ=%.2f (wspZ=%.2f) udzMalych=%.2f %%', Kd,Ldemp,sigZ,wspZ,udzialMalych)); axis('tight');
  47. subplot(1,2,2);
  48. plot(Yob,E.^2,'k.'); xlabel(sprintf('e^2 v.s. Y_{ob}')); axis('tight');
  49. pause();
  50. subplot(1,1,1);
  51. plot(xd,Ye,'c.', x,Yteor','k',x,Yemp','k.',x,Yob,'r'); hold on
  52. plot(xv,Yv,'r--',xv,Yv-sigYm,'b--',xv,Yv+sigYm,'b--',xv,Yv-sigYe,'k--',xv,Yv+sigYe,'k--'); hold off;
  53. xlabel(sprintf('Dane Y_{emp}k i regresja Y_{ob}r: Kd=%d Ldemp=%d sigZ=%.2f (wspZ=%.2f) udzMalych=%.2f %%', Kd,Ldemp,sigZ,wspZ,udzialMalych)); axis('tight');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement