Варианты:
- Метод Гаусса
- Метод Гаусса с выбором главного элемента
- Метод простых итерации
- Метод Гаусса-Зейделя
Размерность 1...20
(задается из файла или с клавиатуры — по выбору конечного пользователя)
Должно быть предусмотрено чтение исходных данных как из файла, так и ввод с клавиатуры.
Должна быть реализована возможность ввода коэффициентов матрицы как с клавиатуры, так и из файла. Также предусмотреть случайные коэффициенты.
Обязательно: Тестовые данные на матрице большого размера (5 * 5
/
6 * 6
...
) +
в отчёт с решением.
Для точных методов(Гаусс и главные элементы) должно быть реализовано:
- Вычисление определителя
- Вывод треугольной матрицы (включая преобразованный столбец
В
) - Столбец неизвестных
- Столбец невязок
Для итерационных методов:
- Точность задается с
клавиатуры
/файла
- Проверка диагонального преобладания (В случае, если диагональное преобладание в изначальной матрице отсутствует — предлагается сделать перестановку
строк
/столбцов
до тех пор, пока преобладание не будет достигнуто. В случае невозможности достижения диагонального преобладания — выводить сообщение.) - Столбец неизвестных
- Количество итераций, за которое было найдено решение
- Столбец погрешностей
- Уравнения и системы задаются пользователем;
- Графики решений нелинейных уравнений;
- Одно уравнение решается разными методами (a, б, в, г) одновременно. Вместе с этим демонстрируется разница в решениях (сравнение методов);
- График решения системы уравнений заданным методом.
Варианты:
- Решение нелинейных уравнений:
- метод деления пополам
- метод хорд
- метод касательных
- метод простой итерации
- Решение систем нелинейных уравнений:
- метод Ньютона
- метод простой итерации
Варианты:
- Метод прямоугольников (должен быть реализован расчет 3мя модификациями: левые, правые, средние)
- Метод трапеций
- Метод Симпсона
Пользователь выбирает функцию, интеграл которой он хочет вычислить (3
-5
функций), из тех, которые предлагает программа.
В численный метод должен быть передан параметр-агрегат на подпрограмму вычисления значения функции в точке x.
Пользователь задает пределы интегрирования и точность.
NOTE!
Если нижний предел интегрирования >=
верхнего предела — интеграл должен считаться корректно!
В результате должны получить:
- значение интеграла
- количество разбиений, на которое пришлось разбить
- полученную погрешность
Для оценки погрешности использовать оценку Рунге
.
Варианты:
- Интерполирование многочленом Ньютона
- Интерполирование многочленом Лагранжа
- Интерполирование кубическими сплайнами
- Аппроксимация методом наименьших квадратов
Для интерполяции необходимо подготовить 3
-4
набора данных (в зависимости от функции).
Исходные данные должны быть подготовлены следующим образом:
- Берем функцию
- Берем точки
x
(точки необязательно упорядочены) - значение
y
получаем на основе данных выбранной функции
Например: берем sin(x)
- берем
3
-4
точки на интервале0
по2π
(шаг более или менее большой) - берем
8
-10
точек на интервале0
по2π
(уменьшаем шаг) - точки с предыдущего примера, только для одной точки изменяем значение
y
, например было0.8
, делаем-5
, смотрим как ведет себя интерполяция. - берем
8
-10
точек на интервале0
по50π
В итоге должны получить график, на котором одним цветом исходная функция (sin(x)
), а другим цветом полученный график в результате интерполяции, и на графике должны быть отмечены сами точки (узлы) интерполяции.
Интерполяционный график должен пройти через исходные эти точки.
Программа должна позволять найти значение y
(отдельное поле) для любого введенного x
(рассчитывается на основе построенного интерполяционного многочлена).
Для аппроксимации:
По пунктам так же как для интерполяции можно написать
- Задается произвольный набор значений пар (
x
,y
) - Задается аппроксимирующая функция
- Рассчитываются программой коэффициенты аппроксимирующей функции
- Производится вычисление точки с наибольшим отклонением
- Найденная точка исключается. Производится перерасчет коэффициентов аппроксимирующего многочлена (
см. п.3
). - Строится график, содержащий в себе две функции (
1
- до исключения,2
- после исключения и пересчёта) и набор заданных изначально точек (пар значений (x
,y
)) - Помимо этого, отдельно на экран выводятся полученные значения аппроксимирующих коэффициентов
Рассчитанные два раза коэффициенты аппроксимирующей функции также должны быть выведены на экран.
Варианты:
- Метод Эйлера
- Усовершенствованный метод Эйлера
- Метод Рунге-Кутта 4-го порядка
- Метод Адамса
- Метод Милна
Задается Об. Диф. Ур. вида y’ + f(x,y) = 0
, пользователь задает начальные условия (x_0
,y_0
), конец отрезка и точность.
Программа сама вычисляет шаг в зависимости от точности для нахождения массива значений x
и y
.
Используя интерполирование 3
-й работы строим график.
У кого 3
-я работа была аппроксимация, строит график по полученным данным, задав очень маленькую точность.
Не забудьте вставить примеры в отчет!
Пару примеров ОДУ - с заранее известным решением вида y = f(x)
, где изначально y’
зависело не только от х
.
Варианты:
- Обращение симметричной положительно определенной матрицы методом квадратного корня (метод Холецкого).
- Вычисление определенного интеграла по прямоугольной области. Под интегралом стоит функция
f(x,y)
, а интегрирование ведется поdx
,dy
. - Приближение сложной функции с помощью интерполяционного полинома Лагранжа. В этой постановке узлы интерполяции определяются как корни полинома Чебышева на заданном интервале приближения.
- Решение краевой задачи для линейного ДУ второго порядка вида
y'' + p(x)y' + q(x)y = f(x)
разностным методом (метод прогонки). - Решение краевой задачи для ОДУ первого порядка методом пристрелки.