Advertisement
Eddie_1337

L11 - CN.m

Jan 9th, 2020
478
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.28 KB | None | 0 0
  1. re=1;
  2. re1=1;
  3. re2=1;
  4. re3=1;
  5. re4=1;
  6. while re==1
  7. while re4==1
  8. hi=input('hi=');
  9. while hi<0||hi>pi
  10.     fprintf('Conditie neindeplinita.\n');
  11.     hi=input('hi=');
  12. end
  13. re4=input('\nApasa 0 pentru a continua; 1 pentru reintroducere. ');
  14. end
  15. xi=0:hi:4*pi;
  16. yi=sin(xi);
  17. pp=splinen(xi,yi);
  18. [x,c,l,g]=unmkpp(pp);
  19. AI=c(:,1);
  20. BI=c(:,2);
  21. CI=c(:,3);
  22. DI=c(:,4);
  23. while re3==1
  24. he=input('\nhe=');
  25. while (he<0||he>pi) && he>hi
  26.     fprintf('he introdus gresit. Reintroduceti datele!\n');
  27.     he=input('he=');
  28. end
  29. re3=input('Apasa 0 pentru a continua; 1 pentru reintroducere. ');
  30. end
  31. xe=0:he:4*pi;
  32. ye=ppval(pp,xe);
  33. cd1=[3*AI 2*BI CI];
  34. ppd1=mkpp(xi,cd1);
  35. d1e=ppval(ppd1,xe);
  36. cd2=[6*AI 2*BI];
  37. ppd2=mkpp(xi,cd2);
  38. d2e=ppval(ppd2,xe);
  39. while re2==1
  40. aq=input('\naq=');
  41. bq=input('\nbq=');
  42. while aq<0||bq<0||aq>4*pi||bq>4*pi||aq>bq
  43.     fprintf('Conditie neindeplinita.\n');
  44.     aq=input('\naq=');
  45.     bq=input('\nbq=');
  46. end
  47. re2=input('Apasa 0 pentru a continua; 1 pentru reintroducere. ');
  48. end
  49. k=0;
  50. P=1;
  51. while P>0
  52.     k=k+1;
  53.     P=(aq-xi(k))*(aq-xi(k+1));
  54. end
  55. ia=k;
  56. k=0;
  57. P=1;
  58. while P>0
  59.     k=k+1;
  60.     P=(bq-xi(k))*(bq-xi(k+1));
  61. end
  62. ib=k;
  63. dx=aq-xi(ia);
  64. if dx~=0
  65.     cq=[(1/4)*AI(ia) (1/3)*BI(ia) (1/2)*CI(ia) DI(ia) 0];
  66.     qma=polyval(cq,dx);
  67. else
  68.     qma=0;
  69. end
  70. nq=ib-ia;
  71. ind=ia-1;
  72. qs=0;
  73. for iq=1:nq
  74.     ind=ind+1;
  75.     dx=xi(ind+1)-xi(ind);
  76.     cq=[(1/4)*AI(ind) (1/3)*BI(ind) (1/2)*CI(ind) DI(ind) 0];
  77.     qs=qs+polyval(cq,dx);
  78. end
  79. dx=bq-xi(ib);
  80. if dx~=0
  81.     cq=[(1/4)*AI(ib) (1/3)*BI(ib) (1/2)*CI(ib) DI(ib) 0];
  82.     qpb=polyval(cq,dx);
  83. else
  84.     qpb=0;
  85. end
  86. q=qs+qpb-qma;
  87. qc=cos(aq)-cos(bq);
  88. q
  89. qc
  90. yesin=sin(xe);
  91. err=norm(ye-yesin)^2/(length(xe)-1);
  92. while re1==1
  93. plot(xi,yi,'or',xe,ye,'-b',xe,yesin,'--g',xe,d2e,':k',[aq aq],[-1.25 1.25],'-c',[bq bq],[-1.25 1.25],'-.m');
  94. xlabel('xi,xe');
  95. title(['yi:o ye:- di:-- d2:: d3:_. d4:_.',num2str(q)]);
  96. re1=input('Apasa 0 pentru a continua; 1 pentru reintroducere. ');
  97. end
  98. fprintf('\nProgram executat cu succes. In continuare daca doresti poti reintroduce datele.(1=DA;0=NU)');
  99. re1=input('\nReluam vizualizarea graficului? ');
  100. re2=input('\nDoresti sa schimbi intervalul [aq,bq]? ');
  101. re3=input('\nSchimbam pasul de evaluare he? ');
  102. re4=input('\nSchimbam pasul de interpolare hi? ');
  103. re=input('\nIncepe programul. ');
  104. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement