Варианты:
- Метод Гаусса
- Метод Гаусса с выбором главного элемента
- Метод простых итерации
- Метод Гаусса-Зейделя
Размерность 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)разностным методом (метод прогонки). - Решение краевой задачи для ОДУ первого порядка методом пристрелки.