- •1. Внутренняя сортировка данных методом подсчета. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •2. Внутренняя сортировка данных методом выбора. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •3. Внутренняя сортировка данных методом простых вставок. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •4. Внутренняя сортировка данных методом Шелла. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •5. Внутренняя сортировка данных методом «пузырька». Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •6. Внутренняя сортировка данных «быстрым» методом. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •7. Численное решение уравнения методом половинного деления (дихотомии). Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •Метод хорд
- •9. Численное решение уравнения методом Ньютона (касательных). Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •Метод Ньютона
- •10. Численное решение уравнения модифицированным методом Ньютона. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм. Модифицированный метод Ньютона
- •Модифицированный метод Ньютона (метод секущих)
- •Метод ньютона-рафсона
- •11. Численное решение уравнения методом секущих. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •Условие сходимости
- •12. Численное решение уравнения методом простых итераций. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм. Метод простых итераций
- •13. Численное интегрирование методом прямоугольников. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм. Метод прямоугольников
- •Пример реализации
- •14. Численное интегрирование методом трапеций. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм. Метод трапеций
- •15. Численное интегрирование методом парабол. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •Формула
- •Представление в виде метода Рунге-Кутта
- •Составная формула (формула Котеса)
- •16. Численное интегрирование методом Гаусса-Лежандра. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •17. Численное интегрирование методом Монте-Карло. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм. Интегрирование методом Монте-Карло
- •Обычный алгоритм Монте-Карло интегрирования
- •Геометрический алгоритм Монте-Карло интегрирования
- •Использование выборки по значимости
- •Оптимизация Применение в физике
- •18. Построение кривой по точкам. Интерполяционный полином Лагранжа. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •Определение
- •Применения
- •Случай равномерного распределения узлов интерполяции
- •Погрешность интерполирования
- •Выбор узлов интерполяции
- •20. Построение кривой по точкам. Интерполяция кубическими сплайнами. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм.
- •Интерполяция кубическими сплайнами
- •Введение
- •Постановка математической задачи
- •Изложение метода
- •Метод прогонки
- •Пример: интерполирование неизвестной функции
- •Ошибка интерполяции
- •Пример: интерполяция синуса
- •Дискретное преобразование Фурье
- •Пример использования
- •Погрешность вычислений
- •Программная реализация
Пример реализации
Формула средних прямоугольников для аналитически заданной функции, написанная на С
#include <stdio.h>
#include <math.h>
double f(double x){ //Подынтегральная функция
return sin(x); //Например, sin(x)
}
double rectangle_integrate(double a, double b, int n, double (*f)(double) ){
double result, h;
int i;
h = (b-a)/n; //Шаг сетки
result = 0.0;
for(i=1; i <= n; i++){
result += f( a + h * (i - 0.5) ); //Вычисляем в средней точке и добавляем в сумму
}
result *= h;
return result;
}
int main(void){
double integral;
integral=rectangle_integrate(0,2,100,f);
printf("The value of the integral is: %lf \n", integral);
return 0;
}
14. Численное интегрирование методом трапеций. Эффективность данного алгоритма. Привести фрагмент программы, поясняющий данный алгоритм. Метод трапеций
Словесный алгоритм метода трапеций:
Интервал [a,b] делим на n равных частей с шагом h=(b-a)/n.
Вычисляем значение подынтегральной функции в каждой узловой точке
На каждом шаге подынтегральную функцию f(x) аппроксимируем прямой, соединяющей две соседние узловые точки. В результате вся подынтегральная функция на участке [a,b] заменяется ломаной линией проходящей через все узловые точки.
Вычисляем площадь каждой частичной трапеции.
Приближенное значение интеграла равно сумме площадей частичных трапеций, т.е.
Найдем площади Si частичных трапеций:
Приближенное значение интеграла равно
Точность метода трапеций имеет порядок h2.
Схема алгоритма метода трапеций представлена на рис.12.6.
Метод трапеций для оценки определенного интеграла. Величина определенного интеграла численно равна площади фигуры, образованной графиком функции и осью абсцисс (геометрический смысл определенного интеграла). Следовательно, найти – это значит оценить площадь фигуры, ограниченной перпендикулярами, восстановленными к графику подынтегральной функции f(x) из точек a и b, расположенных на оси аргумента x.
Для решения задачи разобьем интервал [a,b] на n одинаковых участков. Длина каждого участка будет равна h=(b-a)/n (см. рис.).
Восстановим перпендикуляры из каждой точки до пересечения с графиком функции f(x). Если заменить полученные криволинейные фрагменты графика функции отрезками прямых, то тогда приближенно площадь фигуры, а следовательно и величина определенного интеграла оценивается как площадь всех полученных трапеций. Обозначим последовательно значения подынтегральных функций на концах отрезков f0, f1, f2,..., fn и подсчитаем площадь трапеций
В общем случае формула трапеций принимает вид
где fi – значение подынтегральной функции в точках разбиения интервала (a,b) на равные участки с шагом h; f0, fn – значения подынтегральной функции соответственно в точках a и b.
Остаточный член пропорционален длине интервала [a,b] и квадрату шага h
Согласно рис. и формуле остаточного члена, точность вычисления определенного интеграла повышается с уменьшением шага h (увеличением числа отрезков n).
Метод трапеций можно реализовать в виде процедуры или даже функции, поскольку результат вычисления определенного интеграла – скалярная величина. Параметрами программного модуля являются границы интервала (a и b) и число шагов разбиения на малые интервалы n. Для составления универсальной функции целесообразно предусмотреть вычисление подынтегральной функции f(x) во внешней процедуре – функции.
Метод трапеций — метод численного интегрирования функции одной переменной, заключающийся в замене на каждом элементарном отрезке подынтегральной функции на многочлен первой степени, то есть линейную функцию. Площадь под графиком функции аппроксимируется прямоугольными трапециями. Алгебраический порядок точности равен 1.
Если отрезок является элементарным и не подвергается дальнейшему разбиению, значение интеграла можно найти по формуле
Это простое применение формулы для площади трапеции — полусумма оснований, которыми в данном случае являются значения функции в крайних точках отрезка, на высоту (длину отрезка интегрирования). Погрешность аппроксимации можно оценить через максимум второй производной
Составная формула
Применение составной формулы трапеций
Если отрезок разбивается узлами интегрирования и каждом из элементарных отрезков применяется формула трапеций, суммирование даст составную формулу трапеций
Формула Котеса
Применение формулы трапеций для равномерной сетки
В случае равномерной сетки
где — шаг сетки.
Замечательные свойства
Метод трапеций быстро сходится к точному значению интеграла для периодических функций, поскольку погрешность за период аннулируется. Метод может быть получен путём вычисления среднего арифметического между результатами применения формул правых и левых прямоугольников.