TEMAT: INTERPOLACJA
Transkrypt
TEMAT: INTERPOLACJA
Informatyka i Metody numeryczne - zagadnienia / prof. dr hab. inż. Dariusz Spałek http://www.elektr.polsl.pl/dspalek/ Inf-C#.doc Visual Studio 2010 // komponent Chart jest w zakładce Data i jest formalnie inny od instalowanego dla Visual Studio 2008 ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Help >> Manage Help Settings >> OK >> choose online or local help (local w sali 204/205) ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ using namespace System.IO; using namespace System.Text; // obsluga plikow // obsluga tekstow using System.Windows.Forms.DataVisualization.Charting; // obsluga wykresów USING NAMESPACE SYSTEM.NUMERICS; // OBSŁUGA Complex w .NET 4; Project >> Add Reference >> .NET >> System.Numerics 4.0.0.0 ---------------------------------------------------------------------------Zajęcia z Metod Numerycznych sem III: 1. Sprawdzenie / dodawanie projektów dla zajęc Project >> Add Reference >>Projects >> CSBibMatStudent using CSBibMatStudent; using CSBibMatStudent.Complex; using CSBibMatStudent.AlgebraLiniowa; 2. Ustalanie platformy .NET File >> Project >> nazwa Properties >> .NET 4.0 lub inny 3. Ustalanie pliku nadrzędnego Solution Explorer >> nazwa pliku np. TestMetGaussaPlik >> >> (p. klawisz myszy) Set as StartUp Project (pojawi się wyróżnienie nazwy Bold) ---------------------------------------------------------------------------ToolBox (p. klawisz myszy) >> Show All ˗ pokazuje wszystkie komponenty w zakładce ToolBox /widoczna gdy zakładka projektu *.Design jest wybrana/ ---------------------------------------------------------------------------Otwarcie aplikacji windows CLR ˗ Common Language Runtime (wykonywanie we wspólnym języku) >> Windows Forms Application >> Dodawanie nowego pliku .cs - klasy Project >> Add New Item >> Class (.cs) – Dodawanie formularza Project >> Add New Item >> Windows Forms >> Windows Form ˗ nowy formularz private void Form2_FormClosing(object sender, FormClosingEventArgs e) { this.Hide(); e.Cancel = true; } pictureBox1, radioButton1, …. - przy użyciu z innego formularza, klasy wymaga ustawienia modyfikatora tego obiektu: Modifiers >> Public (nie Private) ------------------------------------litery greckie do kodu można przenosić z Worda lub Mathcada ---------------------------------------- 1 Informatyka i Metody numeryczne - zagadnienia / prof. dr hab. inż. Dariusz Spałek http://www.elektr.polsl.pl/dspalek/ METODY NUMERYCZNE (przykładowe programy na stronie http://www.elektr.polsl.pl/dspalek/) 1. Rozwiązać równanie różniczkowe na przykładzie obwodu RL lub RC (Elektrotechnika, Teoria Obwodów). Zdefiniować trzy metody/funkcje dla: a) rozwiązania analitycznego, np. private double xt(double t, …., double [ ] P ….), b) prawej strony rów. różniczkowego, np. private double f(double t, …, double [ ] P ….) c) rozwiązania numerycznego w postaci funkcji zwracającej macierz, np. private double [ , ] RKn(int n, double i0, double tk, double [ ] P,.....) { double[ , ] W = new double[2, n+1]; ..... ; W[i, k ] return W; } lub private double [ ][ ] RKn(int n, double i0, double tk, double R, double [ ] P,.....) { double[ ][ ] W = new double[2][ ]; for (int iw = 0; iw < 2; iw++) W[iw] = new double[n+1]; W[i][k] = ....; /* – zapewnia dostęp do elementu [i, k] */ W[i] /* – zapewnia dostęp do wiersza ‘i’ */ ..... ; return W; } Wykreślić rozwiązanie analityczne (linia ciągła) i numeryczne (punkty). (Przypadek zasilania stałego E = const – max 4,0; zasilanie impulsem E(t) – max 5,0). Algorytm Runge-Kutta 4-go rzędu (4-krokowy) 1 tj := tj–1 + h. 2 K1:= hf(tj-1+0.5h , xj-1, P), K2:= hf(tj-1+0.5h , xj-1+0.5K1, P), K3:= hf(tj-1+0.5h , xj-1+0.5K2, P), K4:= hf(tj , xj-1+ K3, P). 3 xj := xj–1 + (K1 + 2K2 + 2K3 + K4)/6. Algorytm Runge-Kutta 5-tego rzędu (6-krokowy) 1 tj := tj-1 + h. 2 k1 := h·f(tj-1, xj-1, P), k2 := h·f(tj-1 +h/3, xj-1+k1/3, P), k3 := h·f(tj-1 +2·h/5, xj-1+(6·k2+4·k1)/25, P), k4 := h·f(tj-1 +h, xj-1+15·k3/4–3·k2+k1/4, P ), k5 := h·f(tj-1 +2·h/3, xj-1+(8·k4–50·k3+90·k2+6·k1)/81, P), k6 := h·f(tj-1 +4·h/5, xj-1+(8·k4+10·k3+36·k2+6·k1)/75, P). 3 xj := xj-1 + (23·k1+125·k3–81·k5+125·k6)/192. 2 Informatyka i Metody numeryczne - zagadnienia / prof. dr hab. inż. Dariusz Spałek http://www.elektr.polsl.pl/dspalek/ Uwaga: piszemy 6 6.0 przy dzieleniu w przypadku gdy …. Wybrane szeregi. Uwaga: p p( p 1)( p 2) ... ( p k 1) k! k Szereg Maclaurina Uwagi p p ( p 1) 2 (1 x) p x k 1 px x ... 2 k 0 k x 1 np. dla p = ½, p = – ½, p = 1/3, p = – 1/3 pR 1 x3 x5 (1) k x 2 k 1 x 3! 5! k 0 ( 2k 1)! xR (1) k 2 k x2 x4 x 1 2! 4! k 0 ( 2k )! xR sin( x) 2 cos( x) 3 x 2 x3 (1) k 1 k x x ln(1 x) k 2 3 k 1 4 x (1,1] 3 5 7 9 k 1 5 arcsin( x) 2 (1) x 2 k 1 x 1 x 1 3 x 1 3 5 x 1 3 5 7 x ... k 0 k 2k 1 24 5 2 3 246 7 2 468 9 x 1 6 (1) k 2 k 1 x3 x5 x7 x x ... arctg( x) 5 7 3 k 0 2k 1 x (1,1] 7 x 2 k 1 x3 x5 x7 x ... sinh ( x) 3! 5! 7! k 0 ( 2k 1)! xR 8 9 x 2k x2 x4 x6 1 ... 2! 4! 6! k 0 ( 2k )! cosh ( x) sin 2 ( x) (1) k 1 k 1 2 2 k 1 2 k 2 2 2 3 4 2 5 6 2 7 8 x x x x x ... (2k )! 2! 4! 6! 8! 3 xR xR