euler

background image

1

Treść zadania

Napisać program realizujący metodę Eulera dla zagadnienia :

x

(IV )

+ (1 + t

2

)x

000

+ (1 + 2t)x

00

+ tx = cos(1 + t) 1

x(0) = x

0

(0) = x

00

(0) = x

000

(0) = 0

na przedziale [0,4].
Napisać program na rysowanie wykresów rozwiązań przybliżonych.

2

Teoria potrzebna do rozwiązania

Równanie liniowe n-tego rzędu
Mamy dane funkcje:
p

1

, p

2

, ..., p

n

: (a, b)− > R oraz f : (a, b)− > R

Oznaczamy przez y funkcje zmiennej t (a,b).
Liniowe rówanie różniczkowe n-tego rzędu:

(1) y

(n)

(t) + p

1

(t)y

(n−1)

(t) + ... + p

n−1

(t)y

0

(t) + p

n

(t)y(t) = f (t)

Niech t

0

(a, b). Równanie spełnia warunek początkowy:

y(t

0

) = x

0

, y

0

(t

0

) = x

1

, ..., y

(n−1)

(t

0

) = x

n−1

Aby rozwiązać równanie definiujemy macierz A :

A =







0

1

0

. . .

0

0

0

1

. . .

0

. . .

. . .

. . .

. . .

. . .

0

0

0

. . .

1

−p

n

(t) −p

n−1

(t) −p

n−2

(t) . . . −p

1

(t)







oraz wektor : g(t) = [0, ..., 0, f (t)]

T

Niech x

= (x

0

, x

1

, ..., x

n−1

)

T

.

Rozpatrujemy układ liniowy z warunkiem początkowym:

(2) z

0

(t) = A(t)z(t) + g(t) , z(t

0

) = x

1

background image

Twierdzenie
Jeśli φ : (a, b)− > R jest rozwiązaniem naszego równania różniczkowego z zagadnieniem
początkowym, to funkcja:
u(t) = (φ(t), φ

0

(t), ..., φ

(n−1)

(T ))

T

, t ∈ (a, b)

jest rozwiązaniem zagadnienia (2).
Jeśli u = (u

1

, ..., u

n

)

T

: (a, b)− > R

n

jest rozwiązaniem problemu (2), to φ = u

1

jest roz-

wiązaniem zagadnienia (1) z warunkiem początkowym.
Metoda Eulera
Niech f : [a, b]xR

n

− > R

n

będzie dana oraz η ∈ R

n

. Rozważamy zagadnienie Cauchy’ego:

(3) z

0

(t) = f (t, z(t)), z(a) = η

Niech h > 0 będzie ustalone oraz:

t

1

= a + ih, i = 0, 1, ..., N ,

a + N h = b

Zbiór t

0

, t

1

, ..., t

N

nazwamy siatką na przedziale [a, b].

Metoda Eulera:
y

0

= η

h

y

m+1

= y

m

+ hf (t

m

, y

m

) dla m = 0, 1, ..., N − 1

gdzie η

h

∈ R

n

jest dane.

Do wyznaczenia elementu y

m+1

korzystamy z elementu o jednym wcześniejszym nume-

rze, czyli y

m

oraz z warunku początkowego.

3

Działanie Programu

Program na początku liczy wartość h. Wartość ta zależy od wcześniej podanej liczby na-
turalnej N , tzn.

h = (B − A)/N ,
gdzie A = 0, B = 4.

Następnie wylicza wartości t

0

, t

1

, ..., t

N

(t

i+1

= t

i

+ h) i umieszcza je w tablicy t[].

Teraz korzystając z teori dotyczącej równań liniowych n-tego rzędu,
okazuje się, że program ma do policzenia układ czterech równań.

2

background image

Dzialając według metody Eulera, program liczy wszystkie wartości i zapisuje je do czterech
tablic (z1,z2,z3,z4), wszystkie o długości N .

Na końcu, wyświetlane są wyliczone elementy tablicy węzłów (x-ów) oraz tablicy wyli-
czonych wartości funkcji będącej przybliżonym rozwiązaniem problemu (y-greków).

4

Wejście - wyjście

Wejście jest realizowane za pomocą funkcji z biblioteki simpio.h: GetInteger która zapew-
nia wystarczające zabezpieczenie przed wprowadzeniem błędnych danych. Wyjście jest
realizowane za pomocą standardowej funkcjiprintf, która w zupełności wystarcza.

5

Najważniejsza część kodu

void licz_wartosci()
{

int i;
z1[0]=z2[0]=z3[0]=z4[0]=0;
t[0]=A;
for (i=1;i<=N;i++)
{

t[i]=t[i-1]+h;
z1[i]=z1[i-1]+(h*z2[i-1]);
z2[i]=z2[i-1]+(h*z3[i-1]);
z3[i]=z3[i-1]+(h*z4[i-1]);
z4[i]=z4[i-1]+(h*((-1*t[i-1]*z1[i-1])+((-1-(2*t[i-1]))*z3[i-1])+((-1-(t[i-1]*t[i-1]))*z4[i-1]) + cos(1+t[i-1])-1));

}

}

W pętli for są obliczne kolejne wartości zerowej, pierwszej, drugiej i trzeciej pochodnej w
węzłach.

3

background image

6

Przykładowe uruchomienia

6.1

Ekran

PROGRAM REALIZUJE METODE EULERA DLA ZAGADNIENIA:
x’’’’+(1+t^2)x’’’+(1+2t)x’’+tx = cos(1+t)-1 na przedziale [0,4]
Podaj N (calkowite)10

t[0] =0.000000

z1[0]=0.000000

t[1] =0.400000

z1[1]=0.000000

t[2] =0.800000

z1[2]=0.000000

t[3] =1.200000

z1[3]=0.000000

t[4] =1.600000

z1[4]=-0.011768

t[5] =2.000000

z1[5]=-0.062861

t[6] =2.400000

z1[6]=-0.189280

t[7] =2.800000

z1[7]=-0.411160

t[8] =3.200000

z1[8]=-0.716400

t[9] =3.600000

z1[9]=-1.088458

t[10]=4.000000

z1[10]=-1.516884

6.2

Plik wykres.txt

0.000000 0.000000

0.400000 0.000000

0.800000 0.000000

1.200000 0.000000

1.600000 -0.011768

2.000000 -0.062861

2.400000 -0.189280

4

background image

2.800000 -0.411160

3.200000 -0.716400

3.600000 -1.088458

4.000000 -1.516884

5


Wyszukiwarka

Podobne podstrony:
Euler’s function and Euler’s Theorem
Mechatronika, euler
Mechatronika, Dynamika punktu materialnego w ujęciu Eulera, Euler udowodnił tożsamości Newtona (wzor
Lagrange i Euler
Mechania pojęcia w postaci-ŚCIĄGI-płyny-dyn-euler itp definicje, Zarządzanie i inżyniernia produkcji
Funkcja phi Eulera EULER PH
Funkcja phi Eulera, EULER PH
Euler’s function and Euler’s Theorem
metoda simpsona i euler
owu 2 euler hermes
[M B W Tent] Leonhard Euler and the Bernoullis Mathematicians from Basel (BookFi org)
Leonard Euler, Kompletne wprowadzenie do algebry i jaka nauka z tego wynika Michał Szurek

więcej podobnych podstron