Хелпикс

Главная

Контакты

Случайная статья





Научно Исследовательский Университет Московский Энергетический Институт (Технический Университет)



Научно Исследовательский Университет Московский Энергетический Институт (Технический Университет)

Институт Институт автоматики и вычислительной техники

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

 

Типовой рассчет по дисциплине программирование и основы алгоритмизации

Тема: Вычисление корней рациональных уравнений

 

 

                                        Студент: Лебедев Р. И.

Вариант: 14

Группа: А-01-11

Преподаватель: Щербин В. М.

 

2011 год.

ЧАСТЬ 1

Разработать алгоритм и программу вычисления корня уравнения f(x)=0 заданного на отрезке [A; B] методом дихотомии с допустимой погрешностью ε.

 

 

Таблица данных:

Название переменной Тип Структура Смысл

Исходные данные:

A real Простая переменная Левая граница
B     Правая граница
Eps     Допустимая погрешноть

Результаты:

X real Простая переменная Исходное значение с допустимой погрешностью

Промежуточные данные:

At real Простая переменная Текущая левая граница
Bt     Текущая правая граница
St     Средняя точка
Fat     Знак функции в левой половине
Fst     Знак функции в средней точке

 

 

Алгоритм:

 


                                                Да                 Нет

 


                                     Да, Выход                           Нет, Повтор

     
 


                       

 


Программа:

var:

       A, B, Eps, At, Bt, St, Fat, Fst, x: real;

begin:

       write('Input A, B, Eps: ');

       readln(A, B, Eps);

       At: = A;

       Bt: = B;

       repeat

                   St: = (At+Bt)/2;

                   Fat: = (2/3)*arctg(sqrt(At))+0. 577*ln(At+1)+(0. 01/abs(0. 01)*exp((1/3)*ln(abs(0. 01)))) - At;

                   Fst: = (2/3)*arctg(sqrt(Bt))+0. 577*ln(Bt+1)+(0. 01/abs(0. 01)*exp((1/3)*ln(abs(0. 01)))) - St;

                   if Ft*Fst > 0 then

                              At: = St

                   else  Bt: = St;

       until abs(Bt-At) < = Eps;

       x: = (At+Bt)/2;

       writeln('x: = ', x: 6: 3);

       readln;

end.

Тесты:

1. Тест 1

ñ Исходные данные:

◦ A =

◦ B =

◦ Eps =

ñ Результат:

◦ x =

2. Тест 2

ñ Исходные данные:

◦ A =

◦ B =

◦ Eps =

ñ Результат:

◦ x =

3. Тест 3

ñ Исходные данные:

◦ A =

◦ B =

◦ Eps =

ñ Результат:

◦ x =

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.