Вычисление определенного интеграла с заданной степенью точности

Автор работы: Пользователь скрыл имя, 14 Июня 2013 в 14:58, курсовая работа

Краткое описание

Интеграл (от лат. “integer” - целый) – одно из важнейших понятий математики, возникшее в связи с потребностью, с одной стороны, отыскивать функции по их производным (например, находить функцию, выражающую путь, пройденный движущейся точкой, по скорости этой точки), а с другой - измерять площади, объемы, длины дуг, работу сил за определенный промежуток времени и т. п.
Интегрирование прослеживается ещё в древнем Египте, примерно в 1800 до н. э.. Первым известным методом для расчёта интегралов является метод исчерпывания Евдокса (примерно 370 до н. э.), который пытался найти площади и объёмы, разрывая их на бесконечное множество частей, для которых площадь или объём уже известен. Этот метод был подхвачен и развит Архимедом, и использовался для расчёта площадей парабол и приближенного расчёта площади круга.

Вложенные файлы: 1 файл

Курсовая работа1.doc

— 218.00 Кб (Скачать файл)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  И НАУКИ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 

Факультет информационных технологий и робототехники

 

 

Кафедра «Программное обеспечение  вычислительной техники

и автоматизированных систем»

 

 

 

 

 

 

 

КУРСОВАЯ РАБОТА

 

по дисциплине: ”Основы  алгоритмизации и программирования” 

 

на тему: ”Вычисление определенного интеграла с заданной

степенью  точности”

 

 

 

 

 

 

 

 

 

Выполнил: студент гр. 107328

Бельский Алексей

 

Приняла:    ст. преподаватель

Прибыльская Н. М.

 

 

 

 

 

 

 

Минск  2009

Содержание

 

 

Введение

Интеграл (от лат. “integer” - целый) – одно из важнейших понятий математики, возникшее в связи с потребностью, с одной стороны, отыскивать функции по их производным (например, находить функцию, выражающую путь, пройденный движущейся точкой, по скорости этой точки), а с другой - измерять площади, объемы, длины дуг, работу сил за определенный промежуток времени и т. п.

Интегрирование прослеживается ещё в древнем Египте, примерно в 1800 до н. э.. Первым известным методом для расчёта интегралов является метод исчерпывания Евдокса (примерно 370 до н. э.), который пытался найти площади и объёмы, разрывая их на бесконечное множество частей, для которых площадь или объём уже известен. Этот метод был подхвачен и развит Архимедом, и использовался для расчёта площадей парабол и приближенного расчёта площади круга.

Знак интеграла  был впервые использован Лейбницем в конце XVII века. Символ интеграла образовался из буквы S — сокращения слова лат. summa (сумма). Само слово «интеграл» придумал Я. Бернулли в 1690 г. В ходе переписки И. Бернулли и Г. Лейбниц согласились с предложением Я. Бернулли. И тогда, в 1696 г., появилось название новой ветви математики - интегральное исчисление (calculus integralis), которое ввел И. Бернулли.

Однако при всей значимости результатов, полученных математиками XVII столетия, исчисления еще не было. Необходимо  было выделить общие идеи, лежащие в основе решения многих частных задач, а также установить связь операций дифференцирования и интегрирования, дающую достаточно точный алгоритм. Это сделали Ньютон и Лейбниц, открывшие независимо друг от друга факт, известный вам под названием формулы Ньютона - Лейбница. Тем самым окончательно оформился общий метод. Предстояло еще научиться находить первообразные многих функций, дать логические основы нового исчисления и т. п. Но главное уже было сделано: дифференциальное и интегральное исчисление создано. 

Краткие теоретические  сведения

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

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

где n – число точек, в которых вычисляется значение подынтегральной функции. Точки xi называются узлами метода, числа – весами узлов. При замене подынтегральной функции на полином нулевой, первой и второй степени получаются соответственно методы прямоугольников, трапеций и парабол. Остановимся на втором методе.

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

Площадь трапеции на каждом отрезке:

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

где  

Описание программы

Постановка  задачи

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

Формулировка задачи

Построить алгоритм, вычисляющий определенный интеграл методом трапеций с заданной степенью точности.

Переменные  и их назначение

A, B (Xn, Xk) – начальное и конечное значение отрезка;

H – расстояние между разбиениями;

S – необходимая степень точности;

RES1 (INT) – результат, полученный с помощью формулы трапеций;

RES2 – результат, полученный с помощью формулы Ньютона-Лейбница;

I, J – переменные-счетчики;

NUM (N) – необходимое количество разбиений;

X, Y – массивы аргументов и функций со значениями на каждом отрезке;

F – сама функция.

Описание программы

В самом начале, при  запуске программа запрашивает  у пользователя начальное A и конечное B значения отрезка, на котором будет производиться вычисление. Затем требуется ввести степень точности S, необходимую для вычисления интеграла методом трапеций. Сразу после этого высчитывается значение RES2 интеграла методом Ньютона-Лейбница (это необходимо для верного определения степени точности). Потом все необходимые значения S, A, B, RES2 и F передаются в процедуру, в которой производится подсчет необходимых значений. Затем они (NUM и RES1) передаются в программу и выводятся на экран.

 

Тестирование  программы

Допустим, пользователь вводит следующие данные:

;

( );

В качестве степени точности возьмем ( ). Получим:

Если задаться значениями:

;

;

, получим следующий результат:

 

Выводы

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

 

Литература

  1. Изучаем Turbo Pascal / Под ред. С. Немнюгин, Л. Перколаб – С.-Пб.:Питер.- 2004г.-780с.
  2. Конспект лекций по курсу “Информационные технологии”. – 2007г.
  3. Самоучитель по Паскалю/ Под ред. В.И. Попова, – С.-Пб.:Питер.-2004г.-325с.
  4. Практикум по основам программирования на языке Turbo Pascal / Под ред. Н.Д.Васюкова, В.В.Тюляева – М.: Высшая школа.- 1991г.-479с.
  5. Программирование на языке Turbo Pascal / Под ред. О.Н.Перминов – М.: Высшая школа.-1989г.- 295с.
  6. Статья «Интеграл» [электронный документ]. URL: http://ru.wikipedia.org/wiki/Интеграл.

 

Приложение 1

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

program integral;

uses crt;

type

arr = array [0..1000] of real;

func = function(x:real):real;

var

s,a,b,h,res1,res2: real;

j,num: integer;

x,y: arr;

{$F+}

function f(x:real):real;

begin

  f:=1/(1+(2*sqr(sin(x))));

end;

procedure analytic(s,xn,xk,res:real; f:func; var n:integer; var int:real);

var

  i: integer;

  h: real;

  x,y: arr;

begin

  n:=0;

  while trunc(int/s)<>trunc(res/s) do

  begin

  inc(n);

  h:=(xk-xn)/n;

  for i:=1 to n+1 do

   begin

    x[i]:=xn+(i-1)*h;

    y[i]:=f(x[i]);

   end;

  int:=0;

  for i:=2 to n+1 do

   int:=int+(y [i-1]+y[i])/2*h;

  end;

end;

{$F-}

begin

clrscr;

 write('Введите начальный A и конечный B значения отрезка [A,B]: ');

read(a,b);

write('Введите необходимую  степень точности: ');

 readln(s);

res2:=(1/sqrt(3)*arctan(sqrt(3)*sin(b)/cos(b)))-(1/sqrt(3)*arctan(sqrt(3)*sin(a)/cos(a)));

analytic(s,a,b,res2,f,num,res1);

 writeln('a). Результат с использованием формулы Ньютона-Лейбница:');

 writeln('Y = ',res2:13:10);

writeln;

 writeln('b). Результат с использованием формулы трапеций:');

writeln('Y = ',res1:13:10);

writeln('Необходимое количество разбиений функции: ',num);

readkey;

end.

 

Приложение 2

Схема машинного  алгоритма:

 

Функция f:

 

 

Процедура analytics:


Информация о работе Вычисление определенного интеграла с заданной степенью точности