Наближене розв’язання нелінійного рівняння (метод дотичних)

Автор работы: Пользователь скрыл имя, 24 Декабря 2013 в 23:56, курсовая работа

Описание работы

При решении задач математической физики (при исследовании колебаний стержней, пластин и оболочек, при изучении тепловых полей и т.д.) с использованием метода Фурье, возникает необходимость решения трансцендентных уравнений. Большинство задач инерции движения твердых тел сводятся к решению алгебраических уравнений n-ой степени.
Решение некоторых задач непосредственно сводятся к нахождению корней трансцендентных уравнений. Например, простейшая цепь (рис.1) состоит из источника έ, нелинейного элемента (диод, транзистор и т.д.) RH и резистора нагрузки с сопротивлением R. Необходимо найти ток в цепи IA и напряжение на нелинейном элементе UА.

Содержание работы

3. Введение …………………………………………….…………………………. 3
4. Постановка задачи:
4.1. Обзор существующих методов …………………….……….……………. 4
4.2. Анализ метода касательных (метода секущих Ньютона) …………….…6
4.3. Решение нелинейного уравнения аналитически ………………..………..7
5.Описание алгоритма решения задачи:
5.1. Описание пользовательских идентификаторов ……………..…………...11
5.2. Блок-схема программы ………………………………………..…………...12
5.3. Описание блок-схем ………………………………………..………..…….15
6. Тестирование программы на контрольном примере ………………..…..........16
7. Сравнительный анализ данных ручного просчета и
машинных экспериментов ……………………………………………..……....18
8. Описание программного обеспечения:
8.1. Описание ОС …………………………………..…………………………...18
8.2. Описание среды программирования ……………..……………………….20
8.3. Описание программных модулей ………………..………………………..21
9. Вывод ……………………………………………………..……………………...22
10. Список литературы ……………………………

Файлы: 1 файл

Kursovaya_metod_kasatelnux.doc

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

           Было выяснено, что метод касательных удобно применять для решения нелинейных уравнений.

          Алгоритм решения задачи достаточно прост и его удобно представить в блок-схемах, на основе которых и составлялась в дальнейшем программа. Объем программы невелик, поэтому в качестве носителя могла использоваться дискета.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10. Список литературы

 

1. Алексеев В.Е., Ваулин А.С., Петрова Г.Б. – Вычислительная  техника и программирование. Практикум по программированию: Практ.пособие/-М.: Высш.шк., 1991.-400с.

2. Вычислительная техника и программирование: Учебник для техн. вузов/ Петров А.В., Алексеев В.Е., Ваулин А.С. и др.-М.: Высш.шк., 1990-479 с.

3. Гусев В.А., Мордкович А.Г. – Математика:   Справ.       материалы: кн.для учащихся-2-е изд.М.:Просвещение, 1990.-416 с.

4. Методичні указання (ДонНУ), с.25-30

5. А.Гарнаев «Exel, VBA, Internet в экономике и финансах»: Санкт-Перергург,2001 г.

6. «Введение в С++» Бьярн Страуструп (электронная версия).

7. «Учимся программировать на Pascal»,Ален Голуб,учебник.

8. «Turbo Pascal» Валерий Фаронов, Санкт-Петербург,2003.

9. «Алгоритмические трюки для программистов», Генри С. Уоррен младший (электронная версия).

10. «Использование шаблонов в Pascal» статья на сайте Гречина А.А. 2005 г.

 

 

 

 

 

 

 

 

 

 

 

 

 

11.Приложение

(Листинги программы)

 

program metod;

uses crt; 

var xn,xn1,a,b,eps:real; 

m1,m2:integer;

function f(x:real):real

begin

f:=x*x*x*x-x*x*x-2*x*x+3*x-3;

end;

function f1(x:real):real

begin

f1:=4*x*x*x-3*x*x-4*x+3;

end;

function f2(x:real):real;

begin

f2:=12*x*x-6*x-4;

end;

begin

clrscr;

a:=-2;b:=-1;eps:=0.0000000001;m1:=0;

      m2:=56;

writeln('Ot A=',a,' do B=',b);

writeln('Pogrewnost E ',eps:15:10);

readln;

if f(a)*f2(a)>0

then xn:=a

else xn:=b;

xn1:=xn-f(xn)/f1(xn);

while abs(xn1-xn)>sqrt(2*m1*eps)/M2 do

begin

   xn:=xn1;

   xn1:=xn-f(xn)/f1(xn);

   writeln('xn=',xn:15:10,'  xn+1=',xn1:15:10,' f(xn+1)=',f(xn1):15:10);

   readln;

end;

writeln('Kon.znach');

writeln('xn1=',xn1:15:10,'f(xn1)=',f(xn1):15:10);

readln;

writeln('Vtoroy koren');

a:=1;b:=2;eps:=0.0000000001;m1:=0;

      m2:=32;

writeln('Ot A=',a,' do B=',b);

writeln('Pogrewnost E ',eps:15:10);

readln;

if f(a)*f2(a)>0

then xn:=a

else xn:=b;

xn1:=xn-f(xn)/f1(xn);

while abs(xn1-xn)>sqrt(2*m1*eps)/M2 do

begin

   xn:=xn1;

  xn1:=xn-f(xn)/f1(xn);

   writeln('xn=',xn:15:10,'  xn+1=',xn1:15:10,' f(xn+1)=',f(xn1):15:10);

   readln;

end;

writeln('Kon.znach');

writeln('xn1=',xn1:15:10,'f(xn1)=',f(xn1):15:10);

 readln;

end.

 

 




Информация о работе Наближене розв’язання нелінійного рівняння (метод дотичних)