66871

Решение алгебраических и трансцендентных уравнений. Метод половинного деления

Контрольная

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

Анализ технического задания Для выполнения задания требуется: Найти область определения функции корень. Блок-схема алгоритма Блок-схема функции представлена на рисунке 2. Выполняемые функции реализует алгоритм нахождения корня уравнения.

Русский

2014-08-29

499 KB

9 чел.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)» в г. Смоленске

Кафедра информатики

Расчетное задание

По курсу «Информатика и программирование»

1 семестр

Студент:

Корнеева М.И.

Группа:

ПИЭ-10

Преподаватель:

Нестеров А.П.

Вариант:

12

Смоленск, 2010


Задание 1. Решение алгебраических и трансцендентных уравнений

  1.  Теоретическое введение

В практических вычислениях часто приходиться решать уравнения вида:

F(x) =0,                                                                                                                                (1)

где F(x) определена и непрерывна на некотором конечном или бесконечном интервале a<x<b.

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

Всякое значение x, обращающее функцию F(x) в нуль, называется корнем уравнения (1), а способ нахождения этого значения x и есть решение уравнения.

Найти корни уравнения вида (1) точно удается лишь в частных случаях. Поэтому разработаны методы численного решения уравнения вида (1), которые позволяют отыскать приближенные значения корней этого уравнения.

Для заданного уравнения применяется метод половинного деления.

Метод половинного деления.

Для нахождения корня (1), принадлежащего отрезку [a;b], делим отрезок пополам, т.е. выбираем начальное приближение равным x0=(a+b)/2. Если F(x0)=0, то x0 является корнем уравнения. Если F(x0)<>0, то выбираем тот отрезок [a;x0] или [x0;b], на концах которого функция F(x) имеет противоположные знаки. Полученный отрезок снова делим пополам и проводим то же рассмотрение и т.д.

Процесс деления отрезков пополам продолжается до тех пор, пока длина отрезка, на концах которого функция имеет противоположные знаки, не будет меньше наперед заданного числа eps.

  1.  Техническое задание

Найти корень уравнения y = sin(ln(x))- cos(ln(x)) + 2ln(x), расположенный на найденном отрезке, с абсолютной погрешностью eps методом половинного деления.

  1.  Анализ технического задания

Для выполнения задания требуется:

  •  Найти область определения функции, корень.
  •  Определить способ задания входных  параметров – ввод с экрана.

Решение задачи требует выполнить метод половинного деления, описанного в теоретическом введении.

  1.  Блок-схема

Блок-схема алгоритма представлена на рисунке 1.

   

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

Блок-схема функции  представлена на рисунке 2.

Рисунок 2. Блок-схема алгоритма

  1.  Модульная структура программы

Модульная структура программы изображена на рисунке 3.

Рисунок 3. Модульная структура программы

  1.  Спецификация на программные модули

Модуль 1.

  1.  Имя модуля TForm1.Button1Click(Sender: TObject).
  2.  Имя вызывающего модуля Unit1.
  3.  Выполняемые функции – реализует алгоритм нахождения корня уравнения.
  4.  Входные данные – a, b, eps.
  5.  Выходные данные – x.
  6.  Особенности, ограничения – координата начала отрезка должна быть больше нуля.

Модуль 2.

  1.  Имя модуля F.
  2.  Имя вызывающего модуля – TForm1.Button1Click(Sender: TObject).
  3.  Выполняемые функции – вычисление значения функции.
  4.  Входные данные – x.
  5.  Выходные данные – F.
  6.  Особенности, ограничения – значение входного параметра x должно быть больше нуля.

Модуль 3.

  1.  Имя модуля Unit1
  2.  Имя вызывающего модулянет.
  3.  Выполняемые функции – обеспечивает работу всех модулей.
  4.  Входные данные – нет.
  5.  Выходные данные – нет.
  6.  Особенности, ограничения нет.
  7.  Текст программы

procedure TForm1.Button1Click(Sender: TObject);

var a, b, x0, x, Eps:Real;

function F(x:Real):real;

begin

 F:=sin(ln(x))-cos(ln(x))+2*ln(x);

end;

begin

 a:=StrToFloat(edit1.Text);      {начало отрезка}

 b:=StrToFloat(edit2.Text);      {конец отрезка}

 eps:=StrToFloat(edit3.Text);    {абсолютная погрешность}

if (F(a)*F(b)>=0) then

edit4.Text:='на заданном отрезке корней нет'

else

begin

if F(a)=0 then x:=a

else

begin

 if F(b)=0 then x:=b

 else

 begin

   x0:=(a+b)/2;

   while (f(x0)<>0) and (Abs(b-x0)>=eps) do

   begin

     if (F(a)*F(x0)<0) then b:=x0

     else a:=x0;

     x0:=(b+a)/2;

   end;

   x:=x0

 end;

end;

edit4.Text:=FloatToStr(x);

end;

end;

end.

  1.  Результаты тестирования

С использование программы MathCad был найден корень заданной функции. Изображение экрана с результатом представлено на рисунке 4.

Рисунок 4. Изображение экрана с результатом.

Разработанная программа была протестирована в двух режимах: корректные значения, не корректные значения. Граничные значения отсутствуют. Результаты представлены в таблице 1.

Таблица 1. Результаты тестирования.

Режим тестирования

a

b

eps

Результат

Корректные значения

1

0,2

1,2

4

6

4

0,001

0,00004

0,01

1,374267578125

1,37487258911133

1,36953125

Не корректные значения

s

4

0,001

Ошибка – неверный формат

Вывод: программа работает верно.

  1.  Заключение

В ходе проделанной работы был освоен способ нахождения корня уравнения методом половинного деления.


Задание 2. Вычисление конечных сумм.

  1.  Теоретическое введение

Обычно формула общего члена суммы принадлежит у одному из следующих трех типов:

  1.  .     xn/n!            (-1)n* x2n-1/(2n+1)!      x2n/(2n)!
  2.        cos(nx)/n     sin((2n-1)x)/2n-1         cos(2nx)/4n2-1
  3.       X4n-1/4n+1   (-1)n*cos(nx)/n2              n2+1(x/2)n/n!

В случаи b) необходимо каждый член суммы вычислять по общей формуле.

Алгоритм решения задач суммирования при значениях параметра суммирования, изменяющегося в некотором диапазоне с заданным шагом, сводится к двум вложенным циклам. Внутренний цикл суммирует слагаемые при фиксированном параметре x, а внешний организует изменение параметра x. Вычисляемая сумма является частичной суммой некоторого функционального ряда, поэтому наряду с вычислением суммы необходимо вычислить для сравнения и значения соответствующей функции y=F(x).

  1.  Техническое задание

Составить программу для вычисления суммы ряда с заданной точностью eps и значения функции на заданном диапазоне изменения аргумента (количество расчетных точек – не менее 10).

Сумма: S=(x*cos(pi)/3))/1+(x^2*cos(2*pi)/3))/2+…+(x^n*cos(n*pi)/3))/n

Диапазон изменения аргумента:0,1<=x<=0,8

Функция y:= -1/2*ln(1-2*x*cos((pi)/3)+x^2)

  1.  Анализ технического задания

Для нахождения суммы ряда, значения функции на заданном диапазоне необходимо:

  •   Рассчитать точки
  •  Найти значения функции в полученных точках
  •  Определить способ задания входных  параметров – ввод с экрана.
  •  Найти суммы рядов в полученных точках и сопоставить со значениями функции в соответствующих значениях.

  1.  Блок-схема

Блок-схема алгоритма представлена на рисунке 5.

           Рисунок 5. Блок-схема алгоритма

Блок-схема функции  представлена на рисунке 6.

Рисунок 6. Блок-схема алгоритма

  1.  Модульная структура программы

Модульная структура программы изображена на рисунке 7.

Рисунок 7. Модульная структура программы

  1.  Спецификация на программные модули

Модуль 1.

  1.  Имя модуля TForm1.Button1Click(Sender: TObject).
  2.  Имя вызывающего модуля Unit1.
  3.  Выполняемые функции – реализует алгоритм нахождения конечных сумм.
  4.  Входные данные – eps.
  5.  Выходные данные – y,s,x.
  6.  Особенности, ограничения – нет.

Модуль 2.

  1.  Имя модуля y.
  2.  Имя вызывающего модуля – TForm1.Button1Click(Sender: TObject).
  3.  Выполняемые функции – вычисление значения функции.
  4.  Входные данные – x.
  5.  Выходные данные – y.
  6.  Особенности, ограничения – нет.

Модуль 3.

  1.  Имя модуля Unit1
  2.  Имя вызывающего модулянет.
  3.  Выполняемые функции – обеспечивает работу всех модулей.
  4.  Входные данные – нет.
  5.  Выходные данные – нет.
  6.  Особенности, ограничения нет.

Модуль 4.

  1.  Имя модуля TForm1.FormCreate(Sender: TObject).
  2.  Имя вызывающего модуля – Unit1.
  3.  Выполняемые функции – обеспечивает очистку полей Memo.
  4.  Входные данные – нет.
  5.  Выходные данные – нет.
  6.  Особенности, ограничения нет.

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

procedure TForm1.Button1Click(Sender: TObject);

var n:integer;

var s,x,eps :real;

function y(x:real):real;

begin

 y:=-1/2*ln(1-2*x*cos((pi)/3)+sqr(x));

end;

begin

    memo1.Clear;

    memo2.Clear;

    memo3.clear;

 eps:=strtofloat(edit1.Text);     {абсолютная погрешность}

 x:=0.1;

 while x<=0.8 do

 begin

   n:=1;

   s:=(exp(n*ln(x))*cos(pi*n/3))/n;

   while (abs(y(x)-s))>=eps do

   begin

     n:=n+1;

     s:=s+(exp(n*ln(x))*cos(pi*n/3))/n;

   end;

   memo1.Lines.Add(floattostr(x));

   memo2.Lines.Add(floattostr(s));

   memo3.Lines.Add(floattostr(y(x)));

   x:=x+0.07;

 end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

memo1.Clear;

memo2.Clear;

memo3.clear;

end;

end.

  1.  Результаты тестирования

С использование программы MathCad были найдены значения функции в заданных точках(0,1;0,17;0,24;0,31;0,38;0,45;0,52;0,59;0,66;0,73;0,8). Изображение экрана с результатом представлено на рисунке 8.

Рисунок 8. Изображение экрана с результатом.

Разработанная программа была протестирована в двух режимах: корректные значения, не корректные значения. Граничные значения отсутствуют. Результаты представлены в таблице 2.

Таблица 2. Результаты тестирования.

Режим тестирования

eps

Результат

Корректные значения

0,0001

0,1

См. рисунок 9,10.

Не корректные значения

s

Ошибка – неверный формат

\

Рисунок 9. Изображение экрана с результатом тестирования.

Рисунок 10. Изображение экрана с результатом тестирования.

Вывод: программа работает верно. При уменьшении значения eps сумма ряда сходится к значению функции.

  1.  Заключение

В ходе проделанной работы был освоен метод нахождения суммы ряда с заданной погрешностью.


 

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

44058. Проектування дорожнього СТО-А 370 KB
  Автомобілі на станції технічного обслуговування СТО приймаються відповідно до встановлених правил. Значний ріст парку легкових автомобілів що належать населенню в Україні вимагає збільшення проектування дорожніх СТОА. Виробничотехнічну базу системи технічного обслуговування автомобілів в основному складають підприємства структурні одиниці трьох видів: СТОА у тому числі майстерні і пункти ТО і ремонту; бази і склади матеріальнотехнічного постачання; гаражі і стоянки автомобілів. Сучасні СТОА здійснюють: продаж і...
44059. Разработка бизнес-плана по производству кондитерских изделий ООО «Бансес» 251.5 KB
  Важнейшей задачей разработки бизнеспланов является проблема привлечения и обоснования инвестиций и кредитов в том числе зарубежных необходимых для осуществления проектов технического перевооружения и реконструкции предприятий. 1337580 руб. 5788080 руб. Общая стоимость проекта по производству кондитерских изделий 936671 руб.
44060. Психологізм творчості Михайла Коцюбинського 475 KB
  Зображення процесів внутрішнього життя героїв у дитячих оповіданнях письменника За обєкт дослідження обрано дитячу та малу прозу Михайла Коцюбинського Цвіт яблуні Сон Що записано в книгу життя В дорозі Дорогою ціною Дебют Лялечка Ft morgn Харитя Ялинка Маленький грішник Intermezzo як найпоказовішу з погляду психологічного зображення зрілості авторської концепції. Із метою ширшого обґрунтування останньої комплексного розгляду художнього психологізму залучено інформацію про особисте життя...
44061. Расчет преобразовательного агрегата 2.27 MB
  Совместно с американскими специалистами были проанализированы достоинства и недостатки электроэнергетики России и США. Специалисты отрасли умели управлять ЕЭС и знали как её оптимально приспособить к рынку.
44062. Податковий контроль 290 KB
  Визначення поняття методика податкового контролю Податковий контроль властивий будь якій державі. Податковий контроль як один із елементів державного регулювання особливо в умовах нестабільної економічної ситуації має стати обєктивною передумовою подальшого розвитку підприємств сприяти удосконаленню податкового механізму через вияв економіко організаційного механізму оподаткування. У здійсненні податкового процесу чільне місце посідає саме контроль за формуванням і практичною реалізацією системи оподаткування в...
44063. Вплив соціально-психологічних факторів на мотивації поведінки неформальної молоді 588.5 KB
  В даній роботі виконано завдання щодо виявлення на основі тестування впливу соціальнопсихологічних факторів на мотивації поведінки неформальної молоді. Обєкт дослідження поведінка неформальної молоді Предмет дослідження вплив соціально-психологічних факторів на мотивації поведінки неформальної молоді Мета дослідження виявити соціальнопсихологічні фактори що впливають на мотивацію поведінки неформ молоді Завдання дослідження: аналіз сучасних досліджень впливу соцпсихол фактор на мотивац повед неформальн молодівизначення...
44064. Конкурентоспособность торговой организации ООО «Первая компьютерная компания» 727 KB
  Организационно-экономическая характеристика предприятия Оценка конкурентоспособности предприятия Предмет исследования конкурентоспособность торгового предприятия. Исходя из поставленных целей можно сформировать следующие задачи: исследование теоретических и методологических основ оценки конкурентоспособности фирмы; обоснование комплексного подхода к обеспечению конкурентоспособности товара; анализ деятельности сети магазинов Первая компьютерная компания; разработка мероприятий по повышению...
44065. АНАЛИЗ БУХГАЛТЕРСКОЙ ОТЧЕТНОСТИ И ФИНАНСОВЫХ РЕЗУЛЬТАТОВ ХОЗЯЙСТВЕННОЙ ДЕЯТЕЛЬНОСТИ 629 KB
  Анализ финансовых результатов деятельности предприятия Оценка имущественного положения предприятия Оценка ликвидности и платежеспособности вероятности банкротства предприятия Анализ деловой активности и рентабельности предприятия ООО Компания Альянс.
44066. Реалізація засобів моделювання обєкту для MMOPRG засобами Javascript 4.04 MB
  JavaScript - об'єктно-орієнтована скрипкова мова програмування. Являється діалектом мови ECMAScript. JavaScript частіше за все використовується в браузерах як мова сценаріїв для надання інтерактивності веб сторінкам. Тобто за допомогою JavaScript можливо міняти сторінку після того як вона повністю завантажилась у браузер.