[Algorytm] Sinus hiperboliczny

kub4SS
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 9 lut 2010, o 17:30
Płeć: Mężczyzna
Podziękował: 7 razy

[Algorytm] Sinus hiperboliczny

Post autor: kub4SS »

Witam,
Mam do napisania program wyznaczający wartość sinusa hiperbolicznego z rozwinięcia szeregu potęgowego. Mam problem z jedną rzeczą. Jedną z danych wejściowych ma być dokładność obliczeń w procentach, która ograniczy liczbę wyrazów szeregu. Zupełnie nie wiem, jak to ma wyglądać w sensie merytorycznym, jak podaną dokładność wykorzystać? Na razie jestem na poziomie pisania algorytmu i początku swej drogi z językiem C .
miodzio1988

[Algorytm] Sinus hiperboliczny

Post autor: miodzio1988 »

jak podaną dokładność wykorzystać?
Wzór na resztę takie rozwinięcia znajdź i dzięki tej dokładności będziesz wiedzieć ile wyrazów masz zsumować
kub4SS
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 9 lut 2010, o 17:30
Płeć: Mężczyzna
Podziękował: 7 razy

[Algorytm] Sinus hiperboliczny

Post autor: kub4SS »

A można troszkę jaśniej
miodzio1988

[Algorytm] Sinus hiperboliczny

Post autor: miodzio1988 »

Ale czego nie rozumiesz?
kub4SS
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 9 lut 2010, o 17:30
Płeć: Mężczyzna
Podziękował: 7 razy

[Algorytm] Sinus hiperboliczny

Post autor: kub4SS »

Jak zastosować ten wzór na resztę ?
miodzio1988

[Algorytm] Sinus hiperboliczny

Post autor: miodzio1988 »

Może inaczej. Sumuj wyrazy aż jakiś trafi się mniejszy od wspomnianej dokładności. Tyle. WTedy nic nie wnosi on do sumy i z resztą się bawić nie musisz
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

[Algorytm] Sinus hiperboliczny

Post autor: norwimaj »

To drugie rozwiązanie chyba niepoprawne, bo kilka wyrazów mniejszych niż dokładność może się zsumować do wartości większej niż dokładność.
miodzio1988

[Algorytm] Sinus hiperboliczny

Post autor: miodzio1988 »

No racje. W praktyce jednak będzie to działało, stąd taka propozycja. Ale jak chce się być formalnym(i poprawnym) to opcja pierwsza
kub4SS
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 9 lut 2010, o 17:30
Płeć: Mężczyzna
Podziękował: 7 razy

[Algorytm] Sinus hiperboliczny

Post autor: kub4SS »

Czy może ktoś dokładniej wytłumaczyć jak zastosować ten wzór na resztę ?
pawel_wr
Użytkownik
Użytkownik
Posty: 22
Rejestracja: 25 paź 2012, o 04:00
Płeć: Mężczyzna
Lokalizacja: wroclaw
Pomógł: 3 razy

[Algorytm] Sinus hiperboliczny

Post autor: pawel_wr »

\(\displaystyle{ /* Sinusa hiperboliczny punkcie x z dokladnoscia eps */
/* sinush(x)=x^1/1!+x^3/3!+x^5/5!+x^7/7!+... * DEV C++ 4.9.9.2 */

#include <cstdlib>
#include <iostream>
#include <math.h> // tu funkcja sinus hiperboliczny

using namespace std;

int main(int argc, char *argv[])
{
int
i,j;

double
dd,x,
eps, // eps = dokladnosc
sh, // sh = obliczany sinus hiperboliczny
licznik,mianownik; // licznik=x^i ; mianownik=i!

sh=0;
eps=0.002;

x=3; // wartosc przykladowa, dla ktorej liczymy sinhiper

i=0;
licznik=x;
mianownik=1.0;
dd=x; // pierwszy wyraz szeregu x^1/0!=x;

while ( dd>=eps )
{
i+=2;
licznik=licznik*x*x;
mianownik=mianownik*i*(i+1);
dd=licznik/mianownik;
sh+=dd;
}

sh+=x;

cout<<sh<<endl;
cout<<sinh(x)<<endl; // sprawdzenie

system("PAUSE");
return EXIT_SUCCESS;
}}\)
-- 15 lis 2012, o 01:37 --

Kod: Zaznacz cały


/* Sinus hiperboliczny w punkcie x z dokladnoscia eps                  */
/*  sinush(x)=x^1/1!+x^3/3!+x^5/5!+x^7/7!+...   * DEV C++ 4.9.9.2     */

#include <cstdlib>
#include <iostream>
#include <math.h>   // tu funkcja sinus hiperboliczny

using namespace std;

int main(int argc, char *argv[])
{
    int 
        i,j;
   
    double 
        dd,x,
        eps,  // eps = dokladnosc
        sh,  //  sh =  obliczany sinus hiperboliczny
        licznik,mianownik;   // licznik=x^i  ; mianownik=i!
    
    sh=0;
    eps=0.002;
    
    x=3;   //  wartosc przykladowa, dla ktorej liczymy sinhiper
       
    i=0;
    licznik=x;
    mianownik=1.0;
    dd=x;    //  pierwszy wyraz szeregu  x^1/0!=x;
   
    while ( dd>=eps )
       {
         i+=2;
         licznik=licznik*x*x;
         mianownik=mianownik*i*(i+1);
         dd=licznik/mianownik;
         sh+=dd;
       }

      sh+=x;
      
      cout<<sh<<endl;
      cout<<sinh(x)<<endl;  // sprawdzenie
   
    system("PAUSE");
    return EXIT_SUCCESS;
}



ODPOWIEDZ