Advertisement
Guest User

Terceira

a guest
Nov 19th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.13 KB | None | 0 0
  1. clear;
  2. constante = 50;
  3. m = 4.5;
  4. k = 1400;
  5. f1 = @(t, y1, y2) (y2);
  6. f2 = @(t, y1, y2) -( (constante/m) * y2 + (k/m) * y1);
  7. t0 = 0;
  8. tN = 5;
  9. y1_0 = 0.02;
  10. y2_0 = 0;
  11. max_it = 200;
  12. h = (tN - t0)/max_it;
  13. t = linspace(t0, max_it,max_it+1);
  14. w1 = linspace(0, max_it ,max_it+1);
  15. w2 = linspace(0, max_it ,max_it+1);
  16. y1 = linspace(0, max_it ,max_it+1);
  17. y2 = linspace(0, max_it, max_it+1);
  18. t(1) = t0;
  19. y1(1) = y1_0;
  20. y2(1) = y2_0;
  21. w1(1) = y1_0;
  22. w2(1) = y2_0;
  23. printf("\t\t\t\t w1\t\t\t w2\t\t\t \n\n");
  24. for i = 1:max_it
  25. k1 = h * f1( t(i), w1(i), w2(i) );
  26. l1 = h * f2( t(i), w1(i), w2(i) );
  27. k2 = h * f1( t(i) + h/2 , w1(i) + k1/2 , w2(i) + l1/2);
  28. l2 = h * f2( t(i) + h/2 , w1(i) + k1/2 , w2(i) + k1/2);
  29. k3 = h *f1 ( t(i) + h/2, w1(i) + k2/2, w2(i) +l2/2 );
  30. l3 = h *f2 ( t(i) + h/2, w1(i) + k2/2, w2(i) +l2/2 );
  31. k4 = h * f1( t(i) + h, w1(i) + k3, w2(i) + l3/2 );
  32. l4 = h * f2( t(i) + h, w1(i) + k3, w2(i) + l3/2 );
  33. w1(i+1) = w1(i) + (k1 + 2 *(k2 + k3) + k4)/6;
  34. w2(i+1) = w2(i) + (l1 + 2 *(l2 + l3) + l4)/6;
  35. printf("%.1f\t\t %.7f\t\t %.7f\t\t\n ",t(i+1),w1(i+1), w2(i+1));
  36. end
  37. plot(t, w1, 'b', t , w2, 'r');
  38. legend('Posicao','Velocidade');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement