Форум программистов, компьютерный форум CyberForum.ru

ряд Тейлора - C++

Восстановить пароль Регистрация
 
spydark91
84 / 84 / 2
Регистрация: 03.03.2011
Сообщений: 1,872
20.04.2013, 20:16     ряд Тейлора #1
Доброого времени сутков
Надо написать программу для вычисление sin(сам код не нужен, надо помощь в математическом плане) . Нашел формулу, но не понятно не понятно до какого n (счетчик в формуле) нужно считать
Объясните пожалуйста

http://www.google.ru/search?hl=ru&re...B0&v=133247963

Добавлено через 9 часов 26 минут
народ,помогите, пожалуйста
нашел код на паскале,но он не верно работает
http://pasadvice.narod.ru/prog/sin.htm
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2013, 20:16     ряд Тейлора
Посмотрите здесь:

Ряд Тейлора C++
Ряд Тейлора C++
ряд Тейлора C++
ln - ряд Тейлора C++
вычислить функцию с помощью разложения в ряд.(Ряд Тейлора) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
20.04.2013, 23:08     ряд Тейлора #2
Может, все же код? У меня просто завалялся в общей папке.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cmath>
#include <cstdlib>
int f(int n)
{ 
   int r=1;
   for (int i=1; i<=n; i++)
      r*=i;
   return r;
}
 
int main(void)
{
   double x=0.3, s=x, sin=x, e = 0.001, s1;
   int n=1;
   do 
   {
      s1=s;
      s=pow(-1.,n)*pow(x,2*n+1)/f(2*n+1);
      sin+=s;
      n++;
   }
   while (fabs(s1-s)<e);
   std::cout<<"Rad = "<<sin<<" Gr = "<<sin*3.14/180.0<<std::endl; 
   system("PAUSE");
}
Dmitriy_M
1294 / 1175 / 104
Регистрация: 20.03.2009
Сообщений: 4,208
Записей в блоге: 11
21.04.2013, 12:39     ряд Тейлора #3
Цитата Сообщение от BumerangSP Посмотреть сообщение
все же код?

У меня в вузе такой бы код не приняли.
Если взять отношения i и i-1 общего члена последовательности, то получается рекуррентная формула пересчета текущего значения от предыдущего.
BumerangSP
21.04.2013, 12:49
  #4

Не по теме:

Dmitriy_M, в данном случае какая разница, я вроде проверил, все верно считает, а оптимизировать скольколетний рабочий код всяко лень)

spydark91
84 / 84 / 2
Регистрация: 03.03.2011
Сообщений: 1,872
21.04.2013, 18:46  [ТС]     ряд Тейлора #5
вообщем написал такой код
не пойму в чем ошибкаа..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <fstream>
#include <math.h>
 
using namespace std;
long long fact(int x){
        long long z = 1;
        for(int i = 1; i <= x; i++)
                z *= i;
        return z;
}
double mySin(double x) {
    double res = 0;
    for(int i= 1 ; i <10; i++){
        res += (pow(-1, (double)i - 1) * pow(x, 2 * i - 1)) / fact(2 * i - 1);
    }
    res += pow(x, 2 * 10 + 1) / fact(2 * 10 + 1);
    return res;
}
 
