Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Постановка задачи и метод решения





Ряд - последовательность чисел, в которой все элементы пронумерованы, и значение элемента ряда является функцией от порядкового номера.

а1, а2, а3,..., аi,..., где аi=f(i)

Часто решается задача суммирования элементов ряда, в которой производится одно из вычислений:

- суммирование фиксированного числа элементов ряда;

- суммирование элементов бесконечного ряда.

Естественно, суммирование бесконечного ряда имеет смысл только для сходящегося ряда (при беспредельном возрастании количества элементов ряда, входящих в сумму ряда, сумма ряда стремится к определенному конечному пределу). Известно, что ряд будет сходящимся, если выполняется одно из следующих условий:

|ai+1| < |ai | (для знакопостоянных рядов);

|ai+1 - -ai | < |ai – ai-1 | (для знакопеременных рядов).

В задаче суммирования фиксированного числа элементов ряда входной информацией должно быть количество элементов ряда, входящих в сумму.

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

Дадим определение:

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

При решении каждой из задач суммирования рядов существует два случая - функция, определяющая элемент ряда в зависимости от порядкового номера есть

- алгоритмически простая функция;

- алгоритмически сложная функция.

Таким образом, каждый из задач суммирования имеет две разновидности.

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

Во втором случае ряд представляется, как геометрическая прогрессия. Для этого предварительно

- вычисляется значение первого элемента. Это значение является входной информацией;

- выводится формула знаменателя геометрической прогрессии (q) подстановкой в общем виде функции определения элемента ряда в формулу:

и, если q(i) является алгоритмически простой функцией от i, то можно применить нижеуказанный алгоритм.

В каждой из задач суммирования результатом является одно вещественное число. Поэтому целесообразно оформить каждую задачу, как функцию. Цели и списки параметров для каждой функции определены. Разработаем модуль, включающий эти функции:

Текст модуля

 

unit sum_riad;

 

{интерфейсная секция}

interface

type

{тип функций, вычисляющих значение элемента ряда и знаменателя

геометрической прогресси, как функций от поряд кового номера}

tf=function(i:integer):real;

 

{функция суммирования конечного ряда с простой функцией

определения элемента ряда}

function z1(n{количество элементов}:integer;

f{функция, вычисляющая значение элемента ряда в

зависимости от порядкового номера }:tf):real;

 

{функция суммирования конечного ряда со сложной функцией

определения элемента ряда}

function z2(n{количество элементов}:integer;

a1{значение первого элемента ряда}:real;

q{функция, вычисляющая значение знаменателя

геометрической прогрессии в зависимости от

порядкового номера }:tf):real;

 

{функция суммирования бесконечного ряда первого типа

сходимости с простой функцией определения элемента ряда}

function z3(eps{точность}:real;

f{функция, вычисляющая значение элемента ряда в

зависимости от порядкового номера }:tf):real;

 

{функция суммирования бесконечного ряда первого типа

сходимости со сложной функцией определения элемента ряда}

function z4(eps{точность}:real;

a1{значение первого элемента ряда}:real;

q{функция, вычисляющая значение знаменателя

геометрической прогрессии в зависимости от

порядкового номера }:tf):real;

 

{функция суммирования бесконечного ряда второго типа

сходимости с простой функцией определения элемента ряда}

function z5(eps{точность}:real;

f{функция, вычисляющая значение элемента ряда в

зависимости от порядкового номера }:tf):real;

 

{функция суммирования бесконечного ряда второго типа

сходимости со сложной функцией определения элемента ряда}

function z6(eps{точность}:real;

a1{значение первого элемента ряда}:real;

q{функция, вычисляющая значение знаменателя

геометрической прогрессии в зависимости от

порядкового номера }:tf):real;

 

{секция реализации}

implementation

 

function z1;

var i:integer;{порядковый номер элемента}

sum:real;{сумматор - для накопления суммы}

begin

sum:=0;

for i:=1 to n do sum:=sum+f(i);

z1:=sum

end;{z1}

 

function z2;

var i:integer;{порядковый номер элемента}

a:real;{текущий элемент ряда}

sum:real;{сумматор - для накопления суммы}

begin

sum:=0;

a:=a1;

for i:=1 to n do begin

sum:=sum+a;

a:=a*q(i)

end;{for i}

z2:=sum

end;{z2}

 

function z3;

var i:integer;{порядковый номер элемента}

sum:real;{сумматор - для накопления суммы}

begin

sum:=0;

i:=1;

while abs(f(i))>eps do begin

sum:=sum+f(i);

i:=i+1

end;{while}

z3:=sum

end;{z3}

 

function z4;

var i:integer;{порядковый номер элемента}

a:real;{текущий элемент ряда}

sum:real;{сумматор - для накопления суммы}

begin

sum:=0;

a:=a1;

i:=1;

while abs(a)>eps do begin

sum:=sum+a;

a:=a*q(i);

i:=i+1

end;{while}

z4:=sum

end;{z4}

 

function z5;

var i:integer;{порядковый номер элемента}

ap:real;{предыдущий элемент ряда}

at:real;{текущий элемент ряда}

sum:real;{сумматор - для накопления суммы}

begin

ap:=f(1);

sum:=ap;

at:=f(2);

i:=2;

while abs(at-ap)>eps do begin

sum:=sum+at;

i:=i+1;

ap:=at;

at:=f(i)

end;{while}

z5:=sum

end;{z5}

 

function z6;

var i:integer;{порядковый номер элемента}

ap:real;{предыдущий элемент ряда}

at:real;{текущий элемент ряда}

sum:real;{сумматор - для накопления суммы}

begin

ap:=a1;

sum:=ap;

at:=ap*q(1);

i:=2;

while abs(at-ap)>eps do begin

sum:=sum+at;

ap:=at;

at:=ap*q(i);

i:=i+1

end;{while}

z6:=sum

end;{z6}

 

end.

 

Date: 2016-07-05; view: 231; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию