Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LTony
0 / 0 / 0
Регистрация: 23.01.2012
Сообщений: 21
#1

Мат функция - C++

07.02.2012, 18:49. Просмотров 614. Ответов 7
Метки нет (Все метки)

Дано действительное число x. Вычислить значене y с помощью стандартной функции и с помошью ряда с точностью 0,0001

http://www.cyberforum.ru/cgi-bin/latex.cgi?y=cosx=1-\frac{{x}^{2}}{2!}+\frac{{x}^{4}}{4!}-...+{(-1)}^{n}\frac{{x}^{2n}}{(2n)!}+...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2012, 18:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Мат функция (C++):

Мат. функция - C++
Вот мне кидали решение, я только начал недавно и нифига не вьехал, народ помогите с решением более простым, или обьясните плиз ,моё...

Мат. функция - C++
Определить k-ю цифру последовательности 14916253649… в которой выписаны подряд квадраты натуральных чисел. народ хелп плиз)

Функция sqrt: существует более одного экземпляра. Функция перегруженная - C++
#include <iostream> #include <math.h> #include <iomanip> using namespace std; int main(){ float s, p; int c, a; s=0; ...

Функция удаления текста в скобках [2], непосредственно функция + 12кб вложений - C++
Доброго времени суток, случилось так, что пришлось работать с с-строками (лаба, угу), в которой нужно удалить весь текст в скобках,...

Перегрузка операций: friend-функция или функция-член класса - C++
Здравствуйте, меня интересует вопрос, в чем разница при перегрузке операторов через operator и friend. Вот к примеру такой код. class...

какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get() - C++
какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get()

7
-=ЮрА=-
Заблокирован
Автор FAQ
08.02.2012, 18:50 #2
Цитата Сообщение от LTony Посмотреть сообщение
Дано действительное число x. Вычислить значене y с помощью стандартной функции и с помошью ряда с точностью 0,0001

http://www.cyberforum.ru/cgi-bin/latex.cgi?y=cosx=1-\frac{{x}^{2}}{2!}+\frac{{x}^{4}}{4!}-...+{(-1)}^{n}\frac{{x}^{2n}}{(2n)!}+...
- см сюда
http://www.cyberforum.ru/faq/thread436065.html#post2452211
и сюда arctg(x) с помощью разложения
0
LTony
0 / 0 / 0
Регистрация: 23.01.2012
Сообщений: 21
10.02.2012, 03:11  [ТС] #3
Врядли мне это поможет т.к язык С++ не знаю
0
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.02.2012, 10:32 #4
Да там такой C++ который в C переделать нетрудно
0
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 11:22 #5
Цитата Сообщение от LTony Посмотреть сообщение
т.к язык С++ не знаю
LTony, коды даны в Си, если сложно разделить a[n + 1] на a[n] тогда изволь так и писать - мне надо код для копипаста...

Итак
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n} = {(-1)}^{n}*\frac{{x}^{2*n}}{(2n)!}
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n + 1} = {(-1)}^{(n + 1)}*\frac{{x}^{2*(n + 1)}}{(2*(n + 1))!}
Находим рекуррентный сомножитель
[http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{a}_{n + 1}}{{a}_{n}} = \frac{{(-1)}^{(n + 1)}*\frac{{x}^{2*(n + 1)}}{(2*(n + 1))!}}{{(-1)}^{n}*\frac{{x}^{2*n}}{(2n)!}} = (-1)*{x}^{2}*\frac{2n!}{2*n!*(n + 1)*(n + 2)} = \frac{(-1)*{x}^{2}}{(n + 1)*(n + 2)}

Теперь идём в этот топик
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
arctg(x) с помощью разложения
и корректируем double S(double x, double e)
Она будет выглядеть вот так
C
1
2
3
4
5
6
7
8
9
10
11
12
double S(double x, double e)
{
    double ak = x, sum = 0;
    long k = 0;
    while(e < fabs(ak))//Âîò Г®Г*Г® óñëîâèå îêîГ*Г·Г*Г*ГЁГї ГЁГІГҐГ°Г*öèîГ*Г*îãî ïðîöåññГ*
    {
        sum += ak;
        ak  *= (-1)*x*x/((k + 1)*(k + 2));
        k   = k + 1;
    }
    return sum;
}
Затем заменяем double S(double x, double e) здесь
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
http://www.cyberforum.ru/faq/thread4...ml#post2452211
И получаем весь алгоритм в целом
1
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 11:25 #6
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
40
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
//Ïðîòîòèï ГЅГІГ*ëëîГ*îé ГґГіГ*êöèè ïîëüçîâГ*òåëÿ
//âîçâðГ*Г№Г*åìîå Г§Г*Г*Г·ГҐГ*ГЁГҐ - Г§Г*Г*Г·ГҐГ*ГЁГҐ cos(x) Гў òî÷êå Гµ
double Y(double x)
{
    return cos(x);
}
 
