66871

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

Контрольная

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

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

Русский

2014-08-29

499 KB

12 чел.

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

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

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

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

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

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

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

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

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.  Заключение

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


 

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

43660. Согласование работы всех элементов станции между собой и с прилегающими перегонами 290.21 KB
  Общие вопросы работы станций Техникоэксплуатационная характеристика Специализация парков путей Специализация маневровых локомотивов Маршруты движения поездов локомотивов и маневровых составов Оперативное руководство и планирование работы станций Структура оперативного управления Информация о подходе поездов Оперативное планирование работы станций Технология обработки поездов Технология обработки пассажирских поездов Технология обработки транзитных поездов без переработки Технология обработки...
43661. Обработка динамических списков 306.65 KB
  Метод нисходящего проектирования (сверху-вниз) предполагает последовательное разложение общей функции обработки данных на простые функциональные элементы. В результате строится иерархическая схема, отражающая состав и взаимоподчиненность отдельных функций.
43662. Главный корпус мастерской РАПО 260.09 KB
  Фундаменты под стены и колонны промышленных зданий делают из железобетона, бетона, бутобетона и бутовой кладки. В зависимости от конструктивной схемы здания, значения и характера нагрузок, вида и качества грунтов основания фундаменты бывают ленточные, столбчатые, свайные и сплошные.
43663. Разработка web-сайта для организации, занимающейся продажей автомобилей 1.07 MB
  1 Язык разметки гипертекста HTML 4 1. Сайт разрабатывался с помощью языка разметки гипертекста HTML и каскадных таблиц стилей CSS.1 Язык разметки гипертекста HTML HyperText Mrkup Lnguge HTML является стандартным языком предназначенным для создания гипертекстовых документов в среде WEB. HTMLдокументы могут просматриваться различными типами WEBбраузеров.
43664. Cоздания температурно-комфортного режима в холодный и переходный периоды года 2.66 MB
  Система отопления и вентиляции необходима в гражданских зданиях для поддерживания требуемой воздушной среды в помещениях, особенно в тех где имеется присутствие человека. Для строителя – это необходимая часть конструктивного решения здания. Данный курсовой проект посвящает нас в основы проектирования отопления и ветиляции.
43665. Построение твердотельных моделей в системе Unigraphics 7.25 MB
  Добавляем бобышки с двух сторон затем ставим фаски на них. Добавляем отверстие с одной стороны. Добавляем фаски и отверстия. Добавляем фаски.
43666. Проектирование технологических процессов ремонта деталей вагонов 2.85 MB
  Технологический процесс технологическая операция наплавка электрод флюс коэффициент наплавки фрикционный клин. Цель работы: Разработать технологию ремонта фрикционного клина провести подбор оборудования для ремонта В курсовом проекте произведен выбор действующего типового технологического процесса способа восстановления изношенной поверхности детали составлен технологический процесс ремонта и произведена разработка технологических операций рассчитаны параметры режима ручной дуговой наплавки и автоматической наплавки под плавленым...
43667. Функции программ MSPowerPoint и MSExcel 2.03 MB
  Например в виде презентации можно сделать более доступной сложную правовую информацию которой социальные работники информируют своих клиентов. Создание презентации на тему Дети это наше будущее Открыть MS Word В книге Excel выделить диаграмму Вызвать контекстное меню Копировать В документе MSWord вызвать контекстное меню Вставить Файл Печать Предварительный просмотр Создание презентации средствами MS Power Point на тему Дети это наше будущее Презентация это целенаправленный информационный процесс...
43668. РАЗРАБОТКА ДИЗАЙНА САЙТА ФИТНЕС-КЛУБА 15.44 MB
  Обратите внимание, как мы структурировали тэги по строкам (с помощью клавиши Enter) и какие сделали отступы (клавишей Tab). В принципе не важно, как вы структурируете ваш HTML-документ. Но, для облегчения чтения кода, настоятельно рекомендуем структурировать ваш HTML с помощью перевода строк и отступов, как в нашем примере.