Метод Симпсона нахождения определенного интеграла

Метод хорд решения нелинейных уравнений. Вычисление интеграла методом Симпсона. Процесс численного решения уравнения. Окно программы расчета корней уравнения методом хорд. Алгоритм вычисления интеграла в виде блок-схемы. Выбор алгоритма для вычислений.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.07.2012
Размер файла 832,6 K

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

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

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

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

Задание на курсовую работу

Задание 1.

Найти корни уравнения:

на интервале [-1; 0] методом хорд с точностью 0.001.

Задание 2.

Найти значение интеграла:

методом Симпсона с точностью .

Введение

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

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

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

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

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

Решение, полученное численным методом, обычно является приближенным, т. е. содержит некоторую погрешность. Источниками погрешности приближенного решения являются:

несоответствие математической модели изучаемому реальному явлению;

погрешность исходных данных;

погрешность метода решения;

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

можно считать эквивалентным точному решению.

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

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

1. Теоретическая часть

1.1. Метод хорд решения нелинейных уравнений

Метод хорд, называемый также методом секущих, состоит в следующем.

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

Напишем уравнение прямой, проходящей через точки и .

Рис. 1. Геометрический смысл метода хорд

Это равенство можно записать также в виде

(2)

Значение , может оказаться недостаточно точным, тогда находим второе приближение . Если функция принимает значения разных знаков в точках и , то применяем формулу (1) к отрезку и получаем

Если функция принимает значения разных знаков в точках аи , то применяем формулу (2) к отрезку , имеем

Продолжая аналогичным образом, получаем формулы

(3)

(4)

Процесс получения точек данной последовательности показан на рисунке 1.

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

Сходимость метода хорд к точному решению определяется следующей теоремой.

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

Расчеты по формулам (3) или (4) будем проводить до тех пор, пока не достигнем заданной точности

где - точность вычисления корня уравнения.

1.2 Метод Симпсона нахождения определенного интеграла. Рассмотрим вычисление интеграла

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

Криволинейная трапеция показана на рисунке 2.

Рис. 2. Криволинейная трапеция.

Указанная парабола задается уравнением

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

Таким образом, формула Симпсона, называемая также формулой парабол, имеет вид

(5)

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

Разобьем отрезок интегрирования на элементарных частей. Длина каждой части

Тогда границы элементарных отрезков , а значения функции в этих точках , где .

Перепишем каноническую квадратурную формулу Симпсона (5) применительно к отрезку длины .

Суммируя левую и правую части этого соотношения от до , получаем усложненную квадратурную формулу Симпсона

(6)

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

2. Практическая часть

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

Процесс численного решения уравнения состоит из нескольких этапов.

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

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

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

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

Для отделения корней уравнения строим график функции

в системе MathCAD. График строим на заданном интервале . График показан на рисунке 3.

Рис. 3. График функции на интервале .

По данному графику видим, что уравнение имеет один корень, расположенный на интервале .

По графику можем отделить следующий интервал, в котором находится корень уравнения: .

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

и составляем расчетную таблицу для полученного интервала.

х

f''(x)

-0,9

-17

-0,88

-16,4

-0,86

-15,8

-0,84

-15,2

-0,82

-14,6

-0,8

-14

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

2.2 Блок-схема программы решения уравнения

Для проведения расчетов по формулам (3) или (4) необходимо:

ввести число корней и точность расчетов;

организовать цикл по количеству корней;

для каждого корня ввести начальное приближение;

ввести второй конец интервала;

определить границы интервала и ;

организовать цикл уточнения корня по формуле (3) или (4);

после выхода из цикла вывести результаты расчетов на экран.

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

Результаты расчета корней уравнения

Программа решения уравнения методом хорд, составленная по разработанной блок-схеме, приведена в Приложении 1.

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

Составим таблицу идентификаторов, применяемых в программе.

Идентификатор

Описание

Приближения корня уравнения

Точность вычислений

Число корней

Счетчик итераций

Параметр цикла

Границы интервала

Признак формулы (3) или (4)

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

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

Поскольку при неправильном вводе начального приближения возможно зацикливание программы при уточнении корня по итерационным формулам (3) и (4), будем подсчитывать количество найденных точек и после 100 итераций осуществляем выход из цикла с сообщением "Решение не найдено".

Отметим также, что в формулах (3) и (4) осуществляется деление. Значение знаменателя не может быть равным нулю, так как на интервалах отделения корней функция монотонно возрастает или убывает. Поэтому осуществлять контроль деления на ноль нет необходимости.

Правильность работы программ осуществляется по трем признакам:

- число итераций уточнения корня должно быть невелико (до 5-10);

- значение функции в точке решения уравнения очень мало;

- найденный корень должны соответствовать графику на рисунке 3.

При сомнениях в правильности расчета можно повторить расчет с увеличенной точностью вычислений.

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

Затем для каждого корня вводится начальное приближение (а или b) и второй конец интервала (соответственно b или а). Проанализировав эти значения, программа определит левую и правую границы интервала и установит значение j, от которого зависит вид формулы расчета. При j=0 уточнение корня будет проходить по формуле (3), при j=1 - по формуле (4).

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

Рис. 4. Окно программы расчета корней уравнения методом хорд

По результатам расчетов видим, что значение функции для найденного корня имеет порядок 10-8. Точность вычисления корня достигается за 5 итераций. Значение корня соответствует графику на рисунке 3.

Для проверки можем использовать встроенную функцию системы MathCAD

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

2.4 Постановка задачи вычисления интеграла

Для вычисления определенного интеграла по формуле (6) необходимо:

ввести начало и конец интервала интегрирования;

ввести число разбиений интервала интегрирования;

вычислить длину элементарного отрезка,

вычислить значение интеграла по формуле (6);

вывести результат расчета на печать.

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

Составим таблицу идентификаторов, применяемых в программе.

Идентификатор

Описание

Начало интервала

Конец интервала

Число разбиений

Длина элементарного интервала

Значение сумм по формуле (6)

Значение интеграла

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

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

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

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

2.5 Блок-схема программы вычисления интеграла

Описанный алгоритм вычисления представим в виде блок-схемы

2.6 Результаты расчета значения интеграла

Оценка погрешности метода Симпсона осуществляется с помощью остаточного члена

где - некоторая точка на отрезке .

С учетом выражения для четвертой производной

F(4)(x)= - 12 Sin(x) - 8 x Cos(x) + x2 Sin (x)

находим для значения остаточного члена в ряде точек отрезка интегрирования

x

R

0

0

0.4

0.000286

0.8

0.0002803

1.2

- 0.00006

1.6

- 0.000475

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

Окно программы после выполнения расчета показано на рис. 5.

Для проверки правильности решения можем использовать систему MathCAD.

.

Заключение

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

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

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

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

В численном интегрировании методом Симпсона необходимо обосновать выбор числа элементарных отрезков интегрирования для достижения заданной точности расчета.

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

вычисление интеграл метод симпсон

1. Волков Е. А.. Численные методы. М:"НАУКА'!, 1982.

2. Сборник задач по методам вычислений. Под. ред. Монастырского П. И.Минск: БГУ, 1983.

3. Турбо Паскаль 7.0. Киев.: "BHV", 1997.

4. Шушкевич Г. Ч. Введение в MathCAD 2000.

Приложение 1

Программа решения уравнения методом хорд на языке Паскаль.

Program Metod_hord;

{Utochnenije kornej urawnenija metodom hord}

uses opcrt;

var

{k-e i (k+1)-priblizenije kornia}

xk,xk1:real;

{granicy interwala rascheta}

a,b:real;

{tochnost rascheta}

eps:real;

{kolichestwo kornej}

m:integer;

{schetcik iteracyj}

n:integer;

{parametr cykla}

i:integer;

{priznak formuly rascheta j=0 - formula (3), j=1 - formula (3)}

j:integer;

{Podprograma wychisleniya znachenija funkcyi}

function f(x:real):real;

begin

f:=5*x*x*x+5*x*x+4*x+3;

end;

{Osnownaja programma}

Begin

{ochistka ekrana}

clrscr;

write(' Wwedite chislo kornej = ');

{schitywanije chisla kornej, t.e. peremennoj m

priswaiwajetsia znachenije wwedennoje na ekran}

readln(m);

write(' Wwedite tocnost rascheta = ');

{schitywanije tocnost rascheta t.e. peremennoj eps

priswaiwajetsia znachenije wwedennoje na ekran}

readln(eps);

{cykl dlia nahozdenija kornej}

for i:=1 to m do

begin

writeln;

write(' Utochnenije ',i,' kornia.');

writeln(' ------------------------ ');

write(' Wwedite nachalnoje priblizenije kornia = ');

{schitywanije nachalnogo priblizenija, t.e. peremennoj xk1

priswaiwajetsia znachenije wwedennoje na ekran}

readln(xk1);

write(' Wwedite wtoroj konec interwala = ');

{schitywanije wtorogo konca interwala, t.e. peremennoj xk

priswaiwajetsia znachenije wwedennoje na ekran}

readln(xk);

if xk1>xk then

begin

{Opredeliajem granicu interwala a}

a:=xk;

{Opredeliajem granicu interwala b}

b:=xk1;

{raschet po formule (4)}

j:=1;

end

else

begin

{Opredeliajem granicu interwala a}

a:=xk1;

{Opredeliajem granicu interwala b}

b:=xk;

{raschet po formule (3)}

j:=0;

end;

{n - schetchi chisla iteracyj}

n:=0;

repeat

xk:=xk1;

if(j=0)then

xk1:=xk-f(xk)*(b-xk)/(f(b)-f(xk))

else

xk1:=xk-f(xk)*(xk-a)/(f(xk)-f(a));

n:=n+1;

until((abs(xk1-xk)<eps) or (n>100));

{Wywod rezultatow na wkran}

writeln(' Chislo iteracyj n = ',n);

if (n<101) then

begin

writeln(' Koren urawnenija = ', xk1:12:9);

writeln(' Znachenije funkcyi f(',xk1:12:9,') = ',f(xk1):10);

end

else

writeln(' Reshenije ne najdeno.');

end;

{zaderzka ekrana}

readln;

End.

Приложение 2

Программа расчета определенного интеграла на языке Паскаль.

Program Metod_Simpsona;

{Wychislenija integrala po usloznennoj formule Simpsona}

uses opcrt;

var

{Predely integrirowanija}

a,b:real;

{elementarnyj otrezok integrirowanija}

h:real;

sum:real;

i:integer;

{chislo razbijenij otrezka integrirowanija na elementarnyje otrezki}

nn:integer;

N:integer;

Integ:real;

{Podprograma wychisleniya znachenija funkcyi}

function f(x:real):real;

begin

{integrirujemaja funkcyja}

f:=x*x*sin(x);

end;

{Osnownaja programma}

Begin

{ochistka ekrana}

clrscr;

write(' Niznij predel integrirowanija a = ');

readln(a);

write(' Werhnij predel integrirowanija b = ');

readln(b);

write(' Chislo razbijenij otrezka integrirowanija (chetnoje) n = ');

readln(nn);

writeln;

write(' Wychislenije integrala po obschej formule Simpsona ');

writeln;

{N=nn/2}

N:=nn div 2;

h:=(b-a)/2/N;

Sum:=0;

{Podschet summy}

for i:=1 to 2*N-1 do

{jesli i - nechetnoje}

if Odd(i) then

sum:=sum+4*f(a+i*h)

{jesli i - chetnoje}

else

sum:=sum+2*f(a+i*h);

Integ:=h*(f(a)+sum+f(b))/3;

{Wywod rezultata rascheta integrala}

writeln(' znachenije integrala = ',Integ:13:9);

{zaderzka ekrana}

readln;

End.

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


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

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