Pytanie odnośnie funkcji i ich przedziałów

0

W jaki sposób można połączyć dwie funkcji (np. jedna to sinx, która jest od -nieskonczonosci do 1, druga x^2, który jest od 1 do +nieskonczonosci)?

3

Jeśli dobrze rozumiem o co chodzi to będzie to coś takiego:

double foo(double x)
{
    if (x < 1.0)
        return sin(x);
    else
        return pow(x,2);
}

Oczywiście jako zadanie domowe polecam zapoznać się z problemem porównywania liczb ze zmiennym przecinkiem i adekwatne dostosowanie funkcji :)
Dalej w programie używasz nowej funkcji foo która jest sklejeniem żądanych przez Ciebie funkcji.

0

Dziękuje, czyli jeśli mam taką funkcję to mogę to zapisać w postaci jednej funkcji, z liczbą pętli zgodną z ilością przedziałów? image

1

Oczywiście, wtedy możesz dać coś na wzór:

double foo(double x)
{
    if (x < -1.0)
        return sin(x);
    else if (x >= -1.0 and x < 0.0)
        return pow(x,2);
    else if (x >= 0.0 and x < 10)
        return ...
    else
        return ...
}

Jednak pamiętając, że przedziały mają się nie zazębiać.

0
double foo(double x) { return x>=1?x*x:sin(x); }
0

Czy funkcja wynikowa ma być różniczkowalna? Jeśli tak to musisz użyć jakiejś aproksymacji wielomianowej, ale przy sin(x) to może być "trudne".

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