Численные методы решения уравнений и систем уравнений
МИНОБРНАУКИ РОССИИ
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
"ИЖЕВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ Им.М.Т. Калашникова"
Кафедра "Программное обеспечение"
Лабораторная работа
по дисциплине "Вычислительные методы"
на тему "Численные методы решения уравнений и систем уравнений"
Выполнил: Кузнецов А.В.
ст. гр. Б03-191-1
Принял: Коробейников А.В.
доцент, к. т. н.
Ижевск 2012
Содержание
1. Метод половинного деления
1.1 Постановки задачи
1.2 Краткое описание метода выполнения
1.3 Алгоритм решения задачи
1.4 Описание программы
1.4.1 Структура входных данных
1.4.2 Структура выходных данных
1.5 Листинг текста программы
1.6. Контрольные примеры
1.7 Выводы
2. Метод ГАУСА
2.1 Постановка задачи
2.2 Алгоритм решения задачи
2.3 Описание программы
2.3.1 Структура входных данных
2.3.2 Структура выходных данных
2.4 Листинг текста прораммы
2.5 Контрольные примеры
2.6 Выводы
1. Метод половинного деления
1.1 Постановки задачи
Запрограммировать метод половинного деления и вычислить один корень уравнения xsinx-1=0 (рисунок 1.1) с точностью до 0,001.
Рисунок 1.1
1.2 Краткое описание метода выполнения
Метод половинного деления один из методов решения нелинейных уравнений и основан на последовательном сужении интервала, содержащего единственный корень уравнения F (x) =0 до того времени, пока не будет достигнута заданная точность Е. Метод используется при решении квадратных уравнений и уравнений высших степеней.
1.3 Алгоритм решения задачи
Пусть задан отрезок [а,b], содержащий один корень уравнения. Этот отрезок может быть предварительно найден с помощью шагового метода.
численный метод уравнение программа
1. Определить новое приближение корня х в середине отрезка [а,b]: c= (а+b) /2.
. Найти значения функции в точках а и х: F (a) и F (c).
. Проверить условие F (a) *F (c) < 0. Если условие выполнено, то корень расположен на отрезке [а,c]. В этом случае необходимо точку b переместить в точку х (b=c). Если условие не выполнено, то корень расположен на отрезке [c,b]. В этом случае необходимо точку а переместить в точку c (а=c).
. Перейти к пункту 1 и вновь поделить отрезок пополам. Алгоритм продолжить до того времени, пока не будет выполнено условие |F (x) | < e.
1.4 Описание программы
1.4.1 Структура входных данных
Имя переменнойТипКакую функцию выполняетAДробное числоНачало отрезкаBДробное числоКонец отрезкаEДробное числоЗаданная точность
1.4.2 Структура выходных данных
Имя переменнойТипКакую функцию выполняетcДробное числоПриближенный корень
1.5 Листинг текста программы
#include <stdio. h>
#include <math. h>
#include <iostream>namespace std;function (double x)
{(x*sin (x) - 1);
}main ()
{a,a2,b,b2,c,e;<<"Enter a: ";>>a;<<"Enter b: ";>>b;<<"Enter e: ";>>e;= (a+b) /2;( (fabs (b-a) >e) && (function (c)! =0))
{(function (a) *function (c) <0) b=c;a=c;= (a+b) /2;
}<<"\nC="<<c<<endl;0;
}
1.6. Контрольные примеры
1.7 Выводы
Корни, найденные с помощью программы, сходятся с корнями, полученными аналитически, значит, программа работает корректно.
2. Метод ГАУСА
2.1 Постановка задачи
Запрограммировать метод Гауса и вычислить корни для матрицы вида:
=
2.2 Алгоритм решения задачи
Суть метода Гауса заключается в последовательном исключении неизвестных. Пусть в системе уравнений (рисунок 2.1) первый элемент a11 (0) не равен 0.
Рисунок 2.1
Назовем его ведущим элементом первой строки. Поделим все элементы этой строки на a11 (0) и исключим x1 из всех последующих строк, начиная со второй, путем вычитания первой (преобразованной), умноженной на коэффициент при x1 в соответствующей строке. Получим следующий вид (рисунок 2.2).
Рисунок 2.2
Если a22 (1), то, продолжая аналогичное исключение, приходим к системе уравнений с верхней треугольной матрицей (рисунок 2.3).
Рисунок 2.3
Из нее в обратном порядке находим все значения xi (рисунок 2.4)
Рисунок 2.4
Процесс приведения к системе с треугольной матрицей называется прямым ходом, а нахождения неизвестных - обратным.
2.3 Описание программы
2.3.1 Структура входных данных
Имя переменнойТипКакую функцию выполняетaДвумерный массив дробных чиселЭлементы матрицы
2.3.2 Структура выходных данных
Имя переменнойТипКакую функцию выполняетxМассив дробных чиселКорни системы уравнений
2.4 Листинг текста прораммы
#include <iostream>
#include <stdlib. h>namespace std;main ()
{int n=3; // Размерность системыa [3] [4] ={{0.20, 0.44, 0.81, 0.74},{0.58, - 0.29, 0.05, 0.02},{0.05, 0.34, 0.10, 0.32}};i,j,k;buf,x [n];(i=0; i<n; i++)
{(j=0; j<n+1; j++)
{("%6.2f", a [i] [j]);
}("\n");
}
// Прямой ход метода Гаусса(i=0; i<n-1; i++)(j=i+1; j<n; j++)
{=a [i] [i] /a [j] [i];(k=0; k<=n; k++)[j] [k] =a [j] [k] *buf-a [i] [k];
}
// Обратный ход метода Гаусса[n-1] =a [n-1] [n] /a [n-1] [n-1];(i=n-2; i>=0; i--)
{=0;(j=i+1; j<n; j++)+=a [i] [j] *x [j];[i] = (a [i] [n] - buf) /a [i] [i];
}<< endl << "Reshenie: " << endl;(i=0; i<n; i++)("%5.2f \n", x [i]);
}
2.5 Контрольные примеры
2.6 Выводы
Корни, найденные с помощью программы, сходятся с корнями, полученными аналитически, значит, программа работает корректно.
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Практическое задание
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2017 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