background image

 

Politechnika Śląska w Gliwicach 

Wydział Automatyki, Elektroniki i Informatyki 

 

 

 
 
 
 
 
 
 
 
 

Laboratorium Metod Numerycznych 

dla kierunku Automatyka i Robotyka 

 
 
 
 
 
 
 
 

Temat ćwiczenia: 

Przybliżone rozwiązywanie równań 

różniczkowych zwyczajnych

 

 
 
 

Ćwiczenie wykonano:  04.05.2016, godz. 12:15-13:45 

 
 
 
 
 
 

Grupa 1, sekcja 1: 

Grzegorz Cudok 
Damian Otto 
 

 
 
 
 
 
 
 

   
 

Gliwice 2016 

background image

 

Kody: 
 

%R+k 

1.   

2.      clc;                                              

3.      clear all; 

4.      h=0.2;                                             

5.      x = 0:h:3;                                         

6.      y = zeros(1,length(x)) ; 

7.      y(1) = 1;  

8.      f =@(x,y) 0.1.*x*y;                  

9.                    

10. 

    c= zeros(1,length(x)) ; 

11. 

    d = zeros(1,length(x)) ; 

12. 

    c(1)=1; 

13. 

    d(1)=1; 

14. 

     

15. 

    for i=1:(length(x)-1)                               

16. 

        k_1 = h* f(x(i),y(i)); 

17. 

        k_2 = h* f(x(i)+0.5*h,y(i)+0.5*k_1); 

18. 

        k_3 = h* f((x(i)+0.5*h),(y(i)+0.5*k_2)); 

19. 

        k_4 = h* f((x(i)+h),(y(i)+k_3)); 

20. 

        y(i+1) = y(i) + (1/6)*(k_1+2*k_2+2*k_3+k_4);   

21. 

        d(i+1) = c(1)*exp(1/20*x(i+1)^2); 

22. 

    end 

23. 

     

24. 

  y=y'; 

25. 

    x=x'; 

26. 

    c=c'; 

background image

 

27. 

    d=d'; 

28. 

P=[x,y,d]; 

29. 

 

30. 

 

31. 

%EULER 

32. 

    clc;                                              

33. 

    clear all; 

34. 

    h=0.2;                                             

35. 

    x = 0:h:3;                                         

36. 

    y = zeros(1,length(x)) ; 

37. 

    y(1) = 1;  

38. 

    f =@(x,y) 0.1.*x*y;                  

39. 

    c= zeros(1,length(x)) ; 

40. 

    d = zeros(1,length(x)) ; 

41. 

    c(1)=1; 

42. 

    d(1)=1; 

43. 

     

44. 

    for i=1:(length(x)-1)      

45. 

        fx = f(x(i),y(i)); 

46. 

        dfx=h*fx; 

47. 

        y(i+1) = y(i) + dfx  ; 

48. 

        d(i+1) = c(1)*exp(1/20*x(i+1)^2); 

49. 

    end 

50. 

    y=y'; 

51. 

    x=x'; 

52. 

    c=c'; 

53. 

    d=d'; 

54. 

    P=[x,y,d]; 

 

background image

 

 
 
 

Zadane y(0)=1 x

max

=3 h=0.2 otrzymane wartości dla x

max

=3:

 

 

metoda Kutego: 1,56831215678754 
metoda Eulera: 1,50999649690787 
dokładna

 

wartość: 1,56831218549017