int main() {
    ofstream out("D:\\Soft\\OtSDK\\Projects\\untitled1\\output.txt");
    out<<"| Angel | Value |\n";
 
    for (int i=0;i<91;i=i+2) {
        out<<"----------------------\n";
        out<<"|   ";out<<i;
        if(i<10) out<<"   |  "; else out<<" |  ";
        double r=mySin(i*3.14/180);
        if (r>=0) out<<" ";
        out<<r;  out<<" ; sin = ";out<<sin(i);
        out<<" |\n";
    }
 
 
    //out<<"HelloWorld"<<"\n";
 
     out.close();
    return 0;
}
ряд выводит такой
Кликните здесь для просмотра всего текста
| Angel | Value |
----------------------
| 0 | 0 ; sin = 0 |
----------------------
| 2 | 0.0348818 ; sin = 0.909297 |
----------------------
| 4 | 0.0697212 ; sin = -0.756802 |
----------------------
| 6 | 0.104476 ; sin = -0.279415 |
----------------------
| 8 | 0.139103 ; sin = 0.989358 |
----------------------
| 10 | 0.173561 ; sin = -0.544021 |
----------------------
| 12 | 0.207808 ; sin = -0.536573 |
----------------------
| 14 | 0.241802 ; sin = 0.990607 |
----------------------
| 16 | 0.275501 ; sin = -0.287903 |
----------------------
| 18 | 0.308866 ; sin = -0.750987 |
----------------------
| 20 | 0.341854 ; sin = 0.912945 |
----------------------
| 22 | 0.374426 ; sin = -0.00885131 |
----------------------
| 24 | 0.406543 ; sin = -0.905578 |
----------------------
| 26 | 0.438164 ; sin = 0.762558 |
----------------------
| 28 | 0.469253 ; sin = 0.270906 |
----------------------
| 30 | 0.49977 ; sin = -0.988032 |
----------------------
| 32 | 0.529679 ; sin = 0.551427 |
----------------------
| 34 | 0.558943 ; sin = 0.529083 |
----------------------
| 36 | 0.587528 ; sin = -0.991779 |
----------------------
| 38 | 0.615396 ; sin = 0.296369 |
----------------------
| 40 | 0.642516 ; sin = 0.745113 |
----------------------
| 42 | 0.668854 ; sin = -0.916522 |
----------------------
| 44 | 0.694378 ; sin = 0.0177019 |
----------------------
| 46 | 0.719057 ; sin = 0.901788 |
----------------------
| 48 | 0.742861 ; sin = -0.768255 |
----------------------
| 50 | 0.76576 ; sin = -0.262375 |
----------------------
| 52 | 0.787727 ; sin = 0.986628 |
----------------------
| 54 | 0.808736 ; sin = -0.558789 |
----------------------
| 56 | 0.82876 ; sin = -0.521551 |
----------------------
| 58 | 0.847776 ; sin = 0.992873 |
----------------------
| 60 | 0.86576 ; sin = -0.304811 |
----------------------
| 62 | 0.88269 ; sin = -0.739181 |
----------------------
| 64 | 0.898546 ; sin = 0.920026 |
----------------------
| 66 | 0.913308 ; sin = -0.0265512 |
----------------------
| 68 | 0.926958 ; sin = -0.897928 |
----------------------
| 70 | 0.939481 ; sin = 0.773891 |
----------------------
| 72 | 0.950859 ; sin = 0.253823 |
----------------------
| 74 | 0.961081 ; sin = -0.985146 |
----------------------
| 76 | 0.970133 ; sin = 0.566108 |
----------------------
| 78 | 0.978004 ; sin = 0.513978 |
----------------------
| 80 | 0.984685 ; sin = -0.993889 |
----------------------
| 82 | 0.990167 ; sin = 0.313229 |
----------------------
| 84 | 0.994444 ; sin = 0.73319 |
----------------------
| 86 | 0.997511 ; sin = -0.923458 |
----------------------
| 88 | 0.999363 ; sin = 0.0353983 |
----------------------
| 90 | 1 ; sin = 0.893997 |


1 столбец градусы,второй-самописный синус,третий библиотечный
Dmitriy_M
1294 / 1175 / 104
Регистрация: 20.03.2009
Сообщений: 4,208
Записей в блоге: 11
22.04.2013, 10:59     ряд Тейлора #6
Цитата Сообщение от spydark91 Посмотреть сообщение
ошибкаа..
ошибка в формуле.
spydark91
84 / 84 / 2
Регистрация: 03.03.2011
Сообщений: 1,872
22.04.2013, 12:13  [ТС]     ряд Тейлора #7
C++
1
2
3
4
5
6
7
8
double mySin(double x) {
    double res = 0;
    for(int i= 0 ; i <10; i++){
        res += (pow(-1, (double)i ) * pow(x, (double)2 * i + 1)) / fact((double)2 * i + 1);
    }
   // res += pow(x, 2 * 10 + 1) / fact(2 * 10 + 1);
    return res;
}

