Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. %
  2. % Oilerio metodas
  3. %
  4. function main
  5. clc, clear all,
  6. close all
  7. spalva='r';
  8. spalva2='g';
  9. x0=0; % pradinis laiko momentas (s)
  10. %dx=2; % integravimo zingsnis
  11. dx=0.1; % integravimo zingsnis
  12. % dx=0.5; % integravimo zingsnis
  13.  
  14. global m1 m2 v0 tmax ks ts k1 k2 g;
  15. m1 = 0.3; % pirmo kuno mase
  16. m2 = 0.3; % antro kuno mase
  17. v0 = -60; % pradinis abieju kunu greitis
  18. tmax = 10; % galinis laiko momentas (s)
  19. ks = 0.005; % oro pasipriesinimas abiems
  20. ts = 2; % laikas po kurio issiskiria kunams oro pasipriesinimas
  21. k1 = 0.05; % oro pasipriesinimas pirmam kunui
  22. k2 = 0.01; % oro pasipriesinimas antram kunui
  23. g = 9.8; % laisvo kritimo pagreitis
  24.  
  25. nsteps=tmax/dx;
  26. figure(1), hold on, grid on;
  27. xlabel('laikas (s)'); ylabel('greitis (v)');
  28. legend('pirmas kūnas', 'antras kūnas');
  29. title('Oilerio metodas');
  30. x=x0;y1=v0;y2=v0;
  31. pntx=x;pnty1=y1;pnty2=y2;
  32. for i=1:nsteps
  33. dy1=DY1(x,y1);
  34. y1=y1+dx*dy1;
  35. dy2=DY2(x,y2);
  36. y2=y2+dx*dy2;
  37. x=x+dx;
  38. plot(x,-y1,[spalva,'.'],'MarkerSize',8)
  39. plot([pntx,x],[-pnty1,-y1],[spalva,'-']);
  40. plot(x,-y2,[spalva,'.'],'MarkerSize',8)
  41. plot([pntx,x],[-pnty2,-y2],[spalva2,'-']);
  42. pntx=x;pnty1=y1;pnty2=y2;
  43. end
  44. return
  45. function dy1=DY1(x,y1)
  46. if x > ts
  47. dy1 = sign(-y1) * k1 * y1.^2 / m1 + 9.8;
  48. else
  49. dy1 = sign(-y1) * ks * y1.^2 / (m1 + m2) + 9.8;
  50. end
  51. return,end
  52.  
  53. function dy2=DY2(x,y2)
  54. if x > ts
  55. dy2 = sign(-y2) * k2 * y2.^2 / m2 + 9.8;
  56. else
  57. dy2 = sign(-y2) * ks * y2.^2 / (m1 + m2) + 9.8;
  58. end
  59. return,end
  60. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement