Лабораторная работа: Приближенное вычисление интегралов

Тема:
Приближенное вычисление интегралов.


Дата добавления на сайт: 14 февраля 2025
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ

ЛАБОРАТОРНАЯ РАБОТА №1
Методы численного анализа
Приближенное вычисление интегралов

МИНСК - 2014

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


1.Построить квадратурную формулу максимально возможной степени точности вида

Приближенное вычисление интегралов (рис. 1).

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

Приближенное вычисление интегралов (рис. 2).
квадратурный формула алгебраический интеграл
3.Используя правило Рунге, провести сравнительный анализ квадратурных формул средних прямоугольников и трапеций на примере вычисления интеграла Приближенное вычисление интегралов (рис. 3).
.Вычислить с точностью Приближенное вычисление интегралов (рис. 4) интеграл Приближенное вычисление интегралов (рис. 5).
.Найти с точностью Приближенное вычисление интегралов (рис. 6) решение уравнения Приближенное вычисление интегралов (рис. 7).
Решение
Задача №1
Построить квадратурную формулу максимально возможной степени точности вида

Приближенное вычисление интегралов (рис. 8).
Приближенное вычисление интегралов (рис. 9)

Построим систему линейных уравнений вида:

Приближенное вычисление интегралов (рис. 10)
Приближенное вычисление интегралов (рис. 11)
Приближенное вычисление интегралов (рис. 12)
Получим: Приближенное вычисление интегралов (рис. 13)

Решение этой системы будет следующим: Приближенное вычисление интегралов (рис. 14), Приближенное вычисление интегралов (рис. 15), Приближенное вычисление интегралов (рис. 16), Приближенное вычисление интегралов (рис. 17).
Таким образом, квадратурная формула максимально возможной степени точности будет иметь вид:

Приближенное вычисление интегралов (рис. 18)


Примечание: вычисления проводились вручную.

Задача №2
Определить алгебраическую степень точности указанной квадратурной формулы

Приближенное вычисление интегралов (рис. 19).

Значение правой частиЗначение левой части
122
00
00
00

Из таблицы видно, что АСТ указанной квадратурной формулы равна 5.
Примечание: вычисления проводились вручную.
Задача №3
Используя правило Рунге, провести сравнительный анализ квадратурных формул средних прямоугольников и трапеций на примере вычисления интеграла Приближенное вычисление интегралов (рис. 20).
Формула средних прямоугольников:

Приближенное вычисление интегралов (рис. 21)
Приближенное вычисление интегралов (рис. 22).

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

Приближенное вычисление интегралов (рис. 23)
Приближенное вычисление интегралов (рис. 24).

Правило Рунге:
Приближенное вычисление интегралов (рис. 25) точность достигнута и приближенное значение будет Приближенное вычисление интегралов (рис. 26).

Критерий сравненияКФ средних прямоугольниковКФ трапеций
Кол-во узлов в простой КФ12
Класс функции
Число итераций, необходимых для достижения точности 45
Шаг, необходимый для достижения точности 0,1250,0625
Приближенное значение интеграла (точность = )0,4784410,479534
Число итераций, необходимых для достижения точности 1111
Шаг, необходимый для достижения точности
Приближенное значение интеграла (точность = )0,47916343140,4791635669

Вывод: из таблицы мы видим, что квадратурная формула средних прямоугольников использует меньше узлов, чем квадратурная формула трапеций (количество узлов на единицу меньше). Этот факт дает нам понять о том, что число арифметических операций, затрачиваемых на выполнение одной итерации, у квадратурной формулы средних прямоугольников меньше, чем у квадратурной формулы трапеций. У обеих квадратурных формул функция является дважды дифференцируемой, поэтому требуемая точность достигается приблизительно одинаково. Но на практике квадратурная формула средних прямоугольников незначительно быстрее достигает требуемой точности, чем квадратурная формула трапеций, если сделать еще больше опытов (для нашей задачи). Исходя из наших заключений, мы можем с уверенностью сказать, что на практике квадратурная формула средних прямоугольников более предпочтительна, чем квадратурная формула трапеций, т.к. за одну итерацию она делает меньшее количество арифметических операций.
Листинг программы для задачи №3(язык программирования Java 6):
class Test{
public static double e = 0.001,//0.0000001
a = 1, b = 3;
public static double f_x(double x){
return Math.log(Math.sin(x)*Math.sin(x)+3)/(x*x+2*x-1);
}
public static double f_middle_rect(int n){
double sum = 0.0;
for(int i=1; ie){ n1 *= 2; n2 *= 2; i++;}.out.printf("%d\n%.10f\n%.10f\n", i, h(n2), f_middle_rect(n2)+f*h(n2)*h(n2));= 1; n2 = 2; i = 1;
while((f = Math.abs(h(n2)*h(n2)*(f_trap(n2)-f_trap(n1))/
(h(n1)*h(n1)-h(n2)*h(n2))))>e){ n1 *= 2; n2 *= 2; i++;}.out.printf("%d\n%.10f\n%.10f\n", i, h(n2), f_trap(n2)+f*h(n2)*h(n2));
}
}

Задача №4

Вычислить с точностью Приближенное вычисление интегралов (рис. 27) интеграл Приближенное вычисление интегралов (рис. 28).
Приведем исходный интеграл к более желанному виду:

Приближенное вычисление интегралов (рис. 29)

Воспользуемся формулой:

Приближенное вычисление интегралов (рис. 30)
Приближенное вычисление интегралов (рис. 31)

Проводим дальнейшие вычисления по предыдущей формуле, начиная с Приближенное вычисление интегралов (рис. 32)=1, Приближенное вычисление интегралов (рис. 33)=2. На каждой итерации увеличиваем значения Приближенное вычисление интегралов (рис. 34), Приближенное вычисление интегралов (рис. 35) в 2 раза. Требуемая точность достигается при выполнении условия:
Приближенное вычисление интегралов (рис. 36)
Ответ: после запуска программы получили, что количество итераций k=4, точность равна 0,0000145681, значение интеграла с требуемой точностью Приближенное вычисление интегралов (рис. 37).
Листинг программы для задачи №4(язык программирования Java 6):
class Test{
public static double e = 0.0001, a = -1, b = 1;
public static double f_x(double x){
return (1-x*x)*Math.sin(x*x)/(1+Math.log(x+1)*Math.log(x+1));
}
public static double f_NAST(int n){
double sum = 0.0;
for(int i=0; ie){ n1 *= 2; n2 *= 2; i++; }.out.printf("%d\n%.10f\n%.10f\n", i, f, f_NAST(n2));
}
}

Задача №5

Найти с точностью Приближенное вычисление интегралов (рис. 38) решение уравнения Приближенное вычисление интегралов (рис. 39)
Обозначим через Приближенное вычисление интегралов (рис. 40) Получили нелинейное уравнение:

Приближенное вычисление интегралов (рис. 41)

решение которого можно найти методом Ньютона по формуле:

Приближенное вычисление интегралов (рис. 42)

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

Приближенное вычисление интегралов (рис. 43)

Приближенное значение интеграла, находящегося в числителе расчетной формулы для нахождения корня уравнения, будем вычислять по составной квадратурной формуле средних прямоугольников, используя правило Рунге (точность Приближенное вычисление интегралов (рис. 44)).
Сделаем отделение корней:
1.Приближенное вычисление интегралов (рис. 45)с точностью Приближенное вычисление интегралов (рис. 46); Приближенное вычисление интегралов (рис. 47)с точностью Приближенное вычисление интегралов (рис. 48); Приближенное вычисление интегралов (рис. 49)
2.Приближенное вычисление интегралов (рис. 50), не равна нулю и сохраняет знак на отрезке Приближенное вычисление интегралов (рис. 51); Приближенное вычисление интегралов (рис. 52), не равна нулю и сохраняет знак на отрезке Приближенное вычисление интегралов (рис. 53);
3.Начальное приближение Приближенное вычисление интегралов (рис. 54). Возьмем Приближенное вычисление интегралов (рис. 55). Проверим выполнение условия Фурье: Приближенное вычисление интегралов (рис. 56)
Таким образом, мы нашли начальное приближение для нахождения корня нашего нелинейного уравнения методом Ньютона: Приближенное вычисление интегралов (рис. 57).
Примечание: вычисления проводились на WolframAlpha.
Ответ: после запуска программы получили: Приближенное вычисление интегралов (рис. 58) при количестве итераций Приближенное вычисление интегралов (рис. 59), с точностью Приближенное вычисление интегралов (рис. 60) (квадратичная сходимость метода Ньютона).

ИтерацияРешение нелинейного уравненияТочность
12,672546420,227453578767844
22,524366490,148179930565486
32,463622360,060744123524822
42,454788950,008833410818934
52,454622160,000166793744647
62,454622100,000000059009325

Листинг программы для задачи №5(язык программирования Java 6):

class Test{
public final static double e = 0.0001, a = 0;
public static double f_x(double x){ //подынтегральное выражение.
return Math.pow(x-1, 6)*(Math.log10(Math.pow(x*x+1, 0.5))+2);
}
public static double df_dx(double x){ //производная подынтегрального выражения.
return 6*Math.pow(x-1, 5)*(Math.log10(Math.pow(x*x+1, 0.5))+2)+*Math.pow(x-1, 6)/(Math.log(10)*(x*x+1));
}
public static double f_middle_rect(double b, double h, int n){ //КФСП.
double sum = 0.0;
for(int i=1; ie){= n2; n2 *= 2; h1 = h2; h2 /= 2;= I2; I2 = f_middle_rect(b, h2, n2);
}
return I2+f*h2*h2; //значение интеграла с точносью e.
}
public static double calc_newton(double x){ //метод Ньютона.
return x-(calc_integral_acc(x)-5.0)/f_x(x);
}
public static void main(String[] args){.out.println(calc_integral_acc(3)-5);//для отделения корней.[2,3]..out.println(f_x(2.9)); //для проверки..out.println(df_dx(2.9));//для проверки..out.println((calc_integral_acc(2.9)-5)*df_dx(2.9));// условие Фурье.
double xk = 0.0, xk1 = 2.9; int i = 0;
while(true){= xk1; xk1 = calc_newton(xk);++;
if(Math.abs(xk1-xk)<e) break;.out.printf("%d\n%.15f\n%.15f\n", i, xk1, Math.abs(xk1-xk));
}.out.printf("%d\n%.15f\n%.15f\n", i, xk1, Math.abs(xk1-xk));
}
}

Комментарии:

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