Численное решение и программная реализация задачи о провисании цепи

Автор работы: Пользователь скрыл имя, 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 Тестирование программы
Заключение
Список использованных источников и литературы
Приложение А Листинг программы «Задача о провисании цепи»
Приложение Б Листинг программы «Метод Ньютона – Рафсона»

Вложенные файлы: 1 файл

Габдрахимова М41.docx

— 410.50 Кб (Скачать файл)

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+MB_ICONERROR);

   exit;

  end;

    {поехали...}

  X := ReturnF(1,Y0,X0);

  Y := ReturnF(2,Y0,X);

  CounterIter := 1;

  while (power((power((X-X0),2)+power((Y-Y0),2)),(1/2))) >= eps do

  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((Y-Y0),2)),(1/2))) <= eps  then

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.

 


Информация о работе Численное решение и программная реализация задачи о провисании цепи