lab106 19656 1462385132

background image

Jakub Wietrzyński, gr.V









Laboratorium z Metod Numerycznych

Temat: Przybliżone rozwiązywanie równań

różniczkowych

Data realizacji: 04-05-2016, godz. 15:30-17:00

background image

Zad.1.
Kod programu:

#include

<iostream>

using

namespace

std;

int

main() {

double

x0, y0, h, xmax, f, dy, x, C, yd;

int

i=1;


cout <<

"Podaj x0: "

;

cin >> x0;

cout <<

"Podaj y0: "

;

cin >> y0;

cout <<

"Podaj h: "

;

cin >> h;

cout <<

"Podaj xmax: "

;

cin >> xmax;


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


x=x0;

//zerowa iteracja

f=0.1*x*y0;

dy=h*f;

while

(x<xmax) {

x=x0+i*h;

y0+=dy;

f=0.1*x*y0;

dy=h*f;


yd = C*exp((x*x)/20);


cout <<

"\n"

<< x <<

" "

<< y0 <<

" "

<< yd << endl;


i++;

}


system(

"pause"

);

}

background image

Zad.2.
Kod programu:

#include

<iostream>

using

namespace

std;

int

main() {

double

x0, y0, h, xmax, f, dy, x, C, yd, k, y, suma=0;

int

i=0;


cout <<

"Podaj x0: "

;

cin >> x0;

cout <<

"Podaj y0: "

;

cin >> y0;

cout <<

"Podaj h: "

;

cin >> h;

cout <<

"Podaj xmax: "

;

cin >> xmax;


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


x=x0;

while

(x<xmax) {

x=x0;

y=y0;

k=h*(0.1*x*y);

dy=k;

suma+=dy;


x=x0+0.5*h;

y=y0+0.5*k;

k=h*(0.1*x*y);

dy=2*k;

suma+=dy;


x=x0+0.5*h;

y=y0+0.5*k;

k=h*(0.1*x*y);

dy=2*k;

suma+=dy;


x=x0+h;

y=y0+k;

k=h*(0.1*x*y);

dy=k;

suma+=dy;


dy=(1/6)*suma;

y0=y+dy;

x0=x;


yd = C*exp((x*x)/20);


cout <<

"\n"

<< i <<

" "

<< x <<

" "

<< y <<

" "

<< yd << endl;

i++;

}

background image

system(

"pause"

);

}


Wyszukiwarka

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

więcej podobnych podstron