- •Вопросы по курсу для пи-101
- •Верные цифры.
- •Вычисление значений элементарных функций.
- •Вычисление значений алгебраического многочлена (метод Горнера).
- •Вычисление значений аналитических функций и степенные ряды.
- •Отделение корней.
- •Оценки корней алгебраических уравнений.
- •Основные методы уточнения корней уравнения (дихотомии, хорд, касательных, простой итерации).
- •Метод Гаусса (схема полного исключения, сведение к треугольной матрице, проблема погрешности, схема главных элементов).
- •Разложение матрицы в произведение треугольных и метод Краута.
- •Решение систем нелинейных уравнений.
- •Метод квадратных корней.
- •Метод простой итерации и сходимость итераций.
- •Метод Зейделя.
- •Метод прогонки для систем с трехдиагональной матрицей.
- •Краткая характеристика других методов.
- •Проблема собственных значений и методы ее решения.
- •Поиск максимального по модулю собственного числа и соответствующего собственного вектора (степенной метод, метод скалярных произведений).
- •Среднеквадратическая аппроксимация и метод наименьших квадратов.
- •Аппроксимация ортогональными многочленами.
- •Равномерная аппроксимация функций (понятие).
- •Интерполяция функций.
- •Интерполяционный многочлен Лагранжа.
- •Конечные разности.
- •Интерполяционные формлы.
- •Интерполирование на неравномерной сетке
- •Интерполирование сплайнами.
- •Численное интегрирование.
- •Вычисление несобственных интегралов.
- •Кубатурные формулы.
- •Вычисление кратных интегралов. Метод Монте-Карло.
- •Численное решение обыкновенных дифференциальных уравнений.
- •Задача Коши: постановка и пути решение.
- •Простейшие методы решения задачи Коши.
- •Методы Рунге-Кутта.
- •Решение задачи Коши для систем уравнений.
- •Краевые задачи. Разностные методы. Метод прогонки.
- •9.7. Разностные методы для краевых задач. Метод прогонки
- •Предполагается, что слушатель курса знаком с курсом элементарной и высшей математики и обладает достаточными понятиями о следующих вопросах.
- •Предполагается знакомство с возможностями системы MatLab и способность реализовать предлагаемый метод (алгоритм) средствами известных универсальных языков программирования.
Вычисление значений элементарных функций.
Вычисление значений алгебраического многочлена (метод Горнера).
Пусть задан многочлен n -й степени
Pn(x)=a0xn+a1xn-1+…+an-1x+an .
Вычисление его значений при конкретном значении аргумента можно вести разными путями. Например, сначала найти все степени, затем все произведения и, наконец, выполнить все сложения - этот путь потребует, по крайней мере, 2n умножений и n сложений.
Перепишем многочлен с использованием т.н. скобок Горнера
Pn(x)=(…(((a0)x+a1) x+a2) x+…+an-1) x+an.
Здесь можно воспользоваться однообразным вычислительным процессом: примем за значение P коэффициент при n-й степени и затем значение P последовательно умножаем на x и добавляем следующий коэффициент. Этот путь требует лишь n умножений и n сложений, уменьшает погрешность вычислений и имеет изящную программную реализацию; например, на языке Паскаль
P := a[0] ; for k := 1 to n do P:=P*x+a[k] ;
С помощью этого метода можно переводить десятичные числа в другие системы счисления
Вычисление значений аналитических функций и степенные ряды.
При решении многих задач возникает необходимость вычисления значений некоторых функций.
Если не удастся найти готовую аппроксимацию для искомой функции, на помощь может прийти факт, что аналитическая функция может быть представлена степенным рядом: всякая аналитическая при x=x* функция F(x) разлагается в окрестности точки x* в ряд Тейлора:
(при x*=0 этот ряд называется рядом Маклорена).
Сходящиеся ряды Тейлора являются основой для вычисления значений функций в некотором диапазоне значений аргумента.
Есть ряды сходящиеся и расходящиеся. Необходимым условием сходимости ряда является стремление его n-ого члена к нулю, при n равном бесконечности. Это только необходимое условие, но не достаточное, ряд может и расходится (но если он знакочередующийся, значит точно сходится). Дальше когда необходимое условие сходимости выполнено, мы проверяем ряд на достаточное условие. Сделать можно разными способами. По признаку Даламбера, например.
Так вот, использовать разложение функции в ряд Тейлора для вычисления ее значения целесообразно применять при быстрой сходимости ряда (т.е. чем меньше членов ряда нам нужно посчитать, чтобы достигнуть определенной точности, тем лучше). В случаях, когда сходимость недостаточно быстрая, ее можно увеличить.
Метод цепных дробей.
Помимо разложения в ряд Тейлора можно еще разложить функции в виде цепной дроби.
В простой дроби нужно поделить числитель на знаменатель и выделить целую часть, а дробный остаток поделить и числитель, и знаменатель на числитель же. И так далее.
Ближе к функциям. Л.Эйлер разложил таким способом функцию e^x Посчитав это при х=1, он уже с четвертой итерации получил точность, такую какую получил бы при восьмой итерации в случае разложения в ряд Тейлора.
Итерационный метод.
М применять только для непрерывных, непрерывно дифференцируемых функций. Здесь нам нужно выбрать какое-то начальное приближение и сделать цикл с условием, в которое мы вставим погрешность абсолютную или относительную.
Чтобы найти более точную оценку нашего приближенного значения (которое мы сами выбираем) мы должны в цикле это посчитать по формуле:
Yn+1=Yn-(F(x,Yn)/F`y(x,Yn))
А в условие цикла поставим например абсолютную погрешность, т.е. Yn+1 - Yn <0.001 (можно и относительную погрешность поставить).
Вот так вот и считаем. Ну например можно такой цикл запилить:
n=1;
Y[1]=1; //начальное приближение
Y[2]=2 // это, чтобы можно было в цикл войти, т.к. матлаб не знает циклов с постусловием, потом это значение в первой же итерации перезапишется
x=10; //например х=10
while Y[n+1]-Y[n]>0.001
Y[n+1]=Y[n]-(fun(x,Y[n])/(fund(x, Y[n]);
n=n+1;
end
Плюс этого метода заключается в том, что он устойчив к промежуточным ошибкам, но нам нужно быть уверенными, что итерационный процесс сходящийся (иначе зациклиться).
ЧИСЛЕННОЕ РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ И ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ.