Кликните здесь для просмотра всего текста
| Angel | Value |
----------------------
| 0 | 0 ; sin = 0 |
----------------------
| 2 | 0.0348818 ; sin = 0.909297 |
----------------------
| 4 | 0.0697212 ; sin = -0.756802 |
----------------------
| 6 | 0.104476 ; sin = -0.279415 |
----------------------
| 8 | 0.139103 ; sin = 0.989358 |
----------------------
| 10 | 0.173561 ; sin = -0.544021 |
----------------------
| 12 | 0.207808 ; sin = -0.536573 |
----------------------
| 14 | 0.241802 ; sin = 0.990607 |
----------------------
| 16 | 0.275501 ; sin = -0.287903 |
----------------------
| 18 | 0.308866 ; sin = -0.750987 |
----------------------
| 20 | 0.341854 ; sin = 0.912945 |
----------------------
| 22 | 0.374426 ; sin = -0.00885131 |
----------------------
| 24 | 0.406543 ; sin = -0.905578 |
----------------------
| 26 | 0.438164 ; sin = 0.762558 |
----------------------
| 28 | 0.469253 ; sin = 0.270906 |
----------------------
| 30 | 0.49977 ; sin = -0.988032 |
----------------------
| 32 | 0.529679 ; sin = 0.551427 |
----------------------
| 34 | 0.558943 ; sin = 0.529083 |
----------------------
| 36 | 0.587528 ; sin = -0.991779 |
----------------------
| 38 | 0.615396 ; sin = 0.296369 |
----------------------
| 40 | 0.642516 ; sin = 0.745113 |
----------------------
| 42 | 0.668854 ; sin = -0.916522 |
----------------------
| 44 | 0.694378 ; sin = 0.0177019 |
----------------------
| 46 | 0.719057 ; sin = 0.901788 |
----------------------
| 48 | 0.742861 ; sin = -0.768255 |
----------------------
| 50 | 0.76576 ; sin = -0.262375 |
----------------------
| 52 | 0.787727 ; sin = 0.986628 |
----------------------
| 54 | 0.808736 ; sin = -0.558789 |
----------------------
| 56 | 0.82876 ; sin = -0.521551 |
----------------------
| 58 | 0.847776 ; sin = 0.992873 |
----------------------
| 60 | 0.86576 ; sin = -0.304811 |
----------------------
| 62 | 0.88269 ; sin = -0.739181 |
----------------------
| 64 | 0.898546 ; sin = 0.920026 |
----------------------
| 66 | 0.913308 ; sin = -0.0265512 |
----------------------
| 68 | 0.926958 ; sin = -0.897928 |
----------------------
| 70 | 0.939481 ; sin = 0.773891 |
----------------------
| 72 | 0.950859 ; sin = 0.253823 |
----------------------
| 74 | 0.961081 ; sin = -0.985146 |
----------------------
| 76 | 0.970133 ; sin = 0.566108 |
----------------------
| 78 | 0.978004 ; sin = 0.513978 |
----------------------
| 80 | 0.984685 ; sin = -0.993889 |
----------------------
| 82 | 0.990167 ; sin = 0.313229 |
----------------------
| 84 | 0.994444 ; sin = 0.73319 |
----------------------
| 86 | 0.997511 ; sin = -0.923458 |
----------------------
| 88 | 0.999363 ; sin = 0.0353983 |
----------------------
| 90 | 1 ; sin = 0.893997 |



тож неверно..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2013, 12:34     ряд Тейлора
Еще ссылки по теме:

C++ Ряд Тейлора С++
ряд Тейлора C++
C++ Ряд Тейлора

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Dmitriy_M
1294 / 1175 / 104
Регистрация: 20.03.2009
Сообщений: 4,208
Записей в блоге: 11
22.04.2013, 12:34     ряд Тейлора #8
Цитата Сообщение от spydark91 Посмотреть сообщение
тож неверно..
может голову включишь?
C++
1
2
3
        double r=mySin(i*3.14/180);
        if (r>=0) out<<" ";
        out<<r;  out<<" ; sin = ";out<<sin(i);
Читай sin, что тут синус получает на вход?
Yandex
Объявления
22.04.2013, 12:34     ряд Тейлора
Ответ Создать тему
Опции темы

Текущее время: 00:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru