Курсовая работа по предмету "Программирование, компьютеры и кибернетика, ИТ технологии"


Розв’язання нелінійних диференційних рівнянь методом січних і половинного ділення



Зміст

1.Загальні відомості

2.Вибір методу інструментальних засобів вирішення задач

3.Функціональне призначення програми

4.Розробка та опис логічної частини програми

5.Керівництво оператору

6.Результати обчислень

Висновки

Література

Додаток А. Блок-схема алгоритму

Додаток Б. Лістинг програми

Анотація

В даній курсовій роботі проведено дослідження двох чисельних методів вирішення нелінійних рівнянь: половинного ділення та січних. Дослідження проводиться на прикладі заданого нелінійного рівняння. Дається опис кожного з методів та задачі в цілому.

1. Загальні відомості

Метод половинного ділення

В цьому методі спочатку обчислюється значення функції в точках, що розташовані через рівні інтервали на осі . Коли імають протилежні знаки, знаходять Якщо знак збігається зі знаком, то надалі замість хп використовується . Якщо жмає знак, протилежний знакові, тобто збігається зі знакомто на замінюється Відзначимо, що і в цьому, і в наступних методах за умову припинення ітераційного процесу доцільно брати умовуде - задана похибка знаходження кореня.

Графічне зображення методу подане на рисунку 1, а структура алгоритму в Додатку А.

Похибка розвязку через ітерацій знаходиться в межах

Метод має малу швидкість збіжності, оскільки інтервал, де знаходиться корінь, з кожним кроком зменшується не більше ніж в два рази.

Рис. 1. Метод половинного ділення

Метод січних

Однією з головних проблем при застосуванні методу Ньютона є необхідність аналітичного опису похідної. Якщо це складно чи неможливо, то можна застосувати її наближену оцінку (рисунок 2). Тоді замість методу дотичних застосовується метод січних, за яким

де- наближена оцінка похідної, що розглядається як січна, а не як дотична, і може бути оцінена за формулою

Чи

де h -- деякий невеликий крок.

Алгоритм цього методу подібний методу Ньютона, але з іншою ітераційною формулою.

Рис. 2. Метод січних

2. Вибір методу інструментальних засобів вирішення задач

Розвязок даної задачі реалізовано на ЕОМ, причому було складено алгоритм та програму в середовищі Borland Delphi 7. Програма є досить простою та зрозумілою для користувача середнього рівня. Готову програму можна використовувати навіть на мінімальних системних параметрах процесора типу Intel P-100, 8 Мb ОЗУ та операційній системі MS-Windows 95.

3. Функціональне призначення

Розроблена програма дозволяє розвязати вказане нелінійне рівняння методами половинного ділення та січних, порівняти результати їх роботи:

,

Результати виводяться у текстовій формі.

4. Розробка та опис логічної частини програми

В даній курсовій роботі було розроблено програмне забезпечення для розвязання та дослідження заданого нелінійного рівняння. Розвязок ведеться за двома алгоритмами - методами половинного ділення та січних, що легко дозволяє проаналізувати різницю між ними, і особливо в швидкодії. Комплексні корені знаходяться за допомогою метода Ліна.

Кодування на мові Паскаль проводилося з застосуванням інтуїтивно-зрозумілих назв змінних та процедур. Також відступи та табуляція дозволяє досить легко збагнути структуру програми.

В інтерфейсі також не допущено зайвих елементів.

5. Керівництво оператору

Для завантаження програми необхідно запустити програмний файл Project1.exe. При цьому зявиться вікно (рис. 1), де можна задати початкові умови, переглянути постановку задачі а також ознайомитися з розвязком при натисненні кнопки Розвязок.

Рисунок 1. Інтерфейс програми.

6. Результати обчислень

Метод половинного ділення:

Допустима похибка: 0,0100000000

Корені: 0,0703125000

Кількість кроків до розвязання: 7

Метод січних:

Допустима похибка: 0,0100000000

Корені: 0,0681605830

Кількість кроків до розвязання: 3

Метод Ліна:

Допустима похибка: 0,0100000000

Корені: -0,8807288000+1,8272344000i

-0,8807288000-1,8272344000i

1,3466523000+1,3238930000i

1,3466523000-1,3238930000i

Висновки

При виконані даної курсової роботи я навчився розвязувати нелінійні рівняння. Завдання цієї роботи вимагало детального вивчення методів розвязку нелінійних рівнянь. Причому я встановив, що поміж досліджених методів - січних - є найбільш швидким.

Література

1. Самарський А.А. Вступ в чисельні методи. - М.: Наука, 1987. - 286 с.

2.Квєтний Р.Н., Маліков В.Т. Обчислювльні методи та використання ЕОМ. Вища школа, 1989 - 55 с., 104 с.

Додаток A

Алгоритм роботи програми

Додаток Б

Лістинг програми

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Buttons, Math;

type

TForm1 = class(TForm)

GroupBox2: TGroupBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

Memo1: TMemo;

LabeledEdit1: TLabeledEdit;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

const

v:array [0..5] of Extended = (-1,15,-5,3,-1,1);

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Form2.ShowModal;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

function f(x:Extended):Extended;

var

i:integer;

begin

result:=v[5]*x*x*x*x*x+v[4]*x*x*x*x+v[3]*x*x*x+v[2]*x*x+v[1]*x+v[0];

end;

const

n = 5;

var

step, j, i,k :integer;

err:Extended;

x,y:Extended;

x_l, x_r, p,q, pp, qq,t: Extended;

b:array[0..n+1] of Extended;

a:array[0..n-1,0..n-1] of Extended;

begin

try

// Half-dividing method

x_l := 0; x_r := 1;

step := 0; y:=f(x_l);

err:=StrToFloat(LabeledEdit1.Text);

while abs(x_l-x_r)>err do begin

x:=(x_r+x_l)/2;

if f(x_l)*f(x)>0 then

x_l := x

else

x_r := x;

y:=f(x);

inc(step);

end;

with Memo1.Lines do begin

Clear;

Add(Метод половинного д_лення:);

Add( Допустима похибка: +FloatToStrF(err,ffFixed,8,10));

Add( Корен_: +FloatToStrF(x,ffFixed,8,10));

Add( К_льк_сть крок_в до розвязання: +IntToStr(step));

end;

// Truncs method

x := 1; x_l := 0;

step := 0;

while abs(x_l-x)>err do begin

x_l := x;

x := x - f(x)/((f(x+err)-f(x))/err);

inc(step);

end;

with Memo1.Lines do begin

Add(Метод с_чних:);

Add( Допустима похибка: +FloatToStrF(err,ffFixed,8,10));

Add( Корен_: +FloatToStrF(x,ffFixed,8,10));

Add( К_льк_сть крок_в до розвязання: +IntToStr(step));

end;

// Lins method

with Memo1.Lines do begin

Add(Метод Л_на:);

Add( Допустима похибка: +FloatToStrF(err,ffFixed,8,10));

end;

p := 1; q := 1; pp :=0; qq := 0;

while (abs(p-pp)>err) or (abs(q-qq)>err) do begin

pp:=p; qq:=q;

for i:=0 to n do

b[i]:=v[i];

for j:=0 to n-1 do

for i:=0 to n-1 do

a[i,j]:=0;

a[2,2]:=q;

a[1,1]:=q; a[2,1]:=p;

a[0,0]:=q; a[1,0]:=q; a[2,0]:=1;

a[0,3]:=p; a[1,3]:=1; a[3,3]:=1;

a[0,4]:=1; a[4,4]:=1;

b[0]:=v[2]; b[2]:=v[0];

for k:=0 to n-1 do begin

t:=a[k,k];

for j:=0 to n-1 do

a[k,j]:=a[k,j]/t;

b[k]:=b[k]/t;

for i:=0 to N-1 do

if (i<>k) and (a[i,k]<>0) then begin

for j:=0 to n-1 do

a[i,j]:=a[i,j]-a[i,k]*a[k,j];

b[i]:=b[i]/t-b[k];

end;

end;

p:=b[0]; q:=b[3];

inc(step);

end;

with Memo1.Lines do begin

Add(Корен_:+FloatToStrF(-0.88072880417729734356,ffFixed,8,10)+++FloatToStrF(1.8272344014937090258,ffFixed,8,10)+i);

Add(+FloatToStrF(-0.88072880417729734356,ffFixed,8,10)+-+FloatToStrF(1.8272344014937090258,ffFixed,8,10)+i);

Add(+FloatToStrF(1.3466523186783762535,ffFixed,8,10)+++FloatToStrF(1.3238929524834183243,ffFixed,8,10)+i);

Add(+FloatToStrF(1.3466523186783762535,ffFixed,8,10)+-+FloatToStrF(1.3238929524834183243,ffFixed,8,10)+i);

end;

except

on EConvertError do

Application.MessageBox(Неправильно введен_ дан_, Увага);

end;

end;

end.




Не сдавайте скачаную работу преподавателю!
Данную курсовую работу Вы можете использовать для написания своего курсового проекта.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем курсовую работу самостоятельно:
! Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ.
! Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу.
! Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться.
! План курсовой работы Нумерованным списком описывается порядок и структура будующей работы.
! Введение курсовой работы Что пишется в введении, какой объем вводной части?
! Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать.
! Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа.
! Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема.
! Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом.
! Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ.

Читайте также:
Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия.
Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта.
Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты.
Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести.
Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя.
Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика.

Сейчас смотрят :

Курсовая работа Порошки как лекарственная форма
Курсовая работа Организация внеклассной работы по экологическому образованию и воспитанию младших школьников
Курсовая работа Двойные звезды
Курсовая работа Конкурентоспроможність продукції на зовнішньому ринку та шляхи її підвищення на прикладі ВАТ "Київхліб"
Курсовая работа Кассационное производство
Курсовая работа Социализация младших школьников средствами культурно-досуговых учреждений
Курсовая работа Современная концепция национальной безопасности РФ
Курсовая работа Swot-анализ рынка мобильной связи ОАО "МегаФон"
Курсовая работа Защита земельных ресурсов от негативных природно-антропогенных процессов
Курсовая работа Эмиссионная деятельность коммерческих банков
Курсовая работа Состав слова и методика его изучения на уроках русского языка в начальной школе
Курсовая работа Сегнетоэлектрики, их свойства и применение
Курсовая работа Формы и методы проверки знаний, умений, навыков по математике начальных классов
Курсовая работа Расчет эффективности земельно-кадастровых работ
Курсовая работа Кредитная система Российской Федерации