<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<title>Sterowanie generatorem fal</title>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>

<body>


<h1>Wstęp</h1>

<p>Generator fal wykorzystywany w Instytucie Budownictwa Wodnego jest
wyposażony w program <tt>WS</tt> sterujący ruchem klapy. Ten program
potrafi wygenerować tylko najprostrze przebiegi falowe, które nie zawsze
spełnieją wymagania pracowników naukowych Instytutu. Na szczęście
program <tt>WS</tt> potrafi odczytać przebiegi falowe zapisane w pliku.
Jednak program potrafi przeczytać tylko pliki zapisane we własnym
formacie M11. Dlatego była potrzeba napisania programu, który pozwoliłby
wygenerować dowolne przebiegi i zapisałby przebiegi ruchu klapy w pliku
M11.</p>

<p>Początkowo powstał samodzielny program służący do generowania przebiegów
falowych podawanych na klapę generatora fal o nazwie <tt>falorob</tt>. W 2005
roku został on zintegrowany z programem służącym do analizy offline o nazwie
<tt>Winfi32</tt>. Programem <tt>Winfi32</tt> program potrafi
wygenerować 4 typy fal, przy czym pierwszy typ (fala regularna) może być
generowana dla 4 różnych warunków brzegowych. Oprócz tego każdy typ jest
sparametryzowany. Program potrafi zapisać wygenerowany przebieg w pliku
o formacie INT (wewnętrzny format plików pomiarowych Instytutu Budownictwa Wodnego PAN),
w formacie M11 (wymaganym przez program <tt>WS</tt>) oraz w pliku tekstowym.</p>

<p>Oprócz tego program <tt>Winfi32</tt> potrafi czytać pliki tekstowe, które
następnie można zapisać w formacie M11. Pozwala to użyć ten program jako prosty
konwerter plików tekstowych na pliki M11. Format plików tekstowych jest bardzo
prosty: jest to zapis macierzowy, w którym wiersze są separowane znakiem końca linii
(para znaków CR i LF), a kolumny są separowane znakiem tabulatora. Liczby mają format
swobodny, a separatorem dziesiętnym musi być znak kropki. Pierwsza kolumna jest czasem.
Różnica między drugą wartością pierwszej kolumny a pierwszą wartością pierwszej kolumny
jest uznawana za krok czasowy <i>dt</i>.</p>

<h1>Generowanie przebiegu falowego</h1>

<p>Program <tt>Winfi32</tt> pracuje tylko w środowisku Windows 9x/2k/XP. Po
uruchomieniu programu na ekranie ukazuje się główne okno programu. Aby
wygenerować przebieg falowy należy z nenu <i>Generate</i> wybrać polecenie
<i>Kalman models</i>. W oknie dialogowym, które się pojawi, należy wybrać model
generacji fali a następnie wypełnić parametry, które są wykorzystywane przez 
ten model. Naciśnięcie przycisku OK spowoduje uruchomienie odpowiedniej procedury
obliczeniowej. Po wygenerowaniu przebiegu zostanie otwarte nowe okno prezentujące
ruch klapy w formie graficznej.</p>

<p>Wygenerowany sygnał jest traktowany w programie <tt>Winfi32</tt> identycznie
jak sygnał pomierzony kartą pomiarową lub wczytany z pliku. Dzięki temu
można stosować te same narzędzia analityczne co do sygnałów pomiarowych.</p>

<p>Program sterujący ruchem klapy <tt>WS</tt> akceptuje tylko przebiegi
steruące, które mają watości w zakresie od -0.025 do +0.025. Dlatego program
<tt>Winfi32</tt> po wygenerowaniu sygnału sterującego ruchem klapy
poszukuje wartości ekstremalnych i jeśli znajdzie miejsca, w których wartości
przekraczają ten przedział to zmniejsza cały sygnał tak aby, żadna wartość
nie wykraczała poza przedział -0.025 ... +0.025.</p>

<p>Obliczenia nowego sygnału (np. ze zmienionymi parametrami generacji)
można w każdej chwili powtórzyć przez wygranie polecenia <i>Recalculate</i>
z menu <i>Analysis</i> lub przez naciśnięcia klawisza <i>F9</i>.</p>

<p>Wygenerowany przebieg ruchu klapy można zapisać na dysku poleceniem
<i>Save as</i> z menu <i>File</i>. W oknie dialogowym z pytaniem o nazwę
pliku należy pamiętać o wyborze właściwego formatu pliku. Aby zapisać plik
akcetowany przez program <tt>WS</tt> trzeba wybrać drugi format o nazwie
<i>Wave syntesiser (*.M11)</i>.</p>

<h1>Modele generacji</h1>

<p>Część parametrów generacji jest wspólnych. Na przykład wspólnym parametrem jest
długość fali wyrażona w metrach oraz głębokość wody również wyrażona w metrach.</p>

<p>Ze względu na możliwości techniczne faloroba trzeba zadbać aby łagodnie
"rozpędzić" klapę i łągodnie wygasić drgania na końcu doświadczenia. Z tego
względu wszystkie przebiegi są podzielone na 3 etapy: (a) narastenie, (b) przebieg
właściwy, (c) wygaszanie. Czasy narastania, pracy i wygaszania nie są podawane w sekundach
ale w postaci liczby fal. Pozwala się to uniezależnić od podstawowego okresu fali.
Oprócz tego jest jeszcze jeden wspólny parametr, który dotyczy stanu narastania i zanikania.
Jest to współczynnik bezwymiarowy, który decyduje o szybkości narastania i opadania.
Powiększanie jego wartości powoduje, że sygnał szybciej narasta i zanika.</p>

