oprogramowanie granicy ciągu ,różniczkowanie numeryczne
Mariusz:
using System;
namespace NamespaceName
{
public class ClassName
{
public static void Main(string[] args)
{
double[] c;
int n;
double x1,x2;
Console.WriteLine("Podaj punkt dla którego chcesz policzyć ciąg współczynników kierunkowych
siecznych");
double.TryParse(Console.ReadLine(),out x1);
Console.WriteLine("Podaj punkt startowy dla ciągu współczynników kierunkowych siecznych");
double.TryParse(Console.ReadLine(),out x2);
Console.WriteLine("Podaj liczbę wyrazów ciągu");
int.TryParse(Console.ReadLine(),out n);
c = new double[n];
DiffQuotSeq(x1,x2,n,Math.Atan,c);
foreach(double item in c)
{
Console.WriteLine("{0}" ,item);
}
}
public static void DiffQuotSeq(double x1,double x2,int n,Func<double,double> f,double[] c)
{
double step = (x2−x1)/n;
Array.Clear(c,0,c.Length);
for(int k=0;k<n;k++)
{
c[k] = (double) (f(x2) − f(x1))/(x2 − x1);
x2 −= step;
}
}
}
}
Powyższy program oblicza n początkowych wyrazów pewnego ciągu
Pytanie jak policzyć granicę tego ciągu
Problem w tym że zapisać mogę tylko skończoną liczbę początkowych wyrazów ciągu
a aby liczba g była granicą ciągu to prawie wszystkie wyrazy ciągu muszą się znajdować
w pewnym otoczeniu liczby g (prawie wszystkie czyli
wszystkie poza być może skończoną liczbą wyrazów)
31 paź 01:42
wredulus_pospolitus:
Uwaga −−− nie jestem programistą
Jeśli chodzi o samo wypisywanie 'nieskończonej' liczby wyrazów, to:
Czy nie lepiej skorzystać z dynamicznej tablicy długości (powiedzmy 100) i na ich podstawie
'korygujesz' liczbę g
31 paź 08:57
wredulus_pospolitus:
Tfuuu .... nie z dynamicznej tablicy ... co przesuwasz wyrazy w tablicy (wywalasz ostatni
wyraz, który robi miejsce kolejnemu)
31 paź 08:58
wredulus_pospolitus:
Innym sposobem jaki sobie wymyśliłem to użycie jakiegoś typu średniej kroczącej, i tu
przychodzi mi do głowy przede wszystkim EWMA.
Pytanie tylko − jak z niej później 'wyłuskać' dokładną wartość granicy
31 paź 09:00
wredulus_pospolitus:
To oczywiście by trzeba było przetestować 'kąśliwymi' przykładami, ale wydaje mi się, że gdyby
program miałby wypluwać wartość granicy z dokładnością do 'n' miejsc po przecinku, to bym
zastosował średnią EWMA10 (im mniejsza wartość tym bardziej 'uzależniona' od ostatnich
rekordów/wyrazów ciągu) i badał kiedy różnica pomiędzy 'starą' a 'nową' wartością jest
mniejsza niż na przykład 10−m gdzie m>n tylko pytanie jak dużo większe.
31 paź 09:16
wredulus_pospolitus:
EWMA10 im mniejsza wartość tutaj, tym większe 'uzależnienie' (czułość) średnia
EWMAk ma na ostatnie występujące wyrazy.
31 paź 09:17
. :
I jeszcze jedna sprawa − od razu trzeba też się zastanowić czy program ten ma za zadanie
'wyluskac' że ciąg nie posiada granicy czy też przyjmuje się że jedynie zbieżne ciągi będą tu
wklepywane.
31 paź 09:22
Mariusz:
" gdyby
program miałby wypluwać wartość granicy z dokładnością do 'n' miejsc po przecinku"
O to mniej więcej mi chodziło
Problem w tym że mamy do dyspozycji tylko
podciąg ciągu współczynników kierunkowych siecznych o skończonej liczbie wyrazów
"czy program ten ma za zadanie
'wyluskac' że ciąg nie posiada granicy "
O to też byłoby przydatne
Ciekawe co numerycy robią
Chyba ograniczają się do ilorazów różnicowych
i używają trzech ilorazów
1 lis 07:12
wredulus_pospolitus:
Mariusz −−− wracając do 'źródła' problemu.
Zamiast dzielić odcinek (x
1, x
2) na n równych części i wtedy sposób dostawać elementy ciągu,
| x1+x2 | |
stwórz inny ciąg: x2 = |
| |
| 2 | |
w ten sposób uzyskujesz nieskończony ciąg
i musisz tylko dać jakąś komendę do sprawdzenia czy 'wartość granicy' w kolejnym kroku już się
nie zmienia (biorąc pod uwagę dokładność jaką chcesz uzyskać).
Ja bym jeszcze się pobawił i dał jakiś 'licznik' tak aby co jakiś czas program wywalał okienko
z informacją: "mamy problem z dokładnością − po wykonaniu 'x' iteracji nadal mamy różnicę
równą 'ε' − czy chcesz kontynuować", co by nie wpaść w nieskończoną pętle w momencie gdybyśmy
mieli doczynienia z jakąś 'wredną funkcją' (np. f(x) = sin(1/x) dla x
1 = 0)
Następnie pozostaje kwestia także takich funkcji jak chociażby f(x) = |x| ... dlatego warto po
'dojściu' z jednej strony (dla x
2 > x
1) zrobić także z drugiej strony (czyli x
2 = 2x
1 −
x
2) i dodać warunek, że "granice mają się sobie równać".
1 lis 11:32
Mariusz:
wredulus a tak zmieniając temat
Ostatnio bawiłem się trochę wielomianami ortogonalnymi
Gdybym rozpoczął wątek o tych wielomianach
to czy napisałbyś mi kilka przydatnych rzeczy?
Do tej pory udało mi się wyprowadzić wzór na wielomiany Hermite
z równania rekurencyjnego
Do wyprowadzenia wzoru na wielomiany Laguerre z równania różniczkowego
brakuje mi tego skąd wziąć wyraz wolny
(Odgadłem że będzie to jedynka ale przydałoby się to uzasadnić)
Jeżeli chodzi o wielomiany Legendre to wychodząc z równania rekurencyjnego
udało mi się wyprowadzić jedynie wzór na funkcję tworzącą
ale nie udało mi się tej rozwinąć
(Próbowałem ją rozwijać z dwumianu Newtona)
Jeżeli chodzi o wielomiany Czebyszowa
to wychodząc z równania rekurencyjnego
otrzymałem podwójną sumę w której zmiana kolejności sumowania byłaby pomocna
ale nie wiem czy poprawnie ją wykonałem
no i nie mam pomysłu na policzenie tej sumy która pozostanie
Z równania różniczkowego otrzymałem wzór na współczynniki
wyrażony za pomocą iloczynu
(różni się on jednak od tego co podają w tablicach i wikipediach
ale za to działa także dla n=0 a ten w tablicach i wikipediach już nie)
Istnieją jeszcze wielomiany Czebyszowa drugiego rodzaju ale można je uzyskać
różniczkując jednokrotnie po x wielomiany Czebyszowa pierwszego rodzaju
poza tym w tablicach napisali że są stosowane znacznie rzadziej
| 1 | | d | |
Un(x) = |
| |
| Tn+1(x) |
| n+1 | | dx | |
2 lis 04:28
wredulus_pospolitus:
@Mariusz −−− niestety, ja nie będę dobrą osobą do dyskusji w tych tematach, ja nie mam
styczności na co dzień z taką matematyką ... najpierw bym musiał sobie przypomnieć o tych
wielomianach, związku z tym − ja raczej nie jestem dobrym adresem
2 lis 23:00
jc: Mariusz, ładny niedługi tekst o wielomianach ortogonalnych znajdziesz pod koniec I tomu książki
Byrona i Fullera Matematyka w fizyce klasycznej i kwantowej.
Są tam opisane wszystkie wielomiany powiązane liniowym równanie różniczkowym 2 rzędu.
Nie znajdziesz tam np. wielomianów Meixnera (wielomiany ortogonalne względem wagi
1/cosh x na prostej) i wielu innych (wagi możesz dobierać dość dowolnie).
2 lis 23:17
Mariusz:
Ja równania różniczkowe których całkami szczególnymi są wymienone
przeze mnie wielomiany wziąłem
z książki Franciszka Lei która była polecana studentom pierwszego roku
natomiast równanie którego całką szczególną są wielomiany Czebyszowa
można łatwo wyprowadzić bo znany jest wzór trygonometryczny
Chciałem tylko wiedzieć czy gdybym rozpoczął nowy wątek to napisalibyście mi
kilka przydatnych rzeczy takich jak skąd wziąć warunki początkowe do tych równań linowych
Jak rozwinąć funkcję tworzącą w szereg
Jak wyprowadzić wzór Rodriguesa
(Wielomiany te można uzyskać różniczkując funkcję tworzącą po t,
natomiast we wzorze Rodriguesa występuje różniczkowanie po x
więc może dobrym punktem wyjścia do uzyskania wzoru Rodriguesa byłaby funkcja tworząca)
Jak pokazać że wielomiany te rzeczywiście są ortogonalne
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Wracając do tematu to podany przez wredulusa
sposób tworzenia ciągu ilorazów wydaje się być szybciej zbieżny
Jak jednak numerycy liczą wartość pochodnej w punkcie ?
Mają trzy ilorazy różnicowe ale chyba nie bawią się w tworzenie ciągu
i liczenie jego granicy
3 lis 04:15
ABC:
"Jak jednak numerycy liczą wartość pochodnej w punkcie ?"
to temat rzeka , zasadniczy podział metod jest na 2 grupy:
− metoda różnic skończonych
−metoda funkcji aproksymującej
w metodzie różnic są w użyciu wzory dużo bardziej skomplikowane niż iloraz różnicowy
3 lis 06:29
Mariusz:
Ja podszedłem do tematu od strony matematycznej definicji pochodnej funkcji w punkcie
ale to podejście się chyba nie nadaje do numerycznego obliczania przybliżonej wartości
pochodnej funkcji w punkcie
3 lis 07:21
3 lis 12:29
Mariusz:
ABC zajrzałbyś do tematu ?
https://matematykaszkolna.pl/forum/418172.html
Ja tam wrzuciłem odnośnik do tematu z matematyka.pl
gdzie w jednym z wpisów Qń podał pewne przekształcenie
i nic więcej o nim nie napisał a wydaje mi się że mogłoby mi się przydać
5 lis 09:02