Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab Pract CHislennye Medody.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.28 Mб
Скачать

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

Задание 1. Построить многочлен Лагранжа и вычислить его значение в указанных точках.

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

Задание 3. Для функции, заданной таблицей в задании 1, найти значение производной первого и второго порядков в указанных точках.

Задание 4. Для таблицы метода наименьших квадратов построить квадратичное приближение.

Вопросы к защите лабораторной работы №4

«Приближение функций. Численное дифференцирование»

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

  2. Полиномиальная интерполяция. Многочлен в форме Лагранжа.

  3. Многочлен в форме Ньютона.

  4. Погрешность интерполяции.

  5. Интерполяция с кратными узлами.

  6. Метод наименьших квадратов.

  7. Численное дифференцирование на основе интерполяции.

ЛАБОРАТОРНАЯ РАБОТА №5

Численное интегрирование

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

Постановка задачи численного интегрирования. Задача численного интегрирования функции заключается в вычислении определенного интеграла на основании ряда значений подынтегральной функции. Численное вычисление однократного интеграла называется механической квадратурой. Обычный прием механической квадратуры состоит в том, что данную функцию f(x) на рассматриваемом отрезке [a, b] заменяют интерполирующей или аппроксимирующей функцией φ(x) простого вида, а затем приближенно полагают: Функция φ(x) должна быть такова, чтобы интеграл вычислялся непосредственно. Если функция f(x) заданна аналитически, то ставится вопрос об оценке погрешности.

Составные квадратурные формулы. Приведем ряд простейших квадратурных формул, используемых в практике численного интегрирования функции f(x) на некотором интервале [a, b], разбитого на n равных отрезков точками a0=a, a1=a+h, a2=a+2h, …, an=a+nh+b, где n=0,1, …, k и Положим f(xn)=yn=f(a+nh).

Формула прямоугольников:

Погрешность формулы определяется выражением:

где . (15)

Формула трапеций:

Погрешность формулы определяется выражением:

где . (17)

Формула Симпсона:

где . (18)

Погрешность формулы определяется выражением:

где . (19)

Алгоритм решения задачи численного интегрирования по формуле прямоугольников.

Задача. Вычислить интеграл I= , по формуле трапеций, разделив отрезок [0,1] на 10 равных частей, и оценить погрешность вычислений.

Решение проведем, используя формулы (18), (19) и принимая h=0,1:

Результат:

I=0,183±0,01.

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

Алгоритм решения задачи численного интегрирования по формуле трапеций.

Задача. Вычислить интеграл I= , по формуле трапеций, разделив отрезок [0,1] на 10 равных частей, и оценить погрешность вычислений.

Решение. Воспользуемся формулами (14), (15) и примем h=0,1:

Результат:

І = 0,225±0,003..

Алгоритм решения задачи численного интегрирования по формуле Симпсона (парабол).

Задача. Вычислить интеграл I= , по формуле Симпсона, разделив отрезок [0,1] на 10 равных частей, и оценить погрешность вычислений.

Решение осуществим с помощью формул (16) и (17). Примем h=0,1:

Результат:

І =0,223±7,7·10-6.

Метод Монте-Карло. Алгоритм решения в TMTPascal.

Задача. Вычислить определенный интеграл методом Монте-Карло

Решение:

program mk;

uses crt;

var x,s,integral,a,b,d: real;

i,n: integer;

function fun(x:real):real;

begin

fun:=1/sqrt(3*x*x-1);

end;

begin

randomize;

writeln('vvedite predely integrirovaniay');

read(a,b);

writeln('vvedite chislo sluchainyx ispytanii');

read(n);

s:=0;

d:=b-a;

for i:=1 to n do

begin

x:=a+d*((b-a)*random+a);

s:=s+fun(x);

end;

integral:=s*d/n;

writeln('i=',integral:17:11);

end.

Результат:

Задача. Методом Монте-Карло вычислить значение определенного интеграла

Решение

program MONTE_KARLO;

{y=sin x,a=0,b=1}

uses crt;

const n=10000;

var a,b,s,y,x:real;

i:integer;

BEGIN

clrscr;a:=0;b:=1;s:=0;

for i:=1 to n do

begin

x:=a+random*(b-a);

y:=sin(x);

s:=s+y;

end;

s:=(b-a)*s/n;

writeln('s=',s:10:5);

readln;

END.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]