<!--

\begin{tabular}[t]{lp{4.9in}}
\textsf{Model} &amp;amp&semi; lista rozwijalna z dostępnymi modelami  \\
\textsf{Liczba fal} &amp;amp&semi; trzy pola edycyjne z liczbą fal
                       w poszczególnych fazach narastania, stanu ustalonego,
                       zanikania  \\
\textsf{Długość fali} &amp;amp&semi; pole edycyjne z długością fali w metrach \\
\textsf{Głębokość} &amp;amp&semi; pole edycyjne z odległością między dnem a lustrem wody \\
\textsf{Narastanie} &amp;amp&semi; pole edycyjne ze współczynnikiem narastania i zanikania  \\
\textsf{xa} &amp;amp&semi; pole edycyjne ze współczynnikiem dla modelu
              generacji fali regularnej o nazwie \textsf{xa=0.3, xd=0}  \\
\textsf{C1} &amp;amp&semi; pole edycyjne z amplitudą fali podstawowej w modelu \textsf{Stokes}  \\
\textsf{C2} &amp;amp&semi; pole edycyjne z amplitudą drugiej składowej w modelu \textsf{Stokes}  \\
\textsf{C3} &amp;amp&semi; pole edycyjne z amplitudą trzeciej składowej w modelu \textsf{Stokes}  \\

\end{tabular}

-->

<h2>Fala regularna</h2>

<p>Program <tt>Winfi32</tt> generuje proces o krotności warunków brzegowych
równej 3, dlatego wzory przedstawione poniżej dotyczą procesów o takiej
krotności warunków brzegowych.</p>

<p>Fala regularna jest generowana według następującego algorytmu:</p>

<p>Obliczamy częstotliwość kątową i okres fali na podstawie długości fali
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>L</mi></math>
i głębokości <math xmlns="http://www.w3.org/1998/Math/MathML"><mi>h</mi></math>:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>K</mi>
<mo>=</mo>
<mn>2</mn><mi>&pi;</mi><mfrac><mi>h</mi><mi>L</mi></mfrac>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>&omega;</mi>
<mo>=</mo>
<msqrt><mfrac>
<mrow><mi>g</mi><mi>K</mi><mo>tgh</mo><mo>(</mo><mi>K</mi><mo>)</mo></mrow>
<mi>h</mi>
</mfrac></msqrt>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>T</mi>
<mo>=</mo>
<mfrac><mrow><mn>2</mn><mi>&pi;</mi></mrow><mi>&omega;</mi></mfrac>
</math>

<p>Obliczamy współczynnik narastania/zanikania na podstawie podanego
współczynnika <math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="italic">eta</mi></math>.</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>&eta;</mi>
<mo>=</mo>
<mfrac><mi mathvariant="italic">eta</mi><mi>T</mi></mfrac>
</math>

<p>Obliczamy czterowymiarowy proces
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>
dla fazy narastania, stanu ustalonego i zanikania.</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>=</mo>
<mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo>
<mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>-</mo><mn>1</mn><mo>)</mo>
</math>

<p>gdzie macierz
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo></math>
dana jest wzorem</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo></mrow>
<mo>=</mo>
 <msup><mi>e</mi><mrow><mo>-</mo><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow></msup>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>1</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac> <mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow> <mrow><mn>1</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mn>1</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac> <msup><mrow><mo>(</mo><mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow><mo>)</mo></mrow><mn>2</mn></msup> <mrow><mn>2</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mfrac> <mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow> <mrow><mn>1</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mn>1</mn></mtd>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac> <msup><mrow><mo>(</mo><mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow><mo>)</mo></mrow><mn>3</mn></msup> <mrow><mn>3</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mfrac> <msup><mrow><mo>(</mo><mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow><mo>)</mo></mrow><mn>2</mn></msup> <mrow><mn>2</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mfrac> <mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow> <mrow><mn>1</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Warunek początkowy
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">A</mi><mo>(</mo><mn>0</mn><mo>)</mo></math>
obliczamy ze wzoru:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mi>&eta;</mi></mtd>
   <mtd><mo>-</mo><mi>&eta;</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><mo>-</mo><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>A</mi><mn>0</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>1</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>2</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>1</mn></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Obliczając wartość przemieszczenia klapy możemy jednocześnie obliczać
pierwszą, drugą i trzecią pochodną:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msubsup><mi>A</mi><mn>3</mn><mo>'</mo></msubsup><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msubsup><mi>A</mi><mn>3</mn><mo>''</mo></msubsup><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msubsup><mi>A</mi><mn>3</mn><mo>'''</mo></msubsup><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mi>&eta;</mi></mtd>
   <mtd><mo>-</mo><mi>&eta;</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><mo>-</mo><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>A</mi><mn>0</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>W identyczny sposób obliczamy proces
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">D</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>.
Zmienia się jedynie warunek początkowy:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mi>&eta;</mi></mtd>
   <mtd><mo>-</mo><mi>&eta;</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><mo>-</mo><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>D</mi><mn>0</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>1</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>2</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Ostatecznie budujemy sygnał zespolony, który dla fazy narastania
i stanu ustalonego ma postać:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>Z</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <msub><mi>x</mi><mi>a</mi></msub>
 <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>+</mo>
 <mi>j</mi>
 <mrow><mo>[</mo>
  <mn>1</mn>
  <mo>-</mo>
  <msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
  <mo>+</mo>
  <msub><mi>x</mi><mi>d</mi></msub>
  <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>]</mo></mrow>
<mo>]</mo></mrow>
<msup><mi>e</mi><mrow><mo>-</mo><mi>j</mi><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi></mrow></msup>
</math>

<p>a dla fazy zanikania ma postać</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>Z</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <msub><mi>x</mi><mi>a</mi></msub>
 <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>+</mo>
 <mi>j</mi>
 <mrow><mo>[</mo>
  <msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
  <mo>+</mo>
  <msub><mi>x</mi><mi>d</mi></msub>
  <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>]</mo></mrow>
<mo>]</mo></mrow>
<msup><mi>e</mi><mrow><mo>-</mo><mi>j</mi><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi></mrow></msup>
</math>

<p>Ruch klapy to część rzeczywista sygnału zespolonego:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>x</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<msub><mi>x</mi><mi>a</mi></msub>
<msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>cos</mo><mo>(</mo><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi><mo>)</mo>
<mo>+</mo>
<mrow><mo>[</mo>
 <mn>1</mn>
 <mo>-</mo>
 <msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>+</mo>
 <msub><mi>x</mi><mi>d</mi></msub>
 <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>]</mo></mrow>
<mo>sin</mo><mo>(</mo><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi><mo>)</mo>
</math>

<p>i dla zaniku:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>x</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<msub><mi>x</mi><mi>a</mi></msub>
<msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>cos</mo><mo>(</mo><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi><mo>)</mo>
<mo>+</mo>
<mrow><mo>[</mo>
 <msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>+</mo>
 <msub><mi>x</mi><mi>d</mi></msub>
 <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>]</mo></mrow>
<mo>sin</mo><mo>(</mo><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi><mo>)</mo>
</math>

<p>Aby zapewnić ciągłość między stanem ustalonym a zanikaniem trzeba
policzyć warunki początkowe sygnału
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">D</mi><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></math>
gdzie
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>r</mi><mo>+</mo><mn>1</mn></math>
punkt jest początkiem fazy zanikania:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>D</mi><mn>0</mn></msub><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<msup>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mi>&eta;</mi></mtd>
   <mtd><mo>-</mo><mi>&eta;</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><mo>-</mo><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mrow><mo>-</mo><mn>1</mn></mrow>
</msup>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mo>-</mo>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>D</mi><mn>0</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Dla fali regularnej można wybrać jeden z czterech typów warunków początkowych
przez, przy czym w jednym z nich można podać wartość parametru. Warunki początkowe
zadane są przez wartości parametrów
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mi>a</mi></msub></math>
i
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mi>d</mi></msub></math>.
W pierwszym przypadku oba parametry są narzucone i obliczone ze wzorów:
</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<msub><mi>x</mi><mi>a</mi></msub>
<mo>=</mo>
<mfrac>
<msup><mi>&eta;</mi><mn>3</mn></msup>
<mrow>
 <mn>3</mn><mi>&omega;</mi>
 <mo>(</mo>
  <mn>1</mn>
  <mo>+</mo>
  <msup>
   <mrow><mo>(</mo><mfrac><mi>&eta;</mi><mrow><mn>3</mn><mi>&omega;</mi></mrow></mfrac><mo>)</mo></mrow>
   <mn>2</mn>
  </msup>
 <mo>)</mo>
</mrow>
</mfrac>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<msub><mi>x</mi><mi>d</mi></msub>
<mo>=</mo>
<mfrac>
 <mi>&eta;</mi>
 <mrow><mn>4</mn><mi>&omega;</mi></mrow>
</mfrac>
<msub><mi>x</mi><mi>a</mi></msub>
</math>

<p>W drugim przypadku oba parametry są również narzucone i oba mają tę samą
wartość obliczoną ze wzoru:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<msub><mi>x</mi><mi>a</mi></msub>
<mo>=</mo>
<msub><mi>x</mi><mi>d</mi></msub>
<mo>=</mo>
<mfrac>
 <mrow><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mrow>
 <mn>3</mn>
</mfrac>
</math>

<p>W trzecim przypadku oba parametry są również narzucone i są równe 0. W czwartym
ostatnim przypadku parametr <math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mi>d</mi></msub></math>
jest wyzerowany a parametr <math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mi>a</mi></msub></math>
może być dowolnie podany przez użytkownika.</p>

<!-- ############################################################################ -->
<!-- ############################################################################ -->
<!-- ############################################################################ -->
<!-- ############################################################################ -->

<h2>Generowanie fali losowej</h2>

<p>Program <tt>Winfi32</tt> generuje falę losową również o krotności
warunków brzegowych równej 3, dlatego wzory przedstawione poniżej
są szczególnym przypadkiem dla
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>n</mi><mo>=</mo><mn>3</mn></math>.</p>

<p>Fala losowa jest generowana według następującego algorytmu:</p>

<p>Obliczamy częstotliwość kątową i okres fali na podstawie długości fali
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>L</mi></math>
i głębokości <math xmlns="http://www.w3.org/1998/Math/MathML"><mi>h</mi></math>:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>K</mi>
<mo>=</mo>
<mn>2</mn><mi>&pi;</mi><mfrac><mi>h</mi><mi>L</mi></mfrac>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>&omega;</mi>
<mo>=</mo>
<msqrt><mfrac>
<mrow><mi>g</mi><mi>K</mi><mo>tgh</mo><mo>(</mo><mi>K</mi><mo>)</mo></mrow>
<mi>h</mi>
</mfrac></msqrt>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>T</mi>
<mo>=</mo>
<mfrac><mrow><mn>2</mn><mi>&pi;</mi></mrow><mi>&omega;</mi></mfrac>
</math>

<p>Obliczamy współczynnik narastania/zanikania na podstawie podanego
współczynnika <math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="italic">eta</mi></math>.</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi>&eta;</mi>
<mo>=</mo>
<mfrac><mi mathvariant="italic">eta</mi><mi>T</mi></mfrac>
</math>

<p>Obliczamy czterowymiarowy proces
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>
dla fazy narastania.</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>=</mo>
<mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo>
<mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>-</mo><mn>1</mn><mo>)</mo>
</math>

<p>gdzie macierz
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo></math>
dana jest wzorem</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo></mrow>
<mo>=</mo>
 <msup><mi>e</mi><mrow><mo>-</mo><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow></msup>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>1</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac> <mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow> <mrow><mn>1</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mn>1</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac> <msup><mrow><mo>(</mo><mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow><mo>)</mo></mrow><mn>2</mn></msup> <mrow><mn>2</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mfrac> <mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow> <mrow><mn>1</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mn>1</mn></mtd>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac> <msup><mrow><mo>(</mo><mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow><mo>)</mo></mrow><mn>3</mn></msup> <mrow><mn>3</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mfrac> <msup><mrow><mo>(</mo><mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow><mo>)</mo></mrow><mn>2</mn></msup> <mrow><mn>2</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mfrac> <mrow><mi>&eta;</mi><mo>&Delta;</mo><mi>t</mi></mrow> <mrow><mn>1</mn><mo>!</mo></mrow> </mfrac> </mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Warunek początkowy
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">A</mi><mo>(</mo><mn>0</mn><mo>)</mo></math>
obliczamy ze wzoru:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mi>&eta;</mi></mtd>
   <mtd><mo>-</mo><mi>&eta;</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><mo>-</mo><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>A</mi><mn>0</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>1</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>2</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><msqrt><mfrac><mi>&pi;</mi><mn>2</mn></mfrac></msqrt></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Obliczając wartość przemieszczenia klapy możemy jednocześnie obliczać
pierwszą, drugą i trzecią pochodną:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msubsup><mi>A</mi><mn>3</mn><mo>'</mo></msubsup><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msubsup><mi>A</mi><mn>3</mn><mo>''</mo></msubsup><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msubsup><mi>A</mi><mn>3</mn><mo>'''</mo></msubsup><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mi>&eta;</mi></mtd>
   <mtd><mo>-</mo><mi>&eta;</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><mo>-</mo><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>A</mi><mn>0</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>W identyczny sposób obliczamy proces
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">D</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>.
Zmienia się jedynie warunek początkowy:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mi>&eta;</mi></mtd>
   <mtd><mo>-</mo><mi>&eta;</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><mo>-</mo><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>D</mi><mn>0</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>1</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>2</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mn>0</mn><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msqrt><mfrac><mi>&pi;</mi><mn>2</mn></mfrac></msqrt></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Ostatecznie budujemy sygnał zespolony, który dla fazy narastania
ma postać:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>Z</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <msub><mi>x</mi><mi>a</mi></msub>
 <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>+</mo>
 <mi>j</mi>
 <mrow><mo>[</mo>
  <mn>1</mn>
  <mo>-</mo>
  <msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
  <mo>+</mo>
  <msub><mi>x</mi><mi>d</mi></msub>
  <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>]</mo></mrow>
<mo>]</mo></mrow>
<msup><mi>e</mi><mrow><mo>-</mo><mi>j</mi><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi></mrow></msup>
</math>

<p>Ruch klapy to część rzeczywista sygnału zespolonego:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>x</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<msub><mi>x</mi><mi>a</mi></msub>
<msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>cos</mo><mo>(</mo><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi><mo>)</mo>
<mo>+</mo>
<mrow><mo>[</mo>
 <mn>1</mn>
 <mo>-</mo>
 <msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>+</mo>
 <msub><mi>x</mi><mi>d</mi></msub>
 <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>]</mo></mrow>
<mo>sin</mo><mo>(</mo><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi><mo>)</mo>
</math>

<p>Teraz proces deterministyczny, odpowiedzialny za "rozbujanie"
klapy przechodzi w proces losowy. Oba procesy
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>
i
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">D</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>
są generowane według identycznych wzorów dlatego poniższe wzory
są podane tylko dla procesu
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>=</mo>
<mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo>
<mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>-</mo><mn>1</mn><mo>)</mo>
<mo>+</mo>
<mi mathvariant="bold">Q</mi>
<mi mathvariant="bold">R</mi><mo>(</mo><mi>r</mi><mo>)</mo>
</math>

<p>gdzie <math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">R</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>
jest czterowymiarową zmienną losową.</p>

<p>Szukaną macierz (dolną trójkątną) <math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">R</mi></math>
znajdujemy ze związku:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi mathvariant="bold">P</mi>
<mo>-</mo>
<mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo>
<mi mathvariant="bold">P</mi>
<mi mathvariant="bold">&Phi;</mi><mo>'</mo><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo>
<mo>=</mo>
<mi mathvariant="bold">Q</mi>
<mi mathvariant="bold">Q</mi><mo>'</mo>
</math>

<p>Elementy macierzy <math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>P</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></math>
liczymy według wzoru:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<msub><mi>P</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub>
<mo>=</mo>
<mfrac>
  <msub><mi>p</mi><mrow><mi>n</mi><mi>n</mi></mrow></msub>
  <mrow>
    <msub><mi>P</mi><mrow><mi>N</mi><mo>,</mo><mi>N</mi></mrow></msub>
    <msup><mn>2</mn><mrow><mi>i</mi><mo>+</mo><mi>j</mi></mrow></msup>
  </mrow>
</mfrac>
<mrow><mo>(</mo>
 <mtable>
  <mtr>
   <mtd><mi>i</mi><mo>+</mo><mi>j</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mi>j</mi></mtd>
  </mtr>
 </mtable>
<mo>)</mo></mrow>
</math>

<p>gdzie parametr <math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>p</mi><mrow><mi>n</mi><mi>n</mi></mrow></msub></math>
domyślnie przyjmuje się równy 1. W naszym przypadku macierz 
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">P</mi></math>
dana jest wzorem:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi mathvariant="bold">P</mi>
<mo>=</mo>
 <mfrac>
   <mrow><msub><mi>p</mi><mrow><mi>n</mi><mi>n</mi></mrow></msub><msup><mn>2</mn><mn>6</mn></msup></mrow>
   <mn>20</mn>
 </mfrac>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>1</mn></mtd>
   <mtd><mfrac><mn>1</mn><msup><mn>2</mn><mn>1</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>1</mn><msup><mn>2</mn><mn>2</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>1</mn><msup><mn>2</mn><mn>3</mn></msup></mfrac></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac><mn>1</mn><msup><mn>2</mn><mn>1</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>2</mn><msup><mn>2</mn><mn>2</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>3</mn><msup><mn>2</mn><mn>3</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>4</mn><msup><mn>2</mn><mn>4</mn></msup></mfrac></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac><mn>1</mn><msup><mn>2</mn><mn>2</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>3</mn><msup><mn>2</mn><mn>3</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>6</mn><msup><mn>2</mn><mn>4</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>10</mn><msup><mn>2</mn><mn>5</mn></msup></mfrac></mtd>
  </mtr>
  <mtr>
   <mtd><mfrac><mn>1</mn><msup><mn>2</mn><mn>3</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>4</mn><msup><mn>2</mn><mn>4</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>10</mn><msup><mn>2</mn><mn>5</mn></msup></mfrac></mtd>
   <mtd><mfrac><mn>20</mn><msup><mn>2</mn><mn>6</mn></msup></mfrac></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Dla fazy zanikania generujemy oba procesy
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>
i
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">D</mi><mo>(</mo><mi>r</mi><mo>)</mo></math>
według tego samego wzoru:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>=</mo>
<mi mathvariant="bold">&Phi;</mi><mo>(</mo><mo>&Delta;</mo><mi>t</mi><mo>)</mo>
<mi mathvariant="bold">A</mi><mo>(</mo><mi>r</mi><mo>-</mo><mn>1</mn><mo>)</mo>
</math>

<p>Sygnał zespolony dla fazy losowej i dla zanikania ma postać</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>Z</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
 <mo>+</mo>
 <mi>j</mi>
 <msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>]</mo></mrow>
<msup><mi>e</mi><mrow><mo>-</mo><mi>j</mi><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi></mrow></msup>
</math>

<p>a ruch klapy liczymy ze wzoru:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>x</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<msub><mi>A</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>cos</mo><mo>(</mo><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi><mo>)</mo>
<mo>+</mo>
<msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<mo>sin</mo><mo>(</mo><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi><mo>)</mo>
</math>

<p>Aby zapewnić ciągłość między stanem narastania a fazą losową trzeba
policzyć warunki początkowe sygnału
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi mathvariant="bold">D</mi><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></math>
gdzie
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>r</mi><mo>+</mo><mn>1</mn></math>
punkt jest początkiem fazy losowej:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>D</mi><mn>0</mn></msub><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<msup>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>1</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mi>&eta;</mi></mtd>
   <mtd><mo>-</mo><mi>&eta;</mi></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><mo>-</mo><mn>2</mn><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
   <mtd><msup><mi>&eta;</mi><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mn>3</mn><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
   <mtd><mo>-</mo><msup><mi>&eta;</mi><mn>3</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mrow><mo>-</mo><mn>1</mn></mrow>
</msup>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msqrt><mfrac><mi>&pi;</mi><mn>2</mn></mfrac></msqrt></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mo>-</mo>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>D</mi><mn>0</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<!-- ############################################################################ -->
<!-- ############################################################################ -->
<!-- ############################################################################ -->
<!-- ############################################################################ -->

<h2>Generowanie fali Stokes'a</h2>

<p>Generowanie fali Stokes'a jest bardzo podobne do generowania fali
regularnej. Najpierw generowana jest fala regularna z parametrami
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mi>a</mi></msub><mo>=</mo><mn>0</mn></math>
i
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mi>b</mi></msub><mo>=</mo><mn>0</mn></math>.
Obliczony sygnał zespolony oznaczmy tu jako
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>Z</mi><mn>1</mn></msub></math>.
Zgodnie z wcześniejszymi wzorami jest on równy:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><msub><mi>Z</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<mi>j</mi>
<mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo><mo>)</mo>
<msup><mi>e</mi><mrow><mo>-</mo><mi>j</mi><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi></mrow></msup>
</math>

<p>dla fazy narastania i stanu ustalonego, a dla fazy zanikania ma postać:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><msub><mi>Z</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<mi>j</mi>
<msub><mi>D</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo>
<msup><mi>e</mi><mrow><mo>-</mo><mi>j</mi><mi>&omega;</mi><mo>&Delta;</mo><mi>t</mi><mi>r</mi></mrow></msup>
</math>

<p>Teraz obliczamy drugą i trzecią potęgę tego sygnału:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><msub><mi>Z</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<mrow><msub><mi>Z</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mrow><msub><mi>Z</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><msub><mi>Z</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<mrow><msub><mi>Z</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mrow><msub><mi>Z</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
</math>

<p>Ostateczny sygnał sterowania klapą uzyskujemy ze wzoru:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>x</mi><mo>(</mo><mi>r</mi><mo>)</mo></mrow>
<mo>=</mo>
<msub><mi>W</mi><mn>1</mn></msub>
<mo>re</mo><mo>(</mo><msub><mi>Z</mi><mn>1</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo><mo>)</mo>
<mo>-</mo>
<msub><mi>W</mi><mn>2</mn></msub>
<mo>im</mo><mo>(</mo><msub><mi>Z</mi><mn>2</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo><mo>)</mo>
<mo>+</mo>
<msub><mi>W</mi><mn>3</mn></msub>
<mo>re</mo><mo>(</mo><msub><mi>Z</mi><mn>3</mn></msub><mo>(</mo><mi>r</mi><mo>)</mo><mo>)</mo>
</math>

<p>gdzie <math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>W</mi><mn>1</mn></msub></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>W</mi><mn>2</mn></msub></math>
i
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>W</mi><mn>3</mn></msub></math>
są dowolnymi wagami podanymi przez użytkownika.</p>

<p>W przypadku fali Stokes'a uproszczono obliczanie pochodnej. Po
wyznaczeniu sygnału ruchu klapy wywoływana jest funkcja <tt>policz_pochodna()</tt>,
która numerycznie oblicza pochodą tego sygnału.</p>

<!-- ############################################################################ -->
<!-- ############################################################################ -->
<!-- ############################################################################ -->
<!-- ############################################################################ -->

<h2>Różniczkowanie numeryczne</h2>

<p>Obliczanie pochodnej dla wygenerowanej fali Stokes'a jest oparte na
obliczaniu pochodnej wielomianu aproksymującego. Aby obliczenia były szybkie
i aby zminimalizować wpływ aproksymacji (mały stopień uśredniania) wybrano
aproksymację wielomianem drugiego stopnia (parabola) rozpiętą na pięciu
punktach. Najlepsze efekty daje obliczanie pochodnej gdy brane są dwa punkty
wcześniejsze i dwa punkty późniejsze. Takie postępowanie prowadzi do
opracowania filtru o skończonej odpowiedzi impulsowej (<i>moving average</i>).
Do przeanalizowania takiego filtru można zastosować klasyczną analizę
filtrów dyskretnych i pokazać jego własności.</p>

<p>Celem jest znalezienie współczynników paraboli</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
<mo>=</mo>
<msub><mi>a</mi><mn>0</mn></msub>
<mo>+</mo>
<msub><mi>a</mi><mn>1</mn></msub><mi>x</mi>
<mo>+</mo>
<msub><mi>a</mi><mn>2</mn></msub><msup><mi>x</mi><mn>2</mn></msup>
</math>

<p>która, najbliżej w sensie średniokwadratowym, przechodzi przez punkty:
<math xmlns="http://www.w3.org/1998/Math/MathML"><mo>(</mo><msub><mi>x</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub><mo>,</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub><mo>)</mo></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><mo>(</mo><msub><mi>x</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>,</mo><msub><mi>y</mi><mrow><mn>0</mn></mrow></msub><mo>)</mo></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><mo>(</mo><msub><mi>x</mi><mn>1</mn></msub><mo>,</mo><msub><mi>y</mi><mn>1</mn></msub><mo>)</mo></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><msub><mi>y</mi><mn>2</mn></msub><mo>)</mo></math>.
Znając współczynniki paraboli możemy policzyć pochodną w dowolnym punkcie:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>f</mi><mo>'</mo><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
<mo>=</mo>
<msub><mi>a</mi><mn>1</mn></msub>
<mo>+</mo>
<mn>2</mn><msub><mi>a</mi><mn>2</mn></msub><mi>x</mi>
</math>

<p>Pełny wzór jest nam potrzebny tylko na krańcach przedziału różniczkowania (dwa
pierwsze i dwa ostatnie punkty pomiaru). Dla wszystkich pozostałych
punktów liczymy pochodną dla
<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>x</mi><mo>=</mo><mn>0</mn></math>
i stosujemy wzór uproszczony:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mi>f</mi><mo>'</mo><mo>(</mo><mi>x</mi><mo>)</mo></mrow>
<mo>=</mo>
<msub><mi>a</mi><mn>1</mn></msub>
</math>

<p>Współczynniki paraboli można znaleźć rozwiązując liniowy układ równań
w postaci</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>0</mn></msubsup></mtd>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>1</mn></msubsup></mtd>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>2</mn></msubsup></mtd>
  </mtr>
  <mtr>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>1</mn></msubsup></mtd>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>2</mn></msubsup></mtd>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>3</mn></msubsup></mtd>
  </mtr>
  <mtr>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>2</mn></msubsup></mtd>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>3</mn></msubsup></mtd>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>4</mn></msubsup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>a</mi><mn>0</mn></msub></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>a</mi><mn>1</mn></msub></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>a</mi><mn>2</mn></msub></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>0</mn></msubsup><msub><mi>y</mi><mi>i</mi></msub></mtd>
  </mtr>
  <mtr>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>1</mn></msubsup><msub><mi>y</mi><mi>i</mi></msub></mtd>
  </mtr>
  <mtr>
   <mtd><munderover><mo>&Sum;</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mn>2</mn></mrow><mn>2</mn></munderover><msubsup><mi>x</mi><mi>i</mi><mn>2</mn></msubsup><msub><mi>y</mi><mi>i</mi></msub></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>co dla
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub><mo>=</mo><mo>-</mo><mn>2</mn><mo>&Delta;</mo><mi>t</mi></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub><mo>=</mo><mo>-</mo><mo>&Delta;</mo><mi>t</mi></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mn>0</mn></msub><mo>=</mo><mn>0</mn></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mn>1</mn></msub><mo>=</mo><mo>&Delta;</mo><mi>t</mi></math>,
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>x</mi><mn>2</mn></msub><mo>=</mo><mn>2</mn><mo>&Delta;</mo><mi>t</mi></math>.
daje układ równań w postaci:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><mn>5</mn></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
  </mtr>
  <mtr>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
   <mtd><mn>0</mn></mtd>
  </mtr>
  <mtr>
   <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
   <mtd><mn>0</mn></mtd>
   <mtd><mn>34</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>4</mn></msup></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>

<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd><msub><mi>a</mi><mn>0</mn></msub></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>a</mi><mn>1</mn></msub></mtd>
  </mtr>
  <mtr>
   <mtd><msub><mi>a</mi><mn>2</mn></msub></mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
<mo>=</mo>
<mrow><mo>[</mo>
 <mtable>
  <mtr>
   <mtd>
    <msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
    <mo>+</mo>
    <msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
    <mo>+</mo>
    <msub><mi>y</mi><mn>0</mn></msub>
    <mo>+</mo>
    <msub><mi>y</mi><mn>1</mn></msub>
    <mo>+</mo>
    <msub><mi>y</mi><mn>2</mn></msub>
   </mtd>
  </mtr>
  <mtr>
   <mtd>
    <mo>&Delta;</mo><mi>t</mi>
    <mrow><mo>(</mo>
    <mo>-</mo><mn>2</mn><msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
    <mo>-</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
    <mo>+</mo><msub><mi>y</mi><mn>1</mn></msub>
    <mo>+</mo><mn>2</mn><msub><mi>y</mi><mn>2</mn></msub>
    <mo>)</mo></mrow>
   </mtd>
  </mtr>
  <mtr>
   <mtd>
    <msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup>
    <mrow><mo>(</mo>
    <mn>4</mn><msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
    <mo>+</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
    <mo>+</mo><msub><mi>y</mi><mn>1</mn></msub>
    <mo>+</mo><mn>4</mn><msub><mi>y</mi><mn>2</mn></msub>
    <mo>)</mo></mrow>
   </mtd>
  </mtr>
 </mtable>
<mo>]</mo></mrow>
</math>

<p>Jak widać są to dwa układy równań. Z jednego wyznaczamy współczynniki
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>a</mi><mn>0</mn></msub></math>
i
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>a</mi><mn>2</mn></msub></math>,
a z drugiego 
<math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>a</mi><mn>1</mn></msub></math>.</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<msub><mi>a</mi><mn>0</mn></msub>
<mo>=</mo>
<mfrac>
 <mrow><mo>|</mo>
  <mtable>
   <mtr>
    <mtd>
     <msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
     <mo>+</mo>
     <msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
     <mo>+</mo>
     <msub><mi>y</mi><mn>0</mn></msub>
     <mo>+</mo>
     <msub><mi>y</mi><mn>1</mn></msub>
     <mo>+</mo>
     <msub><mi>y</mi><mn>2</mn></msub>
    </mtd>
    <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
   </mtr>
   <mtr>
    <mtd>
     <msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup>
     <mrow><mo>(</mo>
     <mn>4</mn><msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
     <mo>+</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
     <mo>+</mo><msub><mi>y</mi><mn>1</mn></msub>
     <mo>+</mo><mn>4</mn><msub><mi>y</mi><mn>2</mn></msub>
     <mo>)</mo></mrow>
    </mtd>
    <mtd><mn>34</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>4</mn></msup></mtd>
   </mtr>
  </mtable>
 <mo>|</mo></mrow>
 <mrow><mo>|</mo>
  <mtable>
   <mtr>
    <mtd><mn>5</mn></mtd>
    <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
   </mtr>
   <mtr>
    <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
    <mtd><mn>34</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>4</mn></msup></mtd>
   </mtr>
  </mtable>
 <mo>|</mo></mrow>
</mfrac>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mn>2</mn><msub><mi>a</mi><mn>2</mn></msub>
<mo>=</mo>
<mn>2</mn>
<mfrac>
 <mrow><mo>|</mo>
  <mtable>
   <mtr>
    <mtd><mn>5</mn></mtd>
    <mtd>
     <msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
     <mo>+</mo>
     <msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
     <mo>+</mo>
     <msub><mi>y</mi><mn>0</mn></msub>
     <mo>+</mo>
     <msub><mi>y</mi><mn>1</mn></msub>
     <mo>+</mo>
     <msub><mi>y</mi><mn>2</mn></msub>
    </mtd>
   </mtr>
   <mtr>
    <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
    <mtd>
     <msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup>
     <mrow><mo>(</mo>
     <mn>4</mn><msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
     <mo>+</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
     <mo>+</mo><msub><mi>y</mi><mn>1</mn></msub>
     <mo>+</mo><mn>4</mn><msub><mi>y</mi><mn>2</mn></msub>
     <mo>)</mo></mrow>
    </mtd>
   </mtr>
  </mtable>
 <mo>|</mo></mrow>
 <mrow><mo>|</mo>
  <mtable>
   <mtr>
    <mtd><mn>5</mn></mtd>
    <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
   </mtr>
   <mtr>
    <mtd><mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup></mtd>
    <mtd><mn>34</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>4</mn></msup></mtd>
   </mtr>
  </mtable>
 <mo>|</mo></mrow>
</mfrac>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<msub><mi>a</mi><mn>1</mn></msub>
<mo>=</mo>
<mfrac>
 <mrow>
    <mo>&Delta;</mo><mi>t</mi>
    <mrow><mo>(</mo>
    <mo>-</mo><mn>2</mn><msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
    <mo>-</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
    <mo>+</mo><msub><mi>y</mi><mn>1</mn></msub>
    <mo>+</mo><mn>2</mn><msub><mi>y</mi><mn>2</mn></msub>
    <mo>)</mo></mrow>
 </mrow>
 <mrow>
    <mn>10</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup>
 </mrow>
</mfrac>
</math>

<p>co daje proste wzory:</p>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<msub><mi>a</mi><mn>0</mn></msub>
<mo>=</mo>
<mfrac><mn>1</mn><mn>7</mn></mfrac>
<msub><mi>y</mi><mn>0</mn></msub>
<mo>+</mo>
<mfrac><mn>9</mn><mn>7</mn></mfrac>
<mfrac>
 <mrow>
  <msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
  <mo>+</mo><msub><mi>y</mi><mn>0</mn></msub>
  <mo>+</mo><msub><mi>y</mi><mn>1</mn></msub>
 </mrow>
 <mn>3</mn>
</mfrac>
<mo>-</mo>
<mfrac><mn>3</mn><mn>7</mn></mfrac>
<mfrac>
 <mrow>
  <msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
  <mo>+</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
  <mo>+</mo><msub><mi>y</mi><mn>0</mn></msub>
  <mo>+</mo><msub><mi>y</mi><mn>1</mn></msub>
  <mo>+</mo><msub><mi>y</mi><mn>2</mn></msub>
 </mrow>
 <mn>5</mn>
</mfrac>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<msub><mi>a</mi><mn>1</mn></msub>
<mo>=</mo>
<mfrac><mn>4</mn><mn>5</mn></mfrac>
<mfrac>
 <mrow>
  <msub><mi>y</mi><mn>2</mn></msub>
  <mo>-</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
 </mrow>
 <mrow>
  <mn>4</mn><mo>&Delta;</mo><mi>t</mi>
 </mrow>
</mfrac>
<mo>+</mo>
<mfrac><mn>1</mn><mn>5</mn></mfrac>
<mfrac>
 <mrow>
  <msub><mi>y</mi><mn>1</mn></msub>
  <mo>-</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
 </mrow>
 <mrow>
  <mn>2</mn><mo>&Delta;</mo><mi>t</mi>
 </mrow>
</mfrac>
</math>

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mn>2</mn><msub><mi>a</mi><mn>2</mn></msub>
<mo>=</mo>
<mfrac><mn>16</mn><mn>7</mn></mfrac>
<mfrac>
 <mrow>
  <msub><mi>y</mi><mn>2</mn></msub>
  <mo>-</mo><mn>2</mn><msub><mi>y</mi><mn>0</mn></msub>
  <mo>+</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>2</mn></mrow></msub>
 </mrow>
 <mrow>
  <mn>8</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup>
 </mrow>
</mfrac>
<mo>-</mo>
<mfrac><mn>2</mn><mn>7</mn></mfrac>
<mfrac>
 <mrow>
  <msub><mi>y</mi><mn>1</mn></msub>
  <mo>-</mo><mn>2</mn><msub><mi>y</mi><mn>0</mn></msub>
  <mo>+</mo><msub><mi>y</mi><mrow><mo>-</mo><mn>1</mn></mrow></msub>
 </mrow>
 <mrow>
  <mn>2</mn><msup><mrow><mo>&Delta;</mo><mi>t</mi></mrow><mn>2</mn></msup>
 </mrow>
</mfrac>
</math>

</body>
</html>


