Автор работы: Пользователь скрыл имя, 10 Января 2013 в 10:46, курсовая работа
В отличие от систем линейных уравнений для систем нелинейных уравнений не известны прямые методы решения. Лишь в отдельных случаях систему можно решить непосредственно. Например, для системы из двух уравнений иногда удается выразить одно неизвестное через другое и таким образом свести задачу к решению одного нелинейного уравнения относительно одного неизвестного. Поэтому итерационные методы для нелинейных систем приобретают особую актуальность.
Введение
1.Численные методы решений систем нелинейных уравнений
1.Решение систем нелинейных уравнений
2.Метод Ньютона–Рафсона
3Метод спуска
4.Метод простой итерации и метод Зейделя
2.Задача о провисании цепи
1.Постановка задачи
2.Вывод уравнения цепной линии
3.Вычисление длины плоской линии
3 Программная реализация решений задач
3.1 Программная реализация решения задачи о провисании цепи
3.1.1 Описание программы
3.1.2 Тестирование программы
3.2 Программная реализация метода Ньютона – Рафсона
3.2.1 Описание программы
3.2.2 Тестирование программы
Заключение
Список использованных источников и литературы
Приложение А Листинг программы «Задача о провисании цепи»
Приложение Б Листинг программы «Метод Ньютона – Рафсона»
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:=FloatToStr(0);
Edit2.Text:=FloatToStr(0);
Edit3.Text:=FloatToStr(0.001);
end;
//метод итераций
procedure TForm1.Button1Click(Sender: TObject);
begin
X:=0;
Y:=0;
{вот такие начальные
X0 := StrToFloat(Edit1.Text);
Y0 := StrToFloat(Edit2.Text);
eps:= StrToFloat(Edit3.Text);
if (X0>0.6) or (Y>0.6)then
begin
MessageBox(0,'Введите правильное начальное
приближение','Ошибка',MB_OK+
exit;
end;
{поехали...}
X := ReturnF(1,Y0,X0);
Y := ReturnF(2,Y0,X);
CounterIter := 1;
while (power((power((X-X0),2)+power(
begin
X0 := X;
Y0 := Y;
X := ReturnF(1,Y0,X0);
Y := ReturnF(2,Y0,X0);
inc(CounterIter);
end;
Memo1.Clear;
if (power((power((X-X0),2)+power(
begin
Memo1.Lines.Add('Заданная точность достигнута');
end else
begin
Memo1.Lines.Add('Заданная точность не достигнута');
end;
Memo1.Lines.Add('Количество итераций: '+IntToStr(CounterIter));
Memo1.Lines.Add('X
= '+FloatToStrF(x,ffgeneral,5,8)
Memo1.Lines.Add('Y
= '+FloatToStrF(y,ffgeneral,5,8)
end;
//"защита от дурака"
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9', #8, '-', ',']) then key:=#0;
end;
end
1 Вержбицкий В.М., Численные методы (линейная алгебра и нелинейные уравнения) / Изд. – Москва, «Высшая школа», 2000. – С.451.
2 Бахвалов Н.С., Численные методы в задачах и упражнениях / Изд. – Москва, «Высшая школа», 2000. – С.76.
3Фильчаков П.Ф., Численные методы / Изд. – Киев: Наукова думка, 1976. – С.148.
4Киреев В.И., Пантелеев А.В., Численные методы в примерах и задачах./ Изд. – М.: Высш. шк.,2004. – С.480.
5Дубровская Н.С., Численные методы. / Изд.: – М.: Наука, 2001. – С.123.
6Абрамов С.А., Зима Е.В., Начала программирования / Изд. – М.: Наука, 1987. – С.112.
7 Киреев В.И., Пантелеев А.В., Численные методы в примерах и задачах. / В.И. Киреев. Изд. – М.: Высш. шк., 2004. – С.480.
8Волков Е.А., Численные методы / Изд. – М.: Наука, 1997 – С.125
9 Фильчаков П.Ф., Численные методы / П. Ф. Фильчаков. Изд. – Киев: Наукова думка, 1976. – C.148.
10 Вержбицкий В.М., Численные методы (линейная алгебра и нелинейные уравнения) / Изд. – Москва, «Высшая школа», 2000. – C.451.
11 Жидков, Кобельков, Численные методы / Изд. – М: Наука, 1970.– C.664.
12 Киреев В.И., Пантелеев А.В., Численные методы в примерах и задачах. / В.И. Киреев. Изд. – М.: Высш. шк., 2004. – С.480.
13 Корн Г., Корн, Т. Справочник по математике / Т. Корн. Изд. – М: Наука, 1984. – С.324.
Информация о работе Численное решение и программная реализация задачи о провисании цепи