Program obliczający szereg

0

Witam napisałem podstawę programu, który wylicza mi szereg, prosiłbym o sprawdzenie czy wszystko jest ok gdyż do końca nie jestem pewien co do sinusa, który mi coś dziwnie wylicza, nie wiem czy nie zapisałem źle tej funkcji

#include <iostream>
#include <math.h>

using namespace std;


int main()
{
    double x, m, wynik, a;
   cout<< "wprowadz zmienna niezalezna x wieksza od zera: ";
   cin >> x;
   cout << "wprowadz liczbe wyrazow szeregu: ";
   cin >> m;
   cout << "wprowadz pierwszy wyraz szeregu: ";
   cin >> a;
   
   for(int i=1; i<=m; i++)
   {
   wynik = (pow(-1,i))*a*i*sin(x/(1+(i*i)));
           } 
    
    cout << wynik << endl;
    
 system("pause");
 return 0;   
}
0

coś to liczy, ale skąd mamy wiedzieć co chciałeś policzyć?

0

Chodzi o zadanie, które jest w załączniku, musze policzyc ten szereg.

0

Musisz odpytać użytkownika o liczby a1,...,am. A we wzorze zamienić a*i na ai.

0
bo napisał(a)

Musisz odpytać użytkownika o liczby a1,...,am. A we wzorze zamienić a*i na ai.

Hmmm...
Ale to w takim razie muszę zrobić ciąg czyli zapytać o pierwszy wyraz oraz liczbe jaka sie dodaje by uzyskać kolejny wyraz, dobrze mysle?

A jak zapisać w c++ ai?

0

nie a*i tylko a[i]

jakoś wolę w ten sposób zamiast pow(-1,i)
if(i&1) wynik+=a[i]sin(x/(1+ii));
else wynik-=a[i]sin(x/(1+ii));

0

Hmmm jak wstawiłem ten kod to wyskakuje mi taki błąd:

0

Zrobiłem to na tej zasadzie, że dodałem wprowadzenie różnicy ciągu arytmetycznego i do szeregu wrzuciłem wzór na ciąg, który będzie mi liczył a1, a2.... an
Czy jest to poprawnie zrobione?

 #include <iostream>
#include <math.h>

using namespace std;


int main()
{
    double x, m, wynik, a, r;
   cout<< "wprowadz zmienna niezalezna x wieksza od zera: ";
   cin >> x;
   cout << "wprowadz liczbe wyrazow szeregu: ";
   cin >> m;
   cout << "wprowadz pierwszy wyraz szeregu: ";
   cin >> a;
   cout << "wprowadz roznice ciagu: ";
   cin >> r;
   
   
   for(int i=1; i<=m; i++)
   {
   if(i&1) wynik+=(a+(i-1)*r)*sin(x/(1+i*i));
           else    wynik-=(a+(i-1)*r)*sin(x/(1+i*i));
           } 
    
    cout << wynik << endl;
    
 system("pause");
 return 0;   
}
 
0

Ale ciąg (an) nie musi być arytmetyczny i nie możesz sobie tego tak uprościć. W Twoim poleceniu jest że a1, ... , am to współczynniki a nie że ciąg. Musisz wczytać je do tablicy i później wykorzystać do liczenia sumy szeregu. Albo wczytywać i liczyć jednocześnie, to już zależy od Ciebie.

0
prajmus napisał(a)

Ale ciąg (an) nie musi być arytmetyczny i nie możesz sobie tego tak uprościć. W Twoim poleceniu jest że a1, ... , am to współczynniki a nie że ciąg. Musisz wczytać je do tablicy i później wykorzystać do liczenia sumy szeregu. Albo wczytywać i liczyć jednocześnie, to już zależy od Ciebie.

Fakt nie musi być arytmetyczny, jednak a1,a2,a3 etc to są nieokreślone dowolne liczby. Mogłoby sie przeciez zdazyc ze te liczby bylyby akurat takimi ktore tworza ciag arytmetyczny. Dlatego wydaje mi sie, że łatwiej jest ustawić ciąg arytmetyczny niz bawic się z tablica. Ciag liczy przeciez a1,a2,a3 etc wiec nie jest to zle.

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