Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Розв’язання нелінійних диференційних рівнянь методом січних і половинного ділення
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Добавлен 05:30:39 29 ноября 2009 Похожие работы
Просмотров: 596 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Зміст

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;

// Trunc's 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;

// Lin's 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.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений06:41:13 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
19:48:27 28 ноября 2015

Работы, похожие на Курсовая работа: Розв’язання нелінійних диференційних рівнянь методом січних і половинного ділення

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(150011)
Комментарии (1830)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru