3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
||||||
1 | ||||||
Функция вычисления суммы ряда ln(x)06.10.2015, 10:27. Показов 5486. Ответов 16
Метки нет (Все метки)
Здравствуйте поставили задачу написать программу на вычисление суммы ряда вида
z=((x-1)/(x+1)) (2/1)z + (2/3)z^3+...+ (2/2n-1)z^ 2n-1 где z=(x-1)/(x+1) В связи с этим возникло два вопроса: 1) Написал программу вида:
и вопрос номер 2 2)для нахождения каждого элемента ряда я использую функцию pow, можно ли как то сделать без ее помощи как то видоизменив или преобразовав ряд? Добавлено через 32 минуты прошу помощи
0
|
06.10.2015, 10:27 | |
Ответы с готовыми решениями:
16
Рекурсивная функция вычисления суммы бесконечного ряда Рекурсивная функция для вычисления суммы ряда Рекурсивная функция вычисления суммы знакопеременного ряда Рекурсивная функция для вычисления суммы ряда |
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
|
||||||
06.10.2015, 10:34 | 2 | |||||
1
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
|
|
06.10.2015, 10:34 | 3 |
1
|
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
|
|
06.10.2015, 10:36 | 4 |
0
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
06.10.2015, 10:36 [ТС] | 5 |
ture, почему тогда первый раз отрабатывает?
И согласно правилам приведения типов достаточно чтобы хотя бы один операнд выражения был double не могу понять почему первый раз отрабатывает а второй нет хотя 2. помогло
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
|
|
06.10.2015, 10:37 | 6 |
Sibmax1988, обратите внимание на порядок вычислений.
Сначала идет деление целого на целое, а уж потом умножение на действительное.
0
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
06.10.2015, 10:38 [ТС] | 7 |
0
|
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
|
|
06.10.2015, 10:39 | 8 |
Sibmax1988, первый раз целочисленное деление дает 1, вот и прокатывает.
0
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
||||||
06.10.2015, 10:44 [ТС] | 9 | |||||
zss, почему тогда первый раз отрабатывает без проблем?
Добавлено через 2 минуты ture, вы правы тогда остается ответ на второй вопрос в книге написано что если преобразовать ряд к виду y =(((...(((An*x + An-1)*x + An-2)*x +...+ A1)*x+A0 и потом делать итерацию то так будет правильнее с точки зрения затрат памяти времени и т п и что такой подход избавит от постоянного возведения в степень а как мне так сделать если число n то я не знаю? Добавлено через 2 минуты double my_ln (double x) { const double eps=1e-6; const double lnln=M_LN2; //ln2 int k=0; while(x>2.0) { x/=2.0; k++; } x-=1.; double s=0; int n=1; double an=x; while (fabs(an)>eps) { s+=an; ++n; an*=-x*(n-1)/n; } s+=k*lnln; return s; } код не особо понятен если честно точнее алгоритм
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
|
|
06.10.2015, 11:09 | 10 |
Это как раз и означает, что an=an-1*(-1)*x*(n-1)/n
a1=x Разложение отлично от Вашего, т.к. разлагается ln(1+x) (Обратите внимание на строку x-=1. А первый цикл whlie использутеся для того, чтобы привести аргумент к диапазону <0<x<1 используя формулу ln(2kx)=k*ln2*ln(x) У вас рекуррентная формула такая a0=2z Причем x>1. Т.е. его не надо приводить к интервалу (0,1)
0
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
06.10.2015, 11:21 [ТС] | 11 |
zss, все равно ничего не понял
препод помешан на рядах теперь вообще надо еще и arcsin итерацией посчитать а там ряд вообще дьявольский не понятно как строится x +1/2*1/3*x^3 +...+ 1/2*3/4*5*6...(2n-1) /(2n(2n+1))*x^(2n+1) Добавлено через 6 минут говорит что с помощью чисел Бернулли надо как то решать
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
|
||||||
06.10.2015, 11:33 | 12 | |||||
Вот так будет с Вашим разложением
Для arcsin или И начинайте с s=x
1
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
06.10.2015, 11:36 [ТС] | 13 |
zss, а откуда подряд дроби берутся в условии у arcsin?
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
|
|
06.10.2015, 11:43 | 14 |
Подставьте сюда n+1 вместо n и для того, чтобы вычленить an Вам понадобится домножить числитель и знаменатель на 2n+1
0
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
06.10.2015, 12:23 [ТС] | 15 |
zss, вообще не могу допереть
даже когда формулы написано пытаюсь в ручную посчитать даже первый член ряда получить не могу
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
|
|
06.10.2015, 12:44 | 16 |
что же тут сложного. Берем n=1: 2n-1=1, (2n)(2n+1)=2*3=6
0
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
06.10.2015, 12:57 [ТС] | 17 |
zss, ряд начинается x+1/2*1*3*x^3 вот это получить не могу даж
если что x (от 0,1 до 0,9) т е первые два члена ряда высчитать не могу в книге еще вот так написано В вариантах 3, Bn - числа Бернулли, использовать в виде следующего массива значений для n = 1..11. . 1 1 1 1 5 691 7 3617 43867 174611 854513 -, --, --, --, --, ----, -, ----, -----, -------, ------ 6 30 42 30 66 2730 6 510 798 330 138] Добавлено через 6 минут В вариантах 3, Bn - числа Бернулли, использовать в виде следующего массива значений для n = 1..11. . 1/6, 1/30, 1/42, 1/30, 5/66,691,2730, 7/6, 3617/510, 43867/798, 174611/330, 854513/138 Добавлено через 19 секунд
0
|
06.10.2015, 12:57 | |
06.10.2015, 12:57 | |
Помогаю со студенческими работами здесь
17
Функция вычисления суммы ряда для заданного аргумента Функция для вычисления суммы члена ряда. Не могу найти ошибку вычисления суммы ряда Вычисления суммы ряда Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |