41309

Численные методы и компьютерные технологии решения нелинейных уравнений

Лабораторная работа

Информатика, кибернетика и программирование

За приближенное значение корня принимается точка пересечения хорды АВ с осью абсцисс. Координата этой точки находится из уравнения этой хорды АВ рис. В точке пересечения хорды АВ с осью абсцисс . К уравнению хорды Далее сравниваются значения функции на левой границе и в точке пересечения хорды АВ с осью абсцисс по знаку.

Русский

2013-10-23

471 KB

3 чел.

Содержание

  1.  Цель работы…………………………………………………………….....3
  2.  Задание………………………………………………………………….....3
  3.  Основные сведения о методе Хорд…….………………………………..3
  4.  Блок-схема алгоритма ...………………………………………………….5
  5.  Текст программы ….………………………………………………….......6
  6.  Результаты решения задачи в УМС MathCad………………………….....7
  7.  Список литературы…………………………………………………….…8


  1.  Цель работы

Изучение численных методов и компьютерных технологий решения нелинейных (алгебраических и трансцендентных) уравнений, приобретение практических навыков составления алгоритмов, программ и работы на ЭВМ..

  1.  Задание
  2.  Изучить численные методы и компьютерные технологии решения нелинейных уравнений.
  3.  Составить алгоритм и программу решения уравнения. Предусмотреть ограничение допустимого количества итераций и вывод числа итераций на печать.
  4.  Ввести программу в ЭВМ, отладить и выполнить программу на ЭВМ для различных значений точности.
  5.  Построить зависимость числа итераций от точности решения уравнения
  6.  Решить данное уравнение с использованием универсальной математической системы (УМС) Mathcad.

№ вар

Уравнение

Интервал

[a;b]

Метод решения

Точность

2

[0; 2]

Хорд

  1.  Основные сведения о методе Хорд

Процесс уточнения корня уравнения методом хорд иллюстрируется построениями на рис. 1.7. В этом методе нелинейная функция на заданном отрезке интерполируется уравнением прямой. За приближенное значение корня принимается точка пересечения хорды АВ с осью абсцисс. Координата этой точки находится из уравнения этой хорды АВ (рис. 1.8):

.

В точке пересечения хорды АВ с осью абсцисс . Тогда

 

или

.   (1.3)

y

a

f(a)

f(x)

A

B

b

x

x0

f(b)

x1

x2

a

f(b)

f(x)

A

B

b

x

x

f(a)

Рис. 1.7. Метод хорд  Рис. 1.8. К уравнению хорды

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

Аналогичную (1.3) формулу для нахождения точки пересечения хорды АВ с осью абсцисс можно получить, если за базовую принять правую границу. В этом случае координата точки пересечения хорды АВ с осью абсцисс также находится из уравнения прямой АВ (рис. 1.8):

.

В точке пересечения хорды АВ с осью абсцисс значение . С учетом этого

.

Или

.   (1.4)

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

Применяя формулу (1.3) или (1.4) многократно, последовательно находят приближения корней . Условием окончания процесса уточнения корня служат неравенства

.  (1.5)

Алгоритм метода хорд представлен на рис. П1,б.

Метод хорд в ряде случаев обеспечивает более быструю сходимость, чем метод половинного деления.

  1.  Блок-схема алгоритма

Рис.1 Решение нелинейного уравнения методом хорд

  1.  Текст программы

program lab5;

uses crt;

label 1,2,3;

var a,b,x,x1,y1,y2,y3,e1,e2:real;

   n1,n:integer;

begin

clrscr;

writeln('Нахождение f(x)=0.25*exp(3*ln(x))+x-1.2502=0') ;

writeln('интервал от О до 2') ;

a:=0; b:=2;

write('Введите e1=');

readln(e1);

write('Введите e2=');

readln(e2);

write('Введите n1 =');

readln(n1);

y1:=0.25*a*a*a+a-1.2502;

x1:=a;

y2:=0.25*exp(3*ln(b))+b-1.2502;

n:=0;

2:

n:=n+1;

if n>n1 then begin writeln('n>n1'); goto 3;end;

x:=a-y1*(b-a)/(y2-y1);

y3:=0.25*exp(3*ln(x))+x-1.2502;

if abs(y3)<=e1 then begin writeln('по е1'); goto 1;end

  else        begin

              if y1*y2<0 then begin b:=x; y2:=y3; end

                         else begin a:=x; y1:=y3; end;

              if abs(x-x1)<=e2 then begin writeln('по е2'); goto 1;end

              else begin x1:=x; goto 2; end;

              end;

1:

writeln('Ответ: x=',x:5:2,' y3=',y3);

writeln('количество циклов =',n);

3:end.

  1.  Результаты решения задачи в УМС MathCad

Рис.2 График зависимости

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

1. Турчак Л.И. Основы численных методов: учеб. пособие для вузов/ Л.И. Турчак, П.В. Плотников. – 2-е изд., перераб. и доп. – М.: Физматлит, 2003. – 304 с.: ил. (Первое издание – 1987 г.)

2. Амосов А.А. Вычислительные методы для инженеров: учеб. пособие/ А.А. Амосов, Ю.А. Дубинский, Н.В. Копченова. – 2-е изд., доп. – М.: Изд-во МЭИ, 2003. – 596 с.: ил. (Первое издание – 1994 г.)

3. Макаров Е.Г. Инженерные расчеты в Mathcad (+СD)/ Е.Г. Макаров. – СПб.: Питер, 2007. – 592 с.: ил. +CD-ROM

4. Поршнев С.В. Численные методы на базе Mathcad/ С.В. Поршнев, И.В. Беленкова. – СПб.: БХВ-Петербург, 2005. – 464 с.: ил.

5. Николаев Н.Н. Вычислительная математика (Линейная алгебра. Приближенное представление функций): конспект лекций/ Н.Н. Николаев. Чуваш. ун-т. – Чебоксары, 1996. – 64 с.: ил.

6. Николаев Н.Н. Вычислительные методы. Определенные интегралы, нелинейные и дифференциальные уравнения: конспект лекций/ Н.Н. Николаев. Чуваш. ун-т. – Чебоксары, 2010. 96 с.: ил.

7. Николаев Н.Н. Основы работы в системе MATHCAD: вычислительные методы: лаб. практикум/ Н.Н. Николаев. – Чебоксары: Изд-во Чуваш. ун-та, 2011. – 116 с.


 

А также другие работы, которые могут Вас заинтересовать

69711. Конструктори 34 KB
  Конструктор призначений для ініціалізації об’єкту і викликається автоматично при його створенні. Основні властивості конструкторів. Конструктор не повертає значення, навіть типу void. Не можна отримати покажчик на конструктор.
69712. Дружні функції 25 KB
  Метод як правило використовується для реалізації властивостей об’єкту а у вигляді дружніх функцій оформляються дії не представляючі властивості класу але концептуально що входять в його інтерфейс і потребуючі в доступі до його прихованих полів наприклад перевизначення операції...
69713. Громадсько-політична діяльність Юліана Романчука (1842–1932) 130.5 KB
  Формування політичних поглядів Ю. Романчука, його кар’єра як політичного лідера, парламентська діяльність, робота в національно-культурних та економічних інституціях, видавничій та публіцистичних сферах, роль у визвольних змаганнях 1914–1923 рр.
69714. Адвокатура в кримінальному процесі 114 KB
  Адвокат - захисник підозрюваного, обвинувачуваного, підсудного. Конституція України – головні принципи забезпечення підозрюваному, обвинувачуваному, підсудному права на захист, презумпцію невинуватості та змагальності. Адвокат – представник по потерпілого, цивільного позивача і цивільного відповідача.
69715. Вказівники на об’єкти 27.5 KB
  Як відомо, при збільшенні покажчика на одиницю він переміщається на наступний елемент того ж типу. Наприклад, цілочисельний покажчик посилатиметься на наступне ціле число. Як правило, адресна арифметика залежить від типу покажчика. (Інакше кажучи, вона залежить від типа даних, на які посилається покажчик.).
69716. Виділення пам’яті для об’єктів 42 KB
  Використовуючи оператора new, можна динамічно виділяти пам’ять для об’єктів. В цьому випадку оператора поверне покажчик на створений об’єкт. Динамічно створений об’єкт нічим не відрізняється від інших. При його створенні також викликається конструктор...
69717. Стандартні виключення 27.5 KB
  Всі конструктори і методи мають специфікацію, що забороняє генерацію виключень. Функція-метод what() видає рядок-повідомлення про помилку. Передбачається, що виключення типу logicerror сигналізують про помилки в логіці програми, наприклад про невиконання деякої умови.
69718. Вкладені блоки try-catch 28 KB
  При обробці дійсно складних виключень, ви можете зацікавитися можливістю вкладати блоки try і оператори catch всередину інших операторів catch. C++ допускає вкладені блоки try, іншими словами, ви можете згенерувати нове виключення при обробці попереднього.
69719. Обробка несподіваних виключень 27.5 KB
  У програмі оголошені функції badnews, solver і main. Прототип функції solver перераховує виключення, що генеруються в цій функції. Проте ця функція генерує несподіване виключення, коли викликає функцію badnews.