Численное интегрирование с использованием степенных рядов

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 05.11.2013
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Курсовая работа

Численное интегрирование с использованием степенных рядов

1. Постановка задачи и определение основных требований к разрабатываемому программному обеспечению

1.1 Введение

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

Данное программное средство было разработано на основе следующего технического задания:

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

1.2 Основание для разработки

Программа разрабатывается на основе учебного плана кафедры «Информационные системы и технологии» по вычислительной математике.

1.3 Назначение программного средства

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

1.4 Требования к программному средству

Требования к функциональным характеристикам

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

Требования к надежности

Предусмотреть блокировку некорректных действий.

Требования к условиям эксплуатации

Носитель с программой должен эксплуатироваться в условиях с температурой от -5 до 500С и влажностью воздуха 10-80%.

Требования к составу и параметрам технических средств

Наличие ПК с клавиатурой. Необходимое пространство на жестком диске - около 400 Кб.

Требования к информационно-программной совместимости

Программа должна работать под управление операционной системы семейства DOS (версии не ниже 3.3), либо Win 32 (Windows 95, Windows 98, Windows 2000, Windows XP, Windows Vista Windows 7 и т. п.).

2. Проектирование программного средства и программная реализация

интегрирование модульный алгоритм программный

2.1 Построение математической модели для интегрирования функции с использованием степенных рядов

Пусть нам необходимо вычислить определённый интеграл некоторой функции f(x) на отрезке [a, b]. Введём понятие степенного ряда.

Степенной ряд - это функциональный ряд следующего вида:

C0+C1(x-x0)+C2(x-x0)2+…+Cn(x-x0)n+…

Здесь С012,…,Сn,… - некоторые фиксированные известные числа, которые называются коэффициентами степенного ряда, они образуют бесконечную последовательность. X0 - известное число (фиксированное) - центр разложения степенного ряда. X - переменная величина.

Для любого степенного ряда существует интервал (-R;R), в каждой внутренней точке которого ряд сходится, а в каждой внешней точке расходится.

Разложением функции y= f(x) в степенной ряд называется представление этой функции в некоторой области значений переменного x в виде суммы сходящегося степенного ряда. Область, в которой функция представлена в виде суммы степенного ряда, называется областью разложения функции в степенной ряд.

Если данная функция разлагается в степенной ряд, то разложение

называется ряд Тейлора для функции f(x), а при x0=0 - ряд Маклорена.

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

Одно из основных свойств степенного ряда выглядит так:

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

При вычислениях необходимо учитывать, что отрезок интегрирования должен попадать в область сходимости ряда.

Если нам необходимо проинтегрировать не функцию f(x), а, например, функцию f(x2), то в разложении функции f(x) следует заменить x на x2, а затем поступать аналогично.

Для основных элементарных функций составлены типовые разложения:

1) ,

2) ,

3) ,

4) , при ; при .

5) ,

6) ,

7) ,

8) ,

9) ,

10) ,

Для знакочередующихся рядов вычисление приближённого значения интеграла следует прекратить тогда, когда абсолютное значение очередного слагаемого станет меньше требуемой точности e. Для знакопостоянных рядов необходимо оценить сумму членов, отброшенных после n-ого слагаемого. Как только эта сумма станет меньше e, вычисления можно прекратить.

2.2 Ручное интегрирование функции с использованием степенных рядов

Найти интеграл , e=0,0001.

Решение.

Разложим функцию cosx в степенной ряд:

Проинтегрируем получившийся ряд:

Так как программа производит вычисления с большим количеством знаков после запятой, она даёт более точный результат, равный 0,841468.

Вычислим данный интеграл вручную:

Таким образом, мы видим, что наш метод работает верно и точность вычислений соблюдается.

2.3 Разработка модульной структуры программы

Рис. 1. Модульная структура программы

2.4 Разработка алгоритма программы

Блок-схема программы

1. Основная программа - процедура Button1Click(Sender: TObject).

Назначение: основная процедура программы, производит проверки на корректность данных и выводит результат работы программы. (см. Рис. 2).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 2.1.. Процедура Button1Click

Рис. 2.2. Процедура Button1Click

Рис. 2.3. Процедура Button1Click

2. Процедура proc0.

Назначение: считает значение интеграла функции e^(kx). (см. Рис. 3).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 3.1. Процедура Proc0

Рис. 3.2. Процедура Proc0

3. Процедура proc1.

Назначение: считает значение интеграла функций sin(kx), arctg (kx) (см. Рис. 4).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 4.1.. Процедура Proc1

Рис. 4.2. Процедура Proc1

4. Процедура proc2.

Назначение: считает значение интеграла функций cos(kx). (см. Рис. 5).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 5.1. Процедура Proc2

Рис. 5.2. Процедура Proc2

5. Процедура proc4.

Назначение: считает значение интеграла функции (1+kx)^m. (см. Рис. 6).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 6. Процедура Proc4

6. Процедура proc5.

Назначение: считает значение интеграла функций 1/(1+kx). (см. Рис. 7).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 7. Процедура Proc5

7. Процедура proc6.

Назначение: считает значение интеграла функции 1/(1-kx). (см. Рис. 8).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 8.1. Процедура Proc6

Рис. 8.2. Процедура Proc6

8. Процедура proc7.

Назначение: считает значение интеграла функции ln(1+kx). (см. Рис. 9).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 9 Процедура Proc7.

9. Процедура proc9.

Назначение: считает значение интеграла функции sh(kx). (см. Рис. 10).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 10.1. Процедура Proc9

Рис. 10.2. Процедура Proc9

10. Процедура proc10.

Назначение: считает значение интеграла функции ch(kx). (см. Рис. 11).

Входные параметры: нет.

Выходные параметры: нет.

Рис. 11.1. Процедура Proc10

Рис. 11.2. Процедура Proc10

2.5 Описание структур, типов данных и глобальных переменных

На главной форме присутствуют объекты:

Combobox1 - объект для осуществления выбора функции.

Edit2 - поле для ввода коэффициента k.

Edit4 - поле для ввода коэффициента m.

Edit5 - поле для ввода предела интегрирования a.

Edit6 - поле для ввода предела интегрирования b.

Edit7 - поле для ввода точности вычислений e.

Edit8 - поле для вывода ответа.

Button1 - кнопка «Ответ».

В программе используются следующие глобальные переменные:

real fb1 - значение интеграла в точке b на предыдущем шаге.

real fb2 - значение интеграла в точке b на текущем шаге.

real fa1 - значение интеграла в точке a на предыдущем шаге.

real fa2 - значение интеграла в точке a на текущем шаге.

real k - коэффикиент перед x.

real m - параметр функции.

real a - верхний предел интегрирования.

real b - нижний предел интегрирования.

real e - точность.

boolean f - определяет алгоритм вычиисления схожих функций.

2.6 Описание процедур и функций

1 Процедура Button1Click(Sender: TObject).

Назначение: основная процедура программы, производит проверки на корректность данных и выводит результат работы программы. (см. Рис. 2).

Входные параметры: нет.

Выходные параметры: нет.

2. Процедура proc0.

Назначение: считает значение интеграла функции e^(kx). (см. Рис. 3).

Входные параметры: нет.

Выходные параметры: нет.

3. Процедура proc1.

Назначение: считает значение интеграла функций sin(kx), arctg (kx) (см. Рис. 4).

Входные параметры: нет.

Выходные параметры: нет.

4. Процедура proc2.

Назначение: считает значение интеграла функций cos(kx). (см. Рис. 5).

Входные параметры: нет.

Выходные параметры: нет.

5. Процедура proc4.

Назначение: считает значение интеграла функции (1+kx)^m. (см. Рис. 6).

Входные параметры: нет.

Выходные параметры: нет.

6. Процедура proc5.

Назначение: считает значение интеграла функции 1/(1+kx). (см. Рис. 7).

Входные параметры: нет.

Выходные параметры: нет.

7. Процедура proc6.

Назначение: считает значение интеграла функций 1/(1-kx). (см. Рис. 8).

Входные параметры: нет.

Выходные параметры: нет.

8. Процедура proc7.

Назначение: считает значение интеграла функции ln(1+kx). (см. Рис. 9).

Входные параметры: нет.

Выходные параметры: нет.

9. Процедура proc9.

Назначение: считает значение интеграла функции sh(kx). (см. Рис. 10).

Входные параметры: нет.

Выходные параметры: нет.

10. Процедура proc10.

Назначение: считает значение интеграла функции ch(kx). (см. Рис. 11).

Входные параметры: нет.

Выходные параметры: нет.

Заключение

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

Список литературы

1. Delphi. Программирование на языке высокого уровня / В.В Фаронов - СПб.: Питер, 2007. - 640 с.

2. Демидович Б.П., Марон И.А. Основы вычислительной математики. - М.: Наука, 1970.

Приложение

Исходный текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

ComboBox1: TComboBox;

Label2: TLabel;

Label4: TLabel;

Edit2: TEdit;

Label6: TLabel;

Edit4: TEdit;

Button1: TButton;

Edit5: TEdit;

Label7: TLabel;

Label8: TLabel;

Edit6: TEdit;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Edit7: TEdit;

Edit8: TEdit;

procedure Button1Click(Sender: TObject);

procedure proc0;

procedure proc1;

procedure proc2;

procedure proc4;

procedure proc5;

procedure proc6;

procedure proc7;

procedure proc9;

procedure proc10;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

fb1,fa1,fb2,fa2,k,m,a,b,e:real;

f:boolean;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var s:real;

begin

if (length(edit2.text)=0) or (length(edit5.text)=0) or (length(edit6.text)=0) or (length(edit7.text)=0)

then MessageDlg ('Заполните все поля', mtInformation, [mbOk], 0);

if ((form1.ComboBox1.ItemIndex=3) or (form1.ComboBox1.ItemIndex=4)) and (length(edit4.text)=0) then MessageDlg ('Введите значение m', mtInformation, [mbOk], 0);

try

k:=StrToFloat(Edit2.Text);

a:=StrToFloat(Edit5.Text);

b:=StrToFloat(Edit6.Text);

e:=StrToFloat(Edit7.Text);

except

on EconvertError do

MessageDlg ('Значения полей должны быть числовыми', mtInformation, [mbOk], 0);

end;

if (form1.ComboBox1.ItemIndex=3) or (form1.ComboBox1.ItemIndex=4) then

begin

try

m:=StrToFloat(Edit4.Text);

except

on EconvertError do

MessageDlg ('Значения полей должны быть числовыми', mtInformation, [mbOk], 0);

end;

end;

if (form1.ComboBox1.ItemIndex=4) or (form1.ComboBox1.ItemIndex=5) or (form1.ComboBox1.ItemIndex=6) or (form1.ComboBox1.ItemIndex=7)

then

if ((k*a<=-1) or (k*b<=-1)) or ((k*b>=1) or (k*a>=1)) then MessageDlg ('Неверные пределы интегрирования', mtInformation, [mbOk], 0);

if (form1.ComboBox1.ItemIndex=8) then

if ((k*a<-1) or (k*b<-1)) or ((k*b>1) or (k*a>1)) then MessageDlg ('Неверные пределы интегрирования', mtInformation, [mbOk], 0);

if (form1.ComboBox1.ItemIndex=1) then f:=true;

if a<>b then

begin

case form1.ComboBox1.ItemIndex of

0: proc0;

1: proc1;

2: proc2;

3: proc4;

4: proc4;

5: proc5;

6: proc6;

7: proc7;

8: proc1;

9: proc9;

10: proc10;

end;

s:=fb1-fa1;

end

else s:=0;

edit8.Clear;

edit8.text:=FloatToStr(s);

end;

procedure TForm1.proc0;

var x,x1,r:real; i,p:integer;

begin

x:=b*k;

x1:=b*k;

i:=2;

p:=1;

fb1:=x;

x:=x*x1;

fb2:=x/(i*p);

if b<(i+1) then

if b=0 then

r:=1/(p*i*(i+1-b))

else

if (b>0) or ((i+1)mod 2=0) then

r:=exp(ln(abs(b))*(i+1))/(p*i*(i+1-b))

else

r:=-exp(ln(abs(b))*(i+1))/(p*i*(i+1-b))

else r:=1;

while abs(r)>e do

begin

fb1:=fb1+fb2;

x:=x*x1;

p:=p*i;

i:=i+1;

fb2:=x/(k*i*p);

if b<(i+1) then

if b=0 then

r:=1/(p*i*(i+1-b))

else

if (b>0) or ((i+1)mod 2=0) then

r:=exp(ln(abs(b))*(i+1))/(p*i*(i+1-b))

else

r:=-exp(ln(abs(b))*(i+1))/(p*i*(i+1-b))

else r:=1;

end;

x:=a*k;

x1:=a*k;

i:=2;

p:=1;

fa1:=x;

x:=x*x1;

fa2:=x/(k*i*p);

if a<(i+1) then

if a=0 then

r:=1/(p*i*(i+1-a))

else

if (a>0) or ((i+1)mod 2=0) then

r:=exp(ln(abs(a))*(i+1))/(p*i*(i+1-a))

else r:=-exp(ln(abs(a))*(i+1))/(p*i*(i+1-a))

else r:=1;

while abs(r)>e do

begin

fa1:=fa1+fa2;

x:=x*x1;

p:=p*i;

i:=i+1;

fa2:=x/(k*i*p);

if a<(i+1) then

if a=0 then

r:=1/(p*i*(i+1-a))

else

if (a>0) or ((i+1)mod 2=0) then

r:=exp(ln(abs(a))*(i+1))/(p*i*(i+1-a))

else r:=-exp(ln(abs(a))*(i+1))/(p*i*(i+1-a))

else r:=1;

end;

end;

procedure TForm1.proc1;

var x,x1:real; i,p,z:integer;

begin

x:=b*k*b*k;

x1:=b*k*b*k;

i:=2;

z:=1;

p:=1;

fb1:=x/(k*i*p);

i:=i+2;

z:=z*(-1);

if f then

begin

p:=p*(i-1)*(i-2);

fb2:=x*z/(k*i*p);

end

else

fb2:=x*z/(k*i*(i-1));

while abs(fb2)>e do

begin

fb1:=fb1+fb2;

x:=x*x1;

i:=i+2;

z:=z*(-1);

if f then

begin

p:=p*(i-1)*(i-2);

fb2:=x*z/(k*i*p);

end

else

fb2:=x*z/(k*i*(i-1));

end;

x:=a*k*a*k;

x1:=a*k*a*k;

i:=2;

z:=1;

p:=1;

fa1:=x/i*p;

i:=i+2;

z:=z*(-1);

if f then

begin

p:=p*(i-1)*(i-2);

fa2:=x*z/(k*i*p);

end

else

fa2:=x*z/(k*i*(i-1));

while abs(fa2)>e do

begin

fa1:=fa1+fa2;

x:=x*x1;

i:=i+2;

z:=z*(-1);

if f then

begin

p:=p*(i-1)*(i-2);

fa2:=x*z/(k*i*p);

end

else

fa2:=x*z/(k*i*(i-1));

end;

end;

procedure TForm1.proc2;

var x,x1:real; i,p,z:integer;

begin

x:=b*k;

x1:=b*k*b*k;

fb1:=x;

x:=x*x1;

z:=-1;

i:=3;

p:=2;

fb2:=x*z/(k*i*p);

while abs(fb2)>e do

begin

fb1:=fb1+fb2;

z:=z*(-1);

x:=x*x1;

i:=i+2;

p:=p*(i-1)*(i-2);

fb2:=x*z/(k*i*p);

end;

x:=a*k;

x1:=a*k*a*k;

fa1:=x;

x:=x*x1;

z:=-1;

i:=3;

p:=2;

fa2:=x*z/(k*i*p);

while abs(fa2)>e do

begin

fa1:=fa1+fa2;

z:=z*(-1);

x:=x*x1;

i:=i+2;

p:=p*(i-1)*(i-2);

fa2:=x*z/(k*i*p);

end;

end;

procedure TForm1.proc4;

var x,x1,m1:real; i,p:integer;

begin

x:=b*k;

x1:=b*k;

fb1:=x;

i:=2;

p:=1;

x:=x*x1;

m1:=m;

fb2:=m1*x/(k*i*p);

while abs(fb2)>e do

begin

fb1:=fb1+fb2;

m1:=m1*(m1-i+1);

x:=x*x1;

p:=p*i;

i:=i+1;

fb2:=m1*x/(k*i*p);

end;

x:=a*k;

x1:=a*k;

fa1:=x;

i:=2;

p:=1;

x:=x*x1;

m1:=m;

fa2:=m1*x/(k*i*p);

while abs(fa2)>e do

begin

fb1:=fb1+fb2;

m1:=m1*(m1-i+1);

x:=x*x1;

p:=p*i;

i:=i+1;

fa2:=m1*x/(k*i*p);

end;

end;

procedure TForm1.proc5;

var x,x1:real; i,z:integer;

begin

x:=b*k;

x1:=b*k;

fb1:=x;

i:=2;

x:=x*x1;

z:=-1;

fb2:=x*z/(k*i);

while abs(fb2)>e do

begin

fb1:=fb1+fb2;

z:=z*(-1);

x:=x*x1;

i:=i+1;

fb2:=x*z/(k*i);

end;

x:=a*k;

x1:=a*k;

fa1:=x;

i:=2;

x:=x*x1;

z:=-1;

fa2:=x*z/(k*i);

while abs(fa2)>e do

begin

fa1:=fa1+fa2;

z:=z*(-1);

x:=x*x1;

i:=i+1;

fa2:=x*z/(k*i);

end;

end;

procedure TForm1.proc6;

var x,x1,r:real; i:integer;

begin

x:=b*k;

x1:=b*k;

fb1:=x;

i:=2;

x:=x*x1;

fb2:=x/(k*i);

if b<i then

if b=0 then

r:=1/((i+1)*(i-b))

else

if (b>0) or ((i+1)mod 2=0) then

r:=exp(ln(abs(b))*(i+1))/((i+1)*(i-b))

else

r:=-exp(ln(abs(b))*(i+1))/((i+1)*(i-b))

else r:=1;

while abs(r)>e do

begin

fb1:=fb1+fb2;

x:=x*x1;

i:=i+1;

fb2:=x/(k*i);

if b<i then

if b=0 then

r:=1/((i+1)*(i-b))

else

if (b>0) or ((i+1)mod 2=0) then

r:=exp(ln(abs(b))*(i+1))/((i+1)*(i-b))

else

r:=-exp(ln(abs(b))*(i+1))/((i+1)*(i-b))

else r:=1;

end;

x:=a*k;

x1:=a*k;

fa1:=x;

i:=2;

x:=x*x1;

fa2:=x/(k*i);

if a<i then

if a=0 then

r:=1/((i+1)*(i-a))

else

if (a>0) or ((i+1)mod 2=0) then

r:=exp(ln(abs(a))*(i+1))/((i+1)*(i-a))

else

r:=-exp(ln(abs(a))*(i+1))/((i+1)*(i-a))

else r:=1;

while abs(r)>e do

begin

fa1:=fa1+fa2;

x:=x*x1;

i:=i+1;

fa2:=x/(k*i);

if a<i then

if a=0 then

r:=1/((i+1)*(i-a))

else

if (a>0) or ((i+1)mod 2=0) then

r:=exp(ln(abs(a))*(i+1))/((i+1)*(i-a))

else

r:=-exp(ln(abs(a))*(i+1))/((i+1)*(i-a))

else r:=1;

end;

end;

procedure TForm1.proc7;

var x,x1:real; i,z:integer;

begin

x:=b*k*b*k;

x1:=b*k;

i:=2;

fb1:=x/(k*i);

z:=-1;

x:=x*x1;

i:=i+1;

fb2:=x*z/(k*i*(i-1));

while abs(fb2)>e do

begin

fb1:=fb1+fb2;

z:=z*(-1);

x:=x*x1;

i:=i+1;

fb2:=x*z/(k*i*(i-1));

end;

x:=a*k*a*k;

x1:=a*k;

i:=2;

fa1:=x/(k*i);

z:=-1;

x:=x*x1;

i:=i+1;

fa2:=x*z/(k*i*(i-1));

while abs(fa2)>e do

begin

fa1:=fa1+fa2;

z:=z*(-1);

x:=x*x1;

i:=i+1;

fa2:=x*z/(k*i*(i-1));

end;

end;

procedure TForm1.proc9;

var x,x1,r:real; i,p:integer;

begin

x:=b*k*b*k;

x1:=b*k*b*k;

i:=2;

p:=1;

fb1:=x/(k*i*p);

i:=i+2;

p:=p*(i-1)*(i-2);

fb2:=x/(k*i*p);

if b<(i+2) then

if b=0 then

r:=(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else

r:=exp(ln(abs(b))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else r:=1;

while abs(r)>e do

begin

fb1:=fb1+fb2;

x:=x*x1;

i:=i+2;

p:=p*(i-1)*(i-2);

fb2:=x/(k*i*p);

if b<(i+2) then

if b=0 then

r:=(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else

r:=exp(ln(abs(b))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else r:=1;

end;

x:=a*k*a*k;

x1:=a*k*a*k;

i:=2;

p:=1;

fa1:=x/i*p;

i:=i+2;

p:=p*(i-1)*(i-2);

fa2:=x/(k*i*p);

if a<(i+2) then

if a=0 then

r:=(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else

r:=exp(ln(abs(a))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else r:=1;

while abs(r)>e do

begin

fa1:=fa1+fa2;

x:=x*x1;

i:=i+2;

p:=p*(i-1)*(i-2);

fa2:=x/(k*i*p);

if a<(i+2) then

if a=0 then

r:=(i+2)/(p*i*(i+1)*(i+3-a*a))

else

r:=exp(ln(abs(a))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else r:=1;

end;

end;

procedure TForm1.proc10;

var x,x1,r:real; i,p:integer;

begin

x:=b*k;

x1:=b*k*b*k;

fb1:=x;

x:=x*x1;

i:=3;

p:=2;

fb2:=x/(k*i*p);

if b<(i+2) then

if b=0 then

r:=(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else

if b>0 then

r:=exp(ln(abs(b))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else

r:=-exp(ln(abs(b))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else r:=1;

while abs(r)>e do

begin

fb1:=fb1+fb2;

x:=x*x1;

i:=i+2;

p:=p*(i-1)*(i-2);

fb2:=x/(k*i*p);

if b<(i+2) then

if b=0 then

r:=(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else

if b>0 then

r:=exp(ln(abs(b))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else

r:=-exp(ln(abs(b))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-b*b))

else r:=1;

end;

x:=a*k;

x1:=a*k*a*k;

fa1:=x;

x:=x*x1;

i:=3;

p:=2;

fa2:=x/(k*i*p);

if a<(i+2) then

if a=0 then

r:=(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else

if a>0 then

r:=exp(ln(abs(a))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else

r:=-exp(ln(abs(a))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else r:=1;

while abs(r)>e do

begin

fa1:=fa1+fa2;

x:=x*x1;

i:=i+2;

p:=p*(i-1)*(i-2);

fa2:=x/(k*i*p);

if a<(i+2) then

if a=0 then

r:=(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else

if a>0 then

r:=exp(ln(abs(a))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else

r:=-exp(ln(abs(a))*(i+2))*(i+2)/(p*i*(i+1)*(sqr(i+2)-a*a))

else r:=1;

end;

Размещено на Allbest.ru


Подобные документы

  • Разработка прикладного программного обеспечения для решения расчетных задач для компьютера. Численное интегрирование - вычисление значения определённого интеграла. Проектирование алгоритма численного метода. Тестирование работоспособности программы.

    курсовая работа [1,1 M], добавлен 03.08.2011

  • Выбор математической модели задачи. Применение численного интегрирования и его методы: прямоугольников, парабол, увеличения точности, Гаусса и Гаусса-Кронрода. Суть математического метода аппроксимации. Интерполяционные методы нахождения значений функции.

    курсовая работа [172,4 K], добавлен 08.04.2009

  • Разработка алгоритма и программы, обеспечивающей вычисление максимального значения функции на заданном отрезке, первой производной заданной функции. Методика расчёта, алгоритм решения задачи, описание программы. Результаты расчётов и графики функций.

    курсовая работа [576,6 K], добавлен 17.05.2011

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

    курсовая работа [35,4 K], добавлен 12.05.2013

  • Описание формальной модели алгоритма на основе рекурсивных функций. Разработка аналитической и программной модели алгоритма для распознающей машины Тьюринга. Разработка аналитической модели алгоритма с использованием нормальных алгоритмов Маркова.

    курсовая работа [1,5 M], добавлен 07.07.2013

  • Применения численного интегрирования. Интерполяционные методы нахождения значений функции. Методы прямоугольников, трапеций и парабол. Увеличение точности, методы Гаусса и Гаусса-Кронрода. Функциональные модели и программная реализация решения задачи.

    курсовая работа [450,9 K], добавлен 25.01.2010

  • Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.

    курсовая работа [1,4 M], добавлен 16.03.2012

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

    курсовая работа [398,5 K], добавлен 25.01.2010

  • Решение нелинейного уравнения: отделение корней и уточнение корня по методу хорда. Численное интегрирование: метод входящих прямоугольников. Вычисление площади криволинейной трапеции с разбивками. Решение примера методом интегрирования по частям.

    курсовая работа [197,9 K], добавлен 20.01.2009

  • Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.

    курсовая работа [240,6 K], добавлен 17.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.