0 / 0 / 0
Регистрация: 21.01.2019
Сообщений: 11
1

Вычислить значение функции cos заданной разложением в ряд Тейлора

10.03.2019, 15:02. Показов 1184. Ответов 17
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const e = 0.001;
var x, t, s: real;
    n: integer;
begin
  write('     x = ');
  readln(x);
  t := 1;
  s := t;
  n := 0;
  while abs(t) > e do
    begin
      inc(n);
      t := -x * x * t / 2 / n / (2 * n - 1);
      s := s + t
    end;
  writeln('   eps = ', e:6:3);
  writeln('     S = ', s:13:10);
  writeln('cos(x) = ', cos(x):13:10);
  readln
end.
Пожалуйста,переведите с Pascal на C++.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2019, 15:02
Ответы с готовыми решениями:

Вычислить значение функции cos(x) заданной разложением в ряд Тейлора
Не используя стандартные функции (за исключением abs), вычислить с точностью eps>0:

Вычислить значение функции cos(x) заданной разложением в ряд Тейлора
Всем привет, помогите написать код на языке С# или C++ Нужно найти Cos(x) если...

Вычислить значение функции заданной разложением в ряд Тейлора
Дано натуральное n и действительное x. Вычислить значения суммы

Вычислить значение функции заданной разложением в ряд Тейлора
Здравствуйте. Нужно найти сумму ряда с заданной точностью (ряд во вложенной файле). Не...

17
0 / 0 / 0
Регистрация: 22.01.2019
Сообщений: 10
10.03.2019, 15:04 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var x,e,s,t:real;
    n:integer;
begin
write('x=');
readln(x);
write('e='); //точность,обычно 0<e<1
readln(e);
n:=0;
t:=0.5;
s:=t;
while abs(t)>e do
 begin
  n:=n+1;
  t:=-t*x*x/(2*n)/(2*n-1);
  s:=s+t;
 end;
write('s=',s:0:4)
end.
Помогите перевести на c++.
0
Модератор
Эксперт С++
12126 / 9791 / 5916
Регистрация: 18.12.2011
Сообщений: 26,268
10.03.2019, 15:12 3
В этом разделе уже все есть.
Не надо просить перевести, а надо написать задачу и потом найти готовое решение.
Я думаю, что у вас решается задача разложения косинуса в ряд Тейлора
См. Вычисление функций разложением в ряд Тейлора
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double mycos(double x,double eps)
{
    double s,an;
    int n;
    n=0;
    an=1;
    s=0;
    while(fabs(an)>eps)
    {
         s+=an;
         n++;
         an*=-x*x/(2.*n-1.0)/(2.0*n); 
    }
    return s;
}
0
0 / 0 / 0
Регистрация: 21.01.2019
Сообщений: 11
10.03.2019, 18:41  [ТС] 4
Извините,просто в этой программе жалуется на fabs и не все правильно,а та компилируется без ошибок
0
0 / 0 / 0
Регистрация: 24.01.2019
Сообщений: 17
10.03.2019, 19:03 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const e = 0.001;
var x, t, s: real;
    n: integer;
begin
  write('     x = ');
  readln(x);
  t := 1;
  s := t;
  n := 0;
  while abs(t) > e do
    begin
      inc(n);
      t := -x * x * t / 2 / n / (2 * n - 1);
      s := s + t
    end;
  writeln('   eps = ', e:6:3);
  writeln('     S = ', s:13:10);
  writeln('cos(x) = ', cos(x):13:10);
  readln
end.
0
Модератор
Эксперт С++
12126 / 9791 / 5916
Регистрация: 18.12.2011
Сообщений: 26,268
10.03.2019, 19:17 6
Зачем заниматься такой глупостью (переписывать с другого языка),
если в этом разделе уже все есть, например
Вычисление функций разложением в ряд Тейлора
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double mycos(double x,double eps)
{
    double s,an;
    int n;
    n=0;
    an=1;
    s=0;
    while(fabs(an)>eps)
    {
         s+=an;
         n++;
         an*=-x*x/(2.*n-1.0)/(2.0*n); 
    }
    return s;
}
0
Модератор
Эксперт С++
12126 / 9791 / 5916
Регистрация: 18.12.2011
Сообщений: 26,268
10.03.2019, 19:24 7
C++
1
#include <math.h>
Вообще-то есть такая волшебная клавиша помощи F1.
Нажимаете и видите:
Требования
Функция Обязательный заголовок C Обязательный заголовок C++
fabs, fabsf, fabsl <math.h> <cmath> или <math.h>
0
0 / 0 / 0
Регистрация: 24.01.2019
Сообщений: 17
10.03.2019, 19:45 8
Здравствуйте,просто именно это решение абсолютно подходящие,а другое нет.
0
0 / 0 / 0
Регистрация: 24.01.2019
Сообщений: 17
10.03.2019, 20:00 9
Помогите довести до ума.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <cmath>
double mycos(double x,double eps)
{
    double s,t;
    cin<<x;
    int n;
    n=0;
    t=1;
    s=t;
    while(fabs(t)>eps);
    {
         n++;
         t=-x * x * t/ 2 / n / (2 * n - 1);
         s=s+t;
         
    }
    return s;
}
Миниатюры
Вычислить значение функции  cos заданной разложением в ряд Тейлора  
0
109 / 84 / 55
Регистрация: 01.02.2014
Сообщений: 281
10.03.2019, 20:10 10
То что вы написали никак не соотноситься с заданием на картинке.
Приатачили не тот файл?
0
0 / 0 / 0
Регистрация: 24.01.2019
Сообщений: 17
10.03.2019, 21:04 11
Нет,если можете тогда помогите правильно написать программу.
0
109 / 84 / 55
Регистрация: 01.02.2014
Сообщений: 281
10.03.2019, 21:10 12
C++
1
2
3
4
5
6
7
8
9
10
double product(int n)
{
    double p = (1 - 1.0 / 2 / 2);
 
    for (int i = 3; i <= n; i++) {
        p *= (1 - 1.0 / i / i);
    }
 
    return p;
}
0
0 / 0 / 0
Регистрация: 21.01.2019
Сообщений: 11
10.03.2019, 21:53  [ТС] 13
Это да,но ввод x плохо работает.
0
5236 / 2890 / 1208
Регистрация: 07.02.2019
Сообщений: 7,292
10.03.2019, 22:08 14
Цитата Сообщение от altairgortsakov Посмотреть сообщение
Извините,просто в этой программе
это не программа, а функция
0
0 / 0 / 0
Регистрация: 24.01.2019
Сообщений: 17
10.03.2019, 23:11 15
Помогите довести до ума.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <cmath>
double mycos(double x,double eps)
{
    double s,t;
    cin<<x;
    int n;
    n=0;
    t=1;
    s=t;
    while(fabs(t)>eps);
    {
         n++;
         t=-x * x * t/ 2 / n / (2 * n - 1);
         s=s+t;
         
    }
    return s;
}
Миниатюры
Вычислить значение функции  cos заданной разложением в ряд Тейлора  
0
Модератор
Эксперт С++
12126 / 9791 / 5916
Регистрация: 18.12.2011
Сообщений: 26,268
11.03.2019, 05:45 16
Цитата Сообщение от eliotvaliev Посмотреть сообщение
Помогите довести до ума
А что надо доводить?
Функция переписана почти правильно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
double mycos(double x,double eps)
{
    double s,t;
    //cin<<x; не в ту сторону стрелки и не к месту
    int n;
    n=0;
    t=1;
    s=t;
    while(fabs(t)>eps)     //   ;  <- очень грубая ошибка
    {
         n++;
         t   *= -x * x / (2.0 * n) / (2.0 * n - 1.0); // не используйте целые константы в double выражениях
         s  += t;
         
    }
    return s;
}
В целом не понимаю, почему нельзя было просто скопировать мой код.

Теперь узнайте, что такое точка входа в программу (функция main)
и как из нее вызвать другую функцию. Ну и ввод/вывод:
C++
1
2
3
4
5
6
int main()
{
    double x=3.1415/3.;
    cin>>x;
    cout<<mycos(x,1e-9)<<' '<<cos(x)<<endl;
}
0
0 / 0 / 0
Регистрация: 24.01.2019
Сообщений: 17
11.03.2019, 08:08 17
Здравствуйте,просто я плох в c++ по этому решил спросить, чтобы на примере понять.

Добавлено через 16 минут
Можете пожалуйста помочь до делать?
0
Модератор
Эксперт С++
12126 / 9791 / 5916
Регистрация: 18.12.2011
Сообщений: 26,268
11.03.2019, 12:36 18
А что, вариант из последнего поста у Вас не компилируется?
Если да, то выкладывайте, что именно Вы компилируете.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2019, 12:36
Помогаю со студенческими работами здесь

Вычислить значение функции заданной разложением в ряд Тейлора
y=1/(1-x)2=1+2x+3x2+…+(n+1)xn+… Считать, что требуемая точность достигнута, если очередное...

Вычислить значение функции заданной разложением в ряд Тейлора
Написать программу с do/while. Вычислить функцию S= f(x), используя ее разложение в степенной ряд...

Вычислить значение функции заданной разложением в ряд Тейлора
Привет! Помогите написать код(лаба) на с++ Задание: вычислить значение функции с заданой...

Вычислить значение функции заданной разложением в ряд Тейлора
Найти сумму s=x- x^2/2+x^3/3-x^5/5…+(〖-1〗^(n-1)*x^n)/n+.. Пока модуль слагаемого не станет 10^-4...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru