Dobrze, stoję na początkowym etapie prac - mam program, który przyjmuje liczbę węzłów i pozwala wprowadzić wartości X,Y dla każdego z węzłów.
Kolejny krok to wyznaczenie wielomianu interpolacyjnego.
Znalazłem coś takiego -> http://www.algorytm.org/procedury-numeryczne/interpolacja-lagrange-a.html ale to służy wyłącznie do wyznaczenia wartości funkcji w szukanym X, więc nie jest rozwiązaniem, którego poszukuję. Z tych wzorów z wiki to niewiele jestem w stanie zrozumieć, zawsze się w takich sprawach gubię jak nie wiem. Myślę o tym od rana, a dzisiaj przynajmniej większą część prac muszę opracować, jutro po pracy będzie mało czasu, a jutro powinienem to wysłać.
Na razie jeszcze myślę nad innym zagadnieniem - mam w poleceniu, że musi to być uporządkowany zbiór. Powinienem podane węzły posortować? Xy mogę, tylko jak później sprawić, żeby Yki poleciały na odpowiednie miejsca w swojej tablicy? Czy też powinienem to zrobić w ten sposób, że jak ktoś poda X mniejszy od któregoś z poprzednio wpisanych, to wyrzucać komunikat, że X[i] nie może być mniejszy od poprzednio wpisanych X i po prostu dać od nowa do wpisania wartość tego konkretnego X[i]?
__
Próbowałem napisać funkcję do sortowania i odpowiedniego przypisania y.
public static void sortuj(int [] xx)
{
for(int i=0; i<w; i++)
{
xx2[i] = xx[i];
}
Array.Sort(xx);
for(int i=0; i<w; i++)
{
for (int j=0; j<w; j++)
{
if (xx[i] == xx2[j])
yy2[i] = yy[j];
}
}
}
W to ilość węzłów.
Najpierw do drugiej tablicy xx2 dopisuję wartości z tablicy xx gdzie znajdują się wartości X wpisane przez użytkownika.
Następnie sortuję tablicę xx.
Kolejna pętla -> tutaj biorę od xx[0], czyli najmniejszego elementu. Szukam mu elementu równego z tablicy xx2.
Jak znajdę element, to do drugiej tablicy yy2[0] dopisuję wartość z tablicy yy (powinna ona odpowiadać wartości wpisanej przy X podczas wypełniania przez użytkownika).
Efekt: błędny wynik. wywołanie yy2[0] zawsze daje wynik 0.