double S(double x, double e)
{
    double ak = 1, sum = 0;
    long k = 0;
    while(e < fabs(ak))//Âîò Г®Г*Г® óñëîâèå îêîГ*Г·Г*Г*ГЁГї ГЁГІГҐГ°Г*öèîГ*Г*îãî ïðîöåññГ*
    {
        sum += ak;
        ak  *= (-1)*x*x/((k + 1)*(k + 2));
        k   = k + 1;
    }
    return sum;
}
 
int main()
{
    double e = 0, x = 0;
    while(true)//ÄåëГ*Гѕ ГЎГҐГ±ГЄГ®Г*ГҐГ·Г*ûé ââîä
    //äëÿ Г§Г*âåðøåГ*ГЁГї Г°Г*áîòû ïðîñòî Г§Г*êðûâГ*ГҐГ¬ îêГ*Г® ГЄГ®Г*ñîëè
    {
        printf("Enter x : ");scanf("%lf",&x);
        printf("Enter e : ");scanf("%lf",&e);
        printf("Y(x) = %lf\n",Y(x));
        printf("S(x) = %lf\n",S(x,e));
        //ÏîñëåäГ*ГЁГҐ 2 ГґГіГ*êöèè system ìîæГ*Г® Г*ГҐ ïðèìåГ*ГїГІГј
        system("pause");//Ñòîï-òî÷êГ* ïåðåä Г*Г*Г·Г*ëîì Г*îâîãî ââîäГ*
        system("cls");//Г—ГЁГ±ГІГЄГ* ГЅГЄГ°Г*Г*Г*
    }
    return 0;
}
PS:LTony, мой ответ в данном топике с выкладками и описанием занял 10 мин, неужели так сложно было это всё сделать самому???
1
Миниатюры
Мат функция  
-=ЮрА=-
Заблокирован
Автор FAQ
10.02.2012, 11:34 #7
А и да, всем тем кто усомниться в точности разложения, т.к.
0,880100 - 0,877583 = 0,002517 отвечу
Во первых: под точностью понимается относительная погрешность разложения
http://www.cyberforum.ru/cgi-bin/latex.cgi?\varepsilon = |\frac{0.880100 - 0.877583}{0.880100}| = 0.0029
И наверное опять возникает вопрос, а почему задали с 4-мя нулями, а получили с 2-мя??
Отвечаю:
Во вторых: разложение в ряд также даёт погрешность для разных значений х
(чем меньше значение х тем точнее значение функции описывает ряд - см скрин)
1
Миниатюры
Мат функция  
LTony
0 / 0 / 0
Регистрация: 23.01.2012
Сообщений: 21
10.02.2012, 11:59  [ТС] #8
Огромное спасибо!!)
0
10.02.2012, 11:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2012, 11:59
Привет! Вот еще темы с ответами:

что за функция такая strstr? или это не функция? - C++
void search(sp *list){ sp *prt = list; char f,r; cout&lt;&lt;Rus(&quot;введите текст&quot;)&lt;&lt;endl; cin&gt;&gt;f; cout&lt;&lt;Rus(&quot;введите выходной...

Чистая виртуальная функция функция не имеет оператора переопределения - C++
Пишу программу для записи заметок. Есть 2 класса: Page и Note. Note наследуется от Page. Page.h #pragma once ...

Создать производный класс, в котором реализована функция умножения вектора на число и функция сложения двух векторов - C++
Write программу с использованием класса Вектор (не без помощи форумчанина), но необходимо создать производный класс, в котором реализована...

Функция заполняющая массив и функция вывода массива - C++
Напишите две функции. Первая функция заполняет массив, вторая функция выводит массив на экран


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru