lab106 19654 1462389421

background image

Politechnika Śląska

Gliwice

Wydział Automatyki Elektroniki i Informatyki

Rok akademicki 2015/2016

Kierunek: Automatyka i Robotyka sem. 4

Semestr letni

Metody Numeryczne

Laboratorium

Ćw. 10:

Przybliżone rozwiązywanie równań

różniczkowych zwyczajnych














Wykonali:

Kamil TAMAKA
Bartosz BANAŚ

Grupa 5 Sekcja 2

Data odbycia ćwiczenia:
4.05.2016

background image

1.1. Kod źródłowy programu do zadania pierwszego:

#include <iostream>
#include <cmath>
#include <conio.h>

using namespace std;
int main()
{

float x0 = 2, y0 = 2 , h = 1, x_max = 5, dy, C;

float stop = (x_max - x0) / h;


float tab[100][3];

tab[0][1] = y0;

C = y0 / exp(x0*x0 / 20);


for (int i = 0; i <= stop; i++)

{

tab[i][0] = x0 + i*h;

dy = 0.1 * tab[i][0] * tab[i][1] * h;

if (i < stop)

{

tab[i + 1][1] = tab[i][1] + dy;

}

tab[i][2] = C * exp((tab[i][0] * tab[i][0]) / 20);

cout << tab[i][0] << "\t " << tab[i][1] << "\t " << tab[i][2] << endl;

}

cin.clear();

cin.sync();


_getch();

return(0);

}

1.2. Wyniki:

2 2 2
3 2.4 2.56805
4 3.12 3.64424
5 4.368 5.7153

background image

2.1. Kod źródłowy programu do zadania drugiego:

#include <iostream>
#include <conio.h>
#include <iomanip>

using namespace std;

float f(float x, float y)
{

return 0.1 * x * y;

}

int main()
{

float x0 = 2, y0 = 2, h = 1, x_max = 5, dy = 0;

float k1, k2, k3, k4;

float C = y0 / exp((x0*x0) / 20);

int i = 0;

cout << "i\t x0\t y0\t dy\ty_dok" << endl;


for (x0; x0 <= x_max; x0 += h, i++)

{

cout << setprecision(4) << fixed << i <<"\t"<< x0 << "\t" << y0 << "\t" << dy << "\t" <<

C * exp((x0*x0) /20 ) << endl;

k1 = h * f(x0, y0);

k2 = h * f(x0 + h/2, y0 + k1/2);

k3 = h * f(x0 + h/2, y0 + k2/2);

k4 = h * f(x0 + h, y0 + k3);

dy = (k1 + 2 * k2 + 2 * k3 + k4) / 6;

y0 += dy;

}

_getch();

return(0);

}

2.2. Wyniki:

i x0 y0 dy y_dok
0 2.00000 2.00000 0.00000 2.00000
1 3.00000 2.56802 0.56802 2.56805
2 4.00000 3.64404 1.07602 3.64424
3 5.00000 5.71431 2.07027 5.71530






Wyszukiwarka

Podobne podstrony:
lab106 19656 1462385132
lab106 19544 1462389000
lab106 2258 1395959527
106, LAB106M(1), ˙w.nr.106 Temat: Wyznaczanie stosunku H=Cp/Cv dla powietrza metod˙
lab106 19643 1465153892

więcej podobnych podstron