Сравнение формул интегрирования



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

Практикум

 

Цель работы: изучить основные методы численного интегрирования; научиться создавать приложения для решения задачи численного интегрирования в среде Delphi; изучить средства пакета MathCad, предоставляемые для решения задачи нахождения определенного интеграла.

 

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

 

Задание 2. В среде Delphi создайте приложение для решения задачи численного интегрирования функций, приведенных в таблице 4.1 (в соответствии со своим вариантом) методами трапеций и Симпсона. Предусмотрите в программе вычисление точного значения определенного интеграла через первообразную функцию (табл. 4.1).

 

 

Пример выполнения задания

Определите интеграл  с n = 40 и шагом h, который вычисляется по формуле h = (b – a) / n, используя квадратурные формулы: а) трапеций; б) Симпсона; в) Ньютона-Лейбница. Вид первообразной F(x) = . Оцените погрешность всех результатов.

 

2.1. Создайте приложение в Delphi и разместите необходимые компоненты на форме (рис. 4.3). Для этого используйте компоненты: Label, Edit, Memo, RadioButton, Chart, Button. Введите исходные данные в Edit1 — Edit4, Label1-Label4.

 

 

Рисунок 4.3 – Вид формы решения интеграла в Delphi

 

2.2. В начале программы необходимо описать исходную функцию (f) и ее первообразную (perv):

 

function f(x:real):real;

begin

f := exp(3*ln(x))+1/sqr(x);

end;

 

function perv(x:extended):extended;

begin

perv := exp(4*ln(x))/4–1/x;

end;

 

2.3. Создайте процедуру-обработчик нажатием кнопки «Решить». Текст процедуры приведите к следующему виду:

 

procedure TForm1.Button1Click(Sender: TObject);

var a,b,h,s,x,s1:real;

j,n,i:integer;

begin

a := StrToFloat(Edit1.Text);

b := StrToFloat(Edit2.Text);

n := StrToint (Edit4.Text);

h := (b–a)/n;

Edit3.Text := FloatToStr(h);

Series1.Clear;

 

//Метод Ньютона-Лейбница

s1 := perv(b)–perv(a);

x := a;

if RadioButton1.Checked then begin

while x<=b do begin

Series1.AddXY(x,f(x));

x := x+h;

end;

Memo1.Lines.Add('По метод Ньютона-Лейбница='+FloatToStrF(s1,fffixed,14,7));

end;

 

//Метод трапеций

if RadioButton2.Checked then begin

s := (f(a)+f(b))/2;

h := (b–a)/n;

for i := 1 to n–1 do begin

x := a+i*h;

series1.AddXY(x,f(x));

s := s+f(x);

end;

s := s*h;

Memo1.Lines.Add('По методу трапеций='+FloatToStrF(s,fffixed,14,7));

Memo1.Lines.Add('Погрешность='+FloatToStrF(abs(s1–s),fffixed,14,7));

end;

 

//Метод Симпсона

if RadioButton3.Checked then begin

s := f(a)+f(b);

for j := 1 to n-1 do

begin

x := a+j*h;

if odd(j)=true then s := s+4*f(x)

else s := s+2*f(x);

Series1.AddXY(x,f(x));

end;

s := s*h/3;

Memo1.Lines.Add('По методу Симпсона='+FloatToStrf(s,fffixed,14,7));

Memo1.Lines.Add('Погрешность='+FloatToStrF(abs(s1–s),fffixed,14,7));

end;

end;

 

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

 

 

Рисунок 4.4 – Значения интеграла по методам Симпсона, трапеций, Ньютона-Лейбница

 

2.5. САМОСТОЯТЕЛЬНО. Создайте процедуры-обработчика нажатием кнопки «Выйти» и «Очистить поле». Продумайте, как вычислить погрешности метода трапеций по формуле (4.5) и метода Симпсона (4.7). Реализуйте это в своем приложении.

 

Задание 3. Проведите интегрирование тех же функций (табл. 4.1) средствами пакета MathCad и Excel.

Пример выполнения задания

 3.1. Вычислите указанный интеграл с n = 40 и шагом h в электронных таблицах Excel c помощью методов трапеций и Симпсона.

3.1.1. Введите исходные данные и формулы (рис. 4.5):

 

 

Рисунок 4.5 – Вычисления значения интеграла в режиме формул

 

3.1.2. Скопируйте формулы А8:D8 на блок А9:D47. Затем в ячейку D47 введите формулу =С7+С47, а в ячейку D48 — формулу =СУММ(D8:D47). Только после этого можно вводить формулы вычисления по методам трапеций и Симпсона.

3.1.3. В результате получите следующие числовые значения (рис. 4.6)

 

 

Рисунок 4.6 – Значения интеграла по формулам Симпсона и трапеций

 

3.1.4. Таким образом, значение интеграла по формуле трапеций Sтр=11,79234003, значение интеграла по формуле Симпсона равно Sс=11,78978495.

 

3.2.       Найдите значение заданного интеграла при помощи пакета MathCad по формулам трапеций, Симпсона и прямым способом.

 

3.2.1. Для этого введите исходные данные, которые будите использовать для всех рассматриваемых методов:

   

3.2.2. Вызовите с панели инструментов (или при помощи комбинации клавиш Shift+F7) значок определенного интеграла, заполните необходимые значения и нажмите знак равенства.

Получите прямой способ нахождения интеграла:

    

 

3.2.3. Реализуйте метод трапеций в MathCad, выполнив следующие действия:

 

3.2.3. Вычислите указанный интеграл, используя формулу Симпсона.

 

 

Задание 4. Вычислите абсолютные погрешности методов интегрирования функций по формуле:

где I* — точное значение интеграла, вычисленное через первообразную;

 I — значение интеграла, полученное в результате применения конкретного численного метода.

 

 


Дата добавления: 2018-04-05; просмотров: 314; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!