Автор Тема: Сложная прога, вычислить сумму N слагаемых заданного вида ...  (Прочитано 12744 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Mustang92

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
При некоторых заданных x, N и E, определяемых вводом, вычислить:
a)   сумму N слагаемых заданного вида;
b)   сумму тех слагаемых, которые по абсолютной величине больше Е.
Для случая b выполнить суммирование для двух значений Е, отличающихся на порядок, и при этом определить количество слагаемых, включенных в сумму. Сравнить результаты с точным значением функции, для которой данная сумма определяет приближенное значение при x, лежащем в интервале (-R, R).


« Последнее редактирование: 21 Декабря 2010, 15:53:57 от Asix »

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
по-моему, корень этой штуке не равен

Оффлайн @len@_k

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Нужно записать заданное соотношение в общем виде для начала

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
вот что получилось у меня
\( \sqrt{1+x} = 1 + \frac12 x - \frac1{2 \cdot 4} x^2 + \frac{1 \cdot 3}{2 \cdot 4 \cdot 6} x^3 - \frac{1 \cdot 3 \cdot 5}{2 \cdot 4 \cdot 6 \cdot 8} x^4 + \frac{1 \cdot 3 \cdot 5 \cdot 7}{2 \cdot 4 \cdot 6 \cdot 8 \cdot 10} x^5 - \ldots =
1 + \frac12 x\left(1 - \frac1{4} x + \frac{1 \cdot 3}{4 \cdot 6} x^2 - \frac{1 \cdot 3 \cdot 5}{4 \cdot 6 \cdot 8} x^3 + \frac{1 \cdot 3 \cdot 5 \cdot 7}{4 \cdot 6 \cdot 8 \cdot 10} x^4\right) =
 \)

здесь пренебрегаем дальшейшими членами
\( = 1 + \frac12 x\left(1 - \frac1{4} x\left(1 - \frac{3}{6} x + \frac{3 \cdot 5}{6 \cdot 8} x^2 - \frac{3 \cdot 5 \cdot 7}{6 \cdot 8 \cdot 10} x^3\right)\right) =
1 + \frac12 x\left(1 - \frac1{4} x\left(1 - \frac{3}{6} x\left(1 - \frac{5}{8} x + \frac{5 \cdot 7}{8 \cdot 10} x^2\right)\right)\right) =
1 + \frac12 x\left(1 - \frac1{4} x\left(1 - \frac{3}{6} x\left(1 - \frac{5}{8} x\left(1 - \frac{7}{10} x\right)\right)\right)\right) =
 \)

задача решается с помощью рекурсии

Оффлайн @len@_k

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Следующее слагаемое получаем через предыдущее примерно так
Sn+1=Sn*(-1)*(2n-1)*x/(2n+2)
Примерно так, некогда проверить, но нужно уточнить для первых слагаемых, я не думаю, что здесь нужно мудрить с реккурсией

Оффлайн Mustang92

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
вот что получилось у меня
\( \sqrt{1+x} = 1 + \frac12 x - \frac1{2 \cdot 4} x^2 + \frac{1 \cdot 3}{2 \cdot 4 \cdot 6} x^3 - \frac{1 \cdot 3 \cdot 5}{2 \cdot 4 \cdot 6 \cdot 8} x^4 + \frac{1 \cdot 3 \cdot 5 \cdot 7}{2 \cdot 4 \cdot 6 \cdot 8 \cdot 10} x^5 - \ldots =
1 + \frac12 x\left(1 - \frac1{4} x + \frac{1 \cdot 3}{4 \cdot 6} x^2 - \frac{1 \cdot 3 \cdot 5}{4 \cdot 6 \cdot 8} x^3 + \frac{1 \cdot 3 \cdot 5 \cdot 7}{4 \cdot 6 \cdot 8 \cdot 10} x^4\right) =
 \)

здесь пренебрегаем дальшейшими членами
\( = 1 + \frac12 x\left(1 - \frac1{4} x\left(1 - \frac{3}{6} x + \frac{3 \cdot 5}{6 \cdot 8} x^2 - \frac{3 \cdot 5 \cdot 7}{6 \cdot 8 \cdot 10} x^3\right)\right) =
1 + \frac12 x\left(1 - \frac1{4} x\left(1 - \frac{3}{6} x\left(1 - \frac{5}{8} x + \frac{5 \cdot 7}{8 \cdot 10} x^2\right)\right)\right) =
1 + \frac12 x\left(1 - \frac1{4} x\left(1 - \frac{3}{6} x\left(1 - \frac{5}{8} x\left(1 - \frac{7}{10} x\right)\right)\right)\right) =
 \)

задача решается с помощью рекурсии

 
 
А как это выглядит в виде кода?!

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
код такой:
#include <stdio.h>

double sum2(double x, unsigned int N, unsigned int i)
{
    double t;
    if (i < N && i > 1)
    {
        if (i % 10 == 0)
        {
            printf("\\right.\\right.\\right.\\right.\\right.\\right.\\right.\\right.\\right. \\cdot[/tex]\n[tex]");
        }

        printf("\\left(1-\\dfrac{%u}{%u}x", 2*i-3, 2*i);
        t = 1.0 - (2.0*i-3.0) / (2.0*i) * x * sum2(x, N, i + 1);
        printf("\\right)");
        return t;
    }
    else if (i == 1 || i == 0)
    {
        printf("\\left(1+\\dfrac12x");
        t = 1.0 + 1.0/2.0 * x * sum2(x, N, 2);
        printf("\\right)");
        return t;
    }
    else
    {
        return 1;
    }
}

int main(int argc, char *argv[])
{
    printf("\nSum: %e\n", sum2(1.0, 150, 1));
    return 0;
}

насколько я понял, эта сумма сходится при малом количестве членов только в окрестности единицы. для сходимости в областях подальше, надо очень много членов ряда и хорошую библиотеку для работы с числами произвольной точности.

\( \left(1+\dfrac12x\left(1-\dfrac{1}{4}x\left(1-\dfrac{3}{6}x\left(1-\dfrac{5}{8}x\left(1-\dfrac{7}{10}x\left(1-\dfrac{9}{12}x\left(1-\dfrac{11}{14}x\left(1-\dfrac{13}{16}x\left(1-\dfrac{15}{18}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{17}{20}x\left(1-\dfrac{19}{22}x\left(1-\dfrac{21}{24}x\left(1-\dfrac{23}{26}x\left(1-\dfrac{25}{28}x\left(1-\dfrac{27}{30}x\left(1-\dfrac{29}{32}x\left(1-\dfrac{31}{34}x\left(1-\dfrac{33}{36}x\left(1-\dfrac{35}{38}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{37}{40}x\left(1-\dfrac{39}{42}x\left(1-\dfrac{41}{44}x\left(1-\dfrac{43}{46}x\left(1-\dfrac{45}{48}x\left(1-\dfrac{47}{50}x\left(1-\dfrac{49}{52}x\left(1-\dfrac{51}{54}x\left(1-\dfrac{53}{56}x\left(1-\dfrac{55}{58}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{57}{60}x\left(1-\dfrac{59}{62}x\left(1-\dfrac{61}{64}x\left(1-\dfrac{63}{66}x\left(1-\dfrac{65}{68}x\left(1-\dfrac{67}{70}x\left(1-\dfrac{69}{72}x\left(1-\dfrac{71}{74}x\left(1-\dfrac{73}{76}x\left(1-\dfrac{75}{78}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{77}{80}x\left(1-\dfrac{79}{82}x\left(1-\dfrac{81}{84}x\left(1-\dfrac{83}{86}x\left(1-\dfrac{85}{88}x\left(1-\dfrac{87}{90}x\left(1-\dfrac{89}{92}x\left(1-\dfrac{91}{94}x\left(1-\dfrac{93}{96}x\left(1-\dfrac{95}{98}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{97}{100}x\left(1-\dfrac{99}{102}x\left(1-\dfrac{101}{104}x\left(1-\dfrac{103}{106}x\left(1-\dfrac{105}{108}x\left(1-\dfrac{107}{110}x\left(1-\dfrac{109}{112}x\left(1-\dfrac{111}{114}x\left(1-\dfrac{113}{116}x\left(1-\dfrac{115}{118}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{117}{120}x\left(1-\dfrac{119}{122}x\left(1-\dfrac{121}{124}x\left(1-\dfrac{123}{126}x\left(1-\dfrac{125}{128}x\left(1-\dfrac{127}{130}x\left(1-\dfrac{129}{132}x\left(1-\dfrac{131}{134}x\left(1-\dfrac{133}{136}x\left(1-\dfrac{135}{138}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{137}{140}x\left(1-\dfrac{139}{142}x\left(1-\dfrac{141}{144}x\left(1-\dfrac{143}{146}x\left(1-\dfrac{145}{148}x\left(1-\dfrac{147}{150}x\left(1-\dfrac{149}{152}x\left(1-\dfrac{151}{154}x\left(1-\dfrac{153}{156}x\left(1-\dfrac{155}{158}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{157}{160}x\left(1-\dfrac{159}{162}x\left(1-\dfrac{161}{164}x\left(1-\dfrac{163}{166}x\left(1-\dfrac{165}{168}x\left(1-\dfrac{167}{170}x\left(1-\dfrac{169}{172}x\left(1-\dfrac{171}{174}x\left(1-\dfrac{173}{176}x\left(1-\dfrac{175}{178}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{177}{180}x\left(1-\dfrac{179}{182}x\left(1-\dfrac{181}{184}x\left(1-\dfrac{183}{186}x\left(1-\dfrac{185}{188}x\left(1-\dfrac{187}{190}x\left(1-\dfrac{189}{192}x\left(1-\dfrac{191}{194}x\left(1-\dfrac{193}{196}x\left(1-\dfrac{195}{198}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{197}{200}x\left(1-\dfrac{199}{202}x\left(1-\dfrac{201}{204}x\left(1-\dfrac{203}{206}x\left(1-\dfrac{205}{208}x\left(1-\dfrac{207}{210}x\left(1-\dfrac{209}{212}x\left(1-\dfrac{211}{214}x\left(1-\dfrac{213}{216}x\left(1-\dfrac{215}{218}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{217}{220}x\left(1-\dfrac{219}{222}x\left(1-\dfrac{221}{224}x\left(1-\dfrac{223}{226}x\left(1-\dfrac{225}{228}x\left(1-\dfrac{227}{230}x\left(1-\dfrac{229}{232}x\left(1-\dfrac{231}{234}x\left(1-\dfrac{233}{236}x\left(1-\dfrac{235}{238}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{237}{240}x\left(1-\dfrac{239}{242}x\left(1-\dfrac{241}{244}x\left(1-\dfrac{243}{246}x\left(1-\dfrac{245}{248}x\left(1-\dfrac{247}{250}x\left(1-\dfrac{249}{252}x\left(1-\dfrac{251}{254}x\left(1-\dfrac{253}{256}x\left(1-\dfrac{255}{258}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \left(1-\dfrac{257}{260}x\left(1-\dfrac{259}{262}x\left(1-\dfrac{261}{264}x\left(1-\dfrac{263}{266}x\left(1-\dfrac{265}{268}x\left(1-\dfrac{267}{270}x\left(1-\dfrac{269}{272}x\left(1-\dfrac{271}{274}x\left(1-\dfrac{273}{276}x\left(1-\dfrac{275}{278}x\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot \)
\( \ldots \)
Sum: 1.414291e+000

Оффлайн Mustang92

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
А как на паскале будет работать код?! Можно посмотреть?!

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
на паскале точно так же, только стек там гораздо меньше

Оффлайн Mustang92

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Предоставьте код на паскале пожалуйста...

Оффлайн testtest

  • Старожил
  • ****
  • Сообщений: 376
    • Просмотр профиля
по-моему, на паскале так:
function sum2(x,N,i:double):double
begin
    var t;
    if (i < N and i > 1)
    begin
        if (i mod 10 = 0)
        begin
            write("\right.\right.\right.\right.\right.\right.\right.\right.\right. \cdot[/tex]"#10"[tex]");
        end

        write("\left(1-\dfrac{",2*i-3,"}{"2*i"}x");
        t := 1.0 - (2.0*i-3.0) / (2.0*i) * x * sum2(x, N, i + 1);
        write("\right)");
    end
    else if (i == 1 or i == 0)
    begin
        write("\left(1+\dfrac12x");
        t := 1.0 + 1.0/2.0 * x * sum2(x, N, 2);
        write("\right)");
    end
    else
    begin
        t := 1.0;
    end;
    sum2 := t;
end;

begin
    writeln(#10"Sum: ", sum2(1.0, 150, 1));
end.

Оффлайн Mustang92

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Что-то программа на паскале не хочет выполняться... Не могли бы скорректировать код программы?!

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
ну вы хоть ошибку напишите,которую выдает. в синтаксисе косяк? или значения не те?

для начала var t; не нужно заменить на var t:double; ыыы
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Mustang92

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Толку все равно нет. Запустите сами попробуйте, у меня голова уже не варит с этим.

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
я б запустил,да нечем
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

 

Программа в делфи. Вычислить определенный интеграл методом трапеции

Автор Мозг

Ответов: 0
Просмотров: 8147
Последний ответ 15 Сентября 2010, 21:06:25
от Мозг
Pascal. Вычислить значения  du/dx, пользуясь конечно-разностным соотношением

Автор Shurara

Ответов: 0
Просмотров: 6161
Последний ответ 09 Февраля 2011, 17:54:21
от Shurara
Вычислить с помощью формулы прямоугольников определенный интеграл

Автор serj-07

Ответов: 1
Просмотров: 6077
Последний ответ 10 Мая 2010, 10:52:04
от Asix
Вычислить приближенную площадь одной арки синусоиды на С++

Автор Oblivion

Ответов: 11
Просмотров: 9803
Последний ответ 16 Июня 2010, 15:25:30
от Oblivion
Pascal, вычислить интеграл по формуле Симпсона

Автор Shurara

Ответов: 1
Просмотров: 6000
Последний ответ 09 Февраля 2011, 23:59:20
от Данила