• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obliczyć wartość funkcji podanej w postaci rzędu.

Object Storage Arubacloud
0 głosów
936 wizyt
pytanie zadane 12 listopada 2016 w C i C++ przez orlicki12 Początkujący (450 p.)

Witam. Dostałem takie zadanie na studiach:

Obliczyć wartość funkcji podanej w postaci rzędu. Wyniki obliczeń zapisać do pliku tekstowego. Narysować wykres y(x). 

W moim akurat wypadku jest to przykład nr 11. Znam podstawy C++ wiem jak zapisać wyniki w pliku i narysować wykres ale nie mam pojęcia jak zabrać się za liczenie takiego szeregu. Może moglibyście mi coś podpowiedzieć smiley

1 odpowiedź

+1 głos
odpowiedź 12 listopada 2016 przez niezalogowany
edycja 30 sierpnia 2017

Szereg to po prostu sumowanie. Możesz zrobić pętlę od 0 do nieskończoności, która by dodawała. w zamian za nieskończoność można przyjąć jakaś dużą liczbę (może być 100 może być 10000 - w zależności jaka dokładność jest potrzebna). Żeby mieć pewność, że liczysz dobrze możesz wyliczyć szereg i masz gotową funkcję do której szereg zbiega i którą możesz porównywać wyniki swojego sumowania np tak:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    double y=0;
    for(double x=0.0; x<1; x+=0.1)
    {
        for(double k=0; k<10000; k++)
            y+=(pow(-1, k)*pow(x, 2*k+3)/((2*k+1)*(2*k+3)));

        cout<<"y("<<x<<") = "<<y<<" \t ----> "; // wypisanie wartosci obliczonego y dla danego x

        cout<<(-x/2)+atan(x)*(1+x*x)/2<<endl; // gotowy wynik
        y=0;
    }
    return 0;
}

 

komentarz 13 listopada 2016 przez orlicki12 Początkujący (450 p.)
o kurde i to było takie proste, właśnie największy problem miałem z tą nieskończonością. Dzięki wielkie!
komentarz 13 listopada 2016 przez niezalogowany
Myk jest taki, że im większe k tym mniejsze to co dodajemy - praktycznie jest bez znaczenia :) PS. Zostaw łapkę, albo oznacz najlepszą odpowiedź! Pozdrawiam
komentarz 14 listopada 2016 przez orlicki12 Początkujący (450 p.)
a mam pytanie nie wiesz moze o co chodzi z tym błędem ?
komentarz 14 listopada 2016 przez niezalogowany

Jak masz k, które zmienia się od 0 do nieskończoności... To sumujesz wyrażenie za sumą k-razy. Najlepiej nieskończoność - bo im więcej tym będziesz miał dokładniej. Ale zawsze ta zamiana z nieskończoności na liczbę będzie powodowała jakiś błąd przybliżenia. Może on być niewidoczny na pierwszy rzut oka.

Jeżeli weźmiesz zmienisz k w pętli z 10000 na 2 to będzie to wyglądać tak:

for(double k=0; k<2; k++)

to dla np f(0.9) mamy wynik 0.203634, a powinno być z gotowego wzoru 0.213198. Bład to różnica tego czyli około 0.01.

Gdy zmienisz to k na 4 program wypisze 0.21115 czyli mniejszy błąd mamy (0.002). Więc wydaje mi się, że chodzi tu oto by ten błąd nie był większy niż 0.00002 jak podano w zadaniu. Ja dałem k z rozpędu na 10000, ale 1000 też może być. Możesz się pobawić i posprawdzać. 

komentarz 14 listopada 2016 przez orlicki12 Początkujący (450 p.)

aaa rozumiem dobra wielkie dzieki lapki leca smiley

Podobne pytania

+1 głos
1 odpowiedź 1,026 wizyt
0 głosów
2 odpowiedzi 3,526 wizyt
pytanie zadane 30 października 2015 w C i C++ przez Moonshine Mądrala (6,360 p.)
0 głosów
1 odpowiedź 527 wizyt

92,620 zapytań

141,474 odpowiedzi

319,815 komentarzy

62,004 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...