Сравнение эффективности различных методов решения систем линейных алгебраических уравнений. Метод Крамера и метод простой итерации

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

корни.

.3.Находим корни двумя способами.

.4.Сравниваем время, затраченное на решения первым и вторым способом.

 

1.5 Алгоритм решения (блок-схема)

 

Метод последовательных приближений:

 

Рисунок 1.1 - Блок-схема (метод последовательных приближений)

 

Метод касательных:

 

Рисунок 1.2 - Блок-схема (метод касательных)

 

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

 

.1 Реализация алгоритма решения

 

Программа состоит из двух форм (Form). frmMain - является главной формой программы, на которой расположены четыре компонента Label, четыре компонента Edit, один компонент Chart, два компонента Memo и четыре компонента Button. Компоненты Edit служат для ввода параметра, точности, начального и конечного значения отрезка, компонент Chart для построения графика, компоненты Memo для вывода результатов вычисления, компоненты Button для построения графика, нахождения корней, вывода справки и выхода, соответственно их надписям. Основное окно программы представлено на рисунке 2.1.

 

Рисунок 2.1 - Основное окно программы

 

При нажатии на кнопку "Справка" откроется окно справка - это третья форма программы. На этой форме расположен один компонент Memo и один компонент Button. Эта форма содержит сведения о программе и об авторе программы, кнопка расположена для закрытия справки. Окно справка представлено на рисунке 2.2.

Рисунок 2.2 - Окно справка

 

.2 Результат выполнения программы

 

При любом параметре a данное уравнение имеет бесконечное множество решений. Поэтому для выполнения условий, когда уравнение имеет один корень, много корней или не имеет корней, будем рассматривать функцию с определённым параметром a=1, выбирая различные отрезки.

Возьмём отрезок [0;6].

При параметре a=1 на этом отрезке будет находиться три корня. Следуя вышеуказанному алгоритму, мы вводим исходные данные, строим график и находим корни. Результат показан на рисунке 2.3. В результате выполнения мы получаем три различных корня.

Возьмём отрезок [1;4].

При параметре a=1 на этом отрезке будет находиться один корень. Следуя вышеуказанному алгоритму, мы вводим исходные данные, строим график и находим корни. Результат показан на рисунке 2.4. В результате выполнения мы получаем один корень.

Возьмём отрезок [7;9].

При параметре a=1 на этом отрезке корни отсутствуют. Следуя вышеуказанному алгоритму, мы вводим исходные данные, строим график и находим корни. Результат показан на рисунке 2.5. В результате выполнения мы видим, что на отрезке корней нет.

Рисунок 2.3 - Результат выполнения алгоритма

 

Рисунок 2.4 - Результат выполнения алгоритма

 

Рисунок 2.5 - Результат выполнения алгоритма

Если взять отрезок [-5;0], то, выполняя алгоритм, программа не сможет уточнить один из корней методом последовательных приближений (рисунок 2.6). Это объясняется тем, что корень находится вблизи точки бесконечного разрыва, в котором функция имеет большую по модулю производную. Это оказывает влияние на условие |S (x)| < 1.

 

Рисунок 2.6 - Результат выполнения алгоритма

 

ЗАКЛЮЧЕНИЕ

 

Цель данной курсовой работы разработка проекта по вычислению корней нелинейных уравнений методом касательных и методом отделения корней, в среде программирования Delphi. Сравним полученные результаты при вычислении.

В задании требуется: коэффициент a подобрать самостоятельно так, чтобы уравнение не имело корней, имело один корень, имело более одного корня.

В первом двух случаях уравнение имеет три корня и один корень на отрезках [0;6] и [1;4] соответственно(при параметре a=1), и как мы видим на рисунках 2.3 и 2.4 количество итераций методом последовательных приближений значительно больше чем количество итераций методом касательных(119>41;50>15). Время выполнения методом последовательных приближений также больше чем методом касательных (0,0468>0,0297; 0,0188>0,0140). Следовательно, можно сказать, что скорость выполнения алгоритма метода касательных выше чем метода последовательных приближений. Найденные корни x1=0,1210135632, x2=3,6600989630, x3=5,3408862820. В третьем случаи на отрезке [7;9](при параметре a=1) уравнение не имеет корней, т.к. на графике(при увеличении) видно что функция не пересекает ось Ох(имея точку бесконечного разрыва).

Проанализировав полученные результаты можно сделать следующий вывод, что метод касательных вычисляет корни быстрее метода последовательных приближений, а, значит, этот метод является более эффективным. Практическое применение данной программы возможно в научно-исследовательской работе. Т.к. решение таких уравнений с помощью обычного калькулятора и карандаша с бумагой замедлит работу, а использование этой программы существенно облегчит работу.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

1.Бобровский, С. И. Delphi 7. Учебный курс - СПб.: Питер, 2004. - 238 c.: ил.

.Фленов, М. Е. Библия Delphi. - 2-е изд., перераб. И доп. - СПб.: БХВ-Петербург, 2008. - 800 с.: ил.

.Кудряшов, Н. А. Аналитическая теория нелинейных дифференциальных уравнений. Москва-Ижевск: Институт компьютерных исследований, 2004. - 429 с.: ил.

.Полянин, А. Д., Зайцев, В. Ф. Справочник по нелинейным уравнениям математической физики. М.: Физматлит, 2002. - 315 с.: ил.

 

ПРИЛОЖЕНИЕ

 

Листинг программыkurs;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls,math,, XPMan;= class(TForm): TChart;: TEdit;: TLabel;: TEdit;: TLabel;: TLabel;: TEdit;: TFastLineSeries;: TButton;: TButton;: TMemo;: TMemo;: TButton;: TEdit;: TLabel;: TButton;FormCreate(Sender: TObject);btn4Click(Sender: TObject);Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Cl