interpolacja lagrange'a

0

Mam mieć takie dane wejściowe. Niestety nie wiem jak uwzględnić przedział a,b. Proszę o pomoc

  • liczba węzłów interpolacyjnych,
  • a, b, t.ż, a < b,
  • wartości funkcji f w punktach węzłowych.

Oczekiwane dane wyjściowe:

  • wielomian Lagrange'a będący interpolacją zadanej funkcji w "równomiernie wyznaczonych" węzłach interpolacyjnych.
#include<iostream>
using namespace std;


int main()
{
    double xtab[1000], ytab[1000], wyniki[1000];
    cout<<"Podaj ile x i y"<<endl;
    int ilosc;
    cin>>ilosc;
    cout<<"Podaj argument do obliczenia"<<endl;
    int wartosc;
    cin>>wartosc;
    for(int i=0; i<ilosc; i++)
    {
        cout<<"wpisz x nr."<<i+1<<": ";
        cin>>xtab[i];
        cout<<"wpisz y nr."<<i+1<<": ";
        cin>>ytab[i];
    }
    for(int i=0; i<ilosc; i++)
    {
        wyniki[i]=ytab[i];
        for(int k=0; k<ilosc; k++)
        {
            if(xtab[i]!=xtab[k])
            {
                wyniki[i]*=(1.000*wartosc -xtab[k]);
            }
        }
        for(int k=0; k<ilosc; k++)
        {
            if(xtab[i]!=xtab[k])
            {
                wyniki[i]/=(1.000*xtab[i] -xtab[k]);
            }
        }

    }
    double suma =0;
    cout<<"---------------"<<endl<<"Wartosc wyrazenia to: ";
    for(int i=0; i<ilosc; i++)
    {
        if(i!=0)
            cout<<" + ";
        suma+=(wyniki[i]*1.000);
        cout<<wyniki[i];
    }
    cout<<" = "<<suma<<endl;
    return 0;
}

0

kurcze nie wiem czy rozumiem, zatem jak wpisuje:
x1=1
y1=1
x2=4
x2=2
x3=9
y3=3
to przedział [a,b] to u mnie [1,9] ? . Przepraszam jesli pytanie jest głupie ale z matematyką u mnie tak na dwa razy bo zajmuje się czyms innym.

1

Tak, to jest Twój zakres obserwacji.

0

A mając takie założenia ja musze to jakoś w kodzie uwzględnić?

0

Tak, Masz mieć daną liczbę punktów Xi, zawierających się pomiędzy a i b.

0

Pomógłyś mi to w kodzie uwzględnić ? ja muszę recznie podać te a i b ? naprawdę nie rozumiem..

0

Przecież a i b, i ilość par (x, y), n, jest podana na wejściu; tak jak Robisz, tylko, a < xi < b, dla i = 1, ..., n.

0

ja juz sie pogubiłem bo nie wiem czym jest te a i b, to jest te xtab[1000], ytab[1000] ktore sa tabelkami gdzie przechowuje wartosci x i y ?

0

Nie, załóżmy, że a = 1, b = 5, n = 3, wczytane Xi, muszą być w przedziale (a, b), czyli, np.: X1 = 2, X2 = 3, X3 = 4.

0

okej, czyli ja zadnych zabezpieczeń juz w kodzie robić nie muszę? po prostu muszę wiedzieć, że np majac przedział [1,10] musze podawac odpowiednie wartości
gdzie 1<Xi<10 ?

1

Tak, funkcja ma być modelowana w tym przedziale, nie można jej podac wartości z poza niego

1 użytkowników online, w tym zalogowanych: 0, gości: 1