Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. double f(double x, double y)
  6. {
  7. return (2 * x + y);
  8. }
  9.  
  10. void euler(double a, double b, double h, double y0)
  11. {
  12. double x = a;
  13. while (x < b) {
  14. y0 = y0 + h * f(x, y0);
  15. x = x + h;
  16.  
  17. cout<<"x="<<x<<"\ty="<<y0<<endl;
  18. }
  19. }
  20. void Rungego(double a, double b, double h, double x0, double y0)
  21. {
  22. int n = b / h;
  23. double k[n];
  24. x0 = a;
  25. cout<<"x="<<x0<<"\ty="<<y0<<endl;
  26. for(int j=0; j < (b / h); j++) {
  27. k[0] = h * f(x0, y0);
  28. double suma = k[0];
  29. //cout<<"k[0]="<<k[0]<<endl;
  30. for(int i=1; i < (b / h); i++) {
  31.  
  32. if(i == (b / h) - 1){
  33. k[i] = h * f(x0 + h, y0 + k[i-1]);
  34. suma = suma + k[i];
  35. }
  36. else{
  37. k[i] = h * f(x0 + h / 2, y0 + k[i-1] / 2);
  38. suma = suma + 2 * k[i];
  39. }
  40. // cout<<"k["<<i<<"]="<<k[i]<<endl;
  41. }
  42. //cout<<"suma="<<suma<<endl;
  43. //cout<<"y0="<<y0<<endl;
  44. y0 += (1 / 6) * suma;
  45. x0 += h;
  46. cout<<"x="<<x0<<"\ty="<<y0<<endl;
  47. }
  48.  
  49.  
  50. }
  51.  
  52. int main()
  53. {
  54. double a, b, h, x0, y0;
  55. int opcja;
  56. cout<<"1. Metoda Eulera\n2. Metoda Rungego - Kutty\n3. Wyjscie\nWybierz opcje: ";
  57. cin>>opcja;
  58. do{
  59. switch(opcja){
  60. case 1:
  61. cout<<"Podaj granice [a, b]\na: ";
  62. cin>>a;
  63. cout<<"b: ";
  64. cin>>b;
  65. cout<<"Podaj krok h: ";
  66. cin>>h;
  67. cout<<"Podaj y0: ";
  68. cin>>y0;
  69. euler(a, b, h, y0);
  70. cout<<"1. Metoda Eulera\n2. Metoda Rungego - Kutty\n3. Wyjscie\nWybierz opcje: ";
  71. cin>>opcja;
  72. break;
  73. case 2:
  74. /*cout<<"Podaj granice [a, b]\na: ";
  75. cin>>a;
  76. cout<<"b: ";
  77. cin>>b;
  78. cout<<"Podaj krok h: ";
  79. cin>>h;
  80. cout<<"Podaj x0: ";
  81. cin>>x0;
  82. cout<<"Podaj y0: ";
  83. cin>>y0;*/
  84. Rungego(0, 0.4, 0.1, 0, 1);
  85. cout<<"1. Metoda Eulera\n2. Metoda Rungego - Kutty\n3. Wyjscie\nWybierz opcje: ";
  86. cin>>opcja;
  87. break;
  88.  
  89. case 3:
  90. cout<<"Koncze program"<<endl;
  91. return 0;
  92. break;
  93. default:
  94. cout<<"Bledny wybor. Sprobuj jeszcze raz."<<endl;
  95. cout<<"1. Metoda Eulera\n2. Metoda Rungego - Kutty\n3. Wyjscie\nWybierz opcje: ";
  96. cin>>opcja;
  97. }
  98. }
  99. while(true);
  100.  
  101. return 0;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement