Информатика и прикладные программы в ЭВМ в управлении экономикой фирмы
Информатика
и прикладные программы в ЭВМ в управлении экономикой фирмы
Введение
Для решения многих нелинейных
уравнений чаще всего используют Методы: простой итерации, половинного деления,
Ньютона. Нелинейные решения нужны современному инженеру, ученому, экономисту в
его профессиональной деятельности. Например, экономист с помощью таких
уравнений может находить прибыль предприятия и просчитывать его на К лет.
Таким образом, развитие этих методов
получает широкое развитие в мире.
Теоретические
сведения
Методы решения
Методы решения
нелинейных уравнений делятся на прямые и итерационные. Прямые методы позволяют
записать корни в виде некоторого конечного соотношения (формулы). Из школьного
курса алгебры нам известны такие методы для решения тригонометрических,
логарифмических, показательных, а также простейших алгебраических уравнений.
Однако
встречающиеся на практике уравнения не удаётся решить такими простыми методами.
Для их решения используются итерационные методы, т.е. методы последовательных
приближений. Алгоритм нахождения корня уравнения с помощью итерационного метода
состоит из двух этапов: а) отыскания приближённого значения корня или
содержащего его отрезка; б) уточнения приближённого значения до некоторой
заданной степени точности.
Итерационный
процесс состоит в последовательном уточнении начального приближения Хо. Каждый
такой шаг называется итерацией. В результате итераций находится
последовательность приближённых значений корня Х1, Х2,…, Xn - Если эти значения с ростом n приближаются к истинному значению
корня, то говорят, что итерационный процесс сходится.
А теперь рассмотрим
3 итерационных метода решения трансцендентных, алгебраических уравнений. Метод
деления отрезка пополам, Ньютона, простой итерации.
Метод деления отрезка пополам (метод
дихотомии)
Пусть действительный
корень уравнения отделен
и функция непрерывна
на интервале отделения
корня. Построим процесс сужения интервала так, чтобы искомый
корень всегда находился внутри суженного интервала. Очевидно, что в этом случае
погрешность приближённого значения корня не превышает ,
где ,
−
граничные точки интервала на -ой итерации. Найдём
середину отрезка и
вычислим .
Составим произведения и
.
Из двух половин отрезков выберем тот, в котором произведение является
отрицательной величиной, и обозначим новые границы отрезка через ,
.
Затем новый отрезок разделим пополам, вновь составим аналогичные произведения и
выберем тот из отрезков, в котором произведение − величина отрицательная.
Погрешность метода
половинного деления, который также называется методом дихотомии, определяется
достаточно очевидным соотношением (которое, впрочем, может быть строго
доказано) ,
которое указывает на скорость сходимости метода: с увеличением погрешность
стремиться к нулю не медленнее геометрической прогрессии со знаменателем .
Метод дихотомии прост и надёжен, всегда сходиться, хотя и медленно, устойчив к
ошибкам округления.
Метод простой итерации
С начало приводим
нелинейное уравнение к
виду, удобному для итерации . Для этого умножим
исходное уравнение на и
прибавим к обеим частям уравнения :
. (1)
В качестве начального
приближения можно
выбрать любое .
Итерационный процесс
заканчивается при
выполнении условия
.
Недостатком метода
является малая скорость сходимости приближённого решения к точному. К
достоинствам метода относятся более широкая область сходимости и простота по
сравнению с методами Ньютона, хорд и секущих. На рис. 1 приводиться блок-схема
алгоритма метода. Она проста, алгоритм полностью совпадает с приведённым выше в
тексте. Обозначения переменных ясных из текста.
Найти корни уравнения
методом простой итерации можно с помощью электронных таблиц. В столбце вычисляются
последовательные приближения к корню.
Метод Ньютона
Рассмотрим в точке касательную
к кривой ,
задаваемую уравнением
.
Положив ,
находим точку пересечения
касательной с осью абсцисс:
.
Функция на
отрезке (рис.
2) заменяется прямой и является
приближённым значением корня . Построив касательную в
точке получим
точку пересечения этой
касательной с осью ,
таким же способом получаем любую точку :
.
Последовательность
значений сходиться
к точному решению (корню) значительно быстрее, чем в методе половинного
деления. Итерации можно прекратить, если .
Теорема.
Если ,
причём и
отличны
от нуля и сохраняют определённые знаки на , то исходя из
начального приближения ,
удовлетворяющего неравенству: , можно вычислить
методом Ньютона единственный корень уравнения с любой точностью.
Существование решения
следует из непрерывности на
и
условия .
Единственность решения следует из монотонности на (так
как сохраняет
знак).
После ввода начальной
точки ,
точности и
предельного числа итераций следует обнуления
счётчика итераций. Затем следует итерационный цикл: вычисление приближённого
значения корня по формуле Ньютона и сравнение погрешности решения с заданной
точностью. Если погрешность или число итераций ,
то на экран (принтер) выводиться приближённое значение корня и числа итераций.
На этом вычисление заканчиваются. Если погрешность вычисления корня больше
заданной, то итерация продолжается: вычисляются новое приближённое значения
корня, его погрешность сравнивается с заданной так далее.
Для уточнения корня
методом Ньютона можно использовать электронные таблицы. В столбец записываем
формулу Ньютона,
в ,
в ,
затем копируем выражение
из в
клетки .
В этих клетках появляются значения выражений.
Во второй строке в
результате подстановки в формулу Ньютона нулевого приближения появляется
первое приближение корня .
В третьей строке в результате подстановки в формулу Ньютона приближения появиться
второе приближение корня и так далее.
Установлено, что прибыль
учебного заведения вычисляется по формуле Z. При этом прибыль связана
нелинейной зависимостью с количеством студентов, принимаемых по контракту. Дать
прогноз на К лет о количестве принимаемых студентов по контракту для
обеспечения изменения прибыли на Pr%.
K=20,
Pr= 30%
Решение задачи сделать
следующим образом:
1. Переменную из формулы Z подобрать с помощью двух вариантов:
1. Программно, используя
методы простой итерации, половинного деления, Ньютона
2. Результаты работы
представить в PowerPoint.
· В качестве
переменной использовать любую переменную из заданных в выражении (выбирать
необходимо нелинейную зависимость, а значения остальных переменных выбрать
произвольно). Количество точек построения равно K, а интервал изменения
переменной подобрать так, чтобы величина изменения функции при изменении переменной
составляла Pr%.
· Из найденного
решения по п. 1.1 и 1.2 построить график функции по формуле Z (Таблица 1.1).
Для построения графика использовать электронную таблицу Excel из офисного
программного обеспечения со сформированными данными из Раscal на диске.
Результаты работы сохранить в виде файлов *.pas, *.dat, *.xls. Вид формулы Z,
величины Рr, K взять из вариантов по заданию преподавателя
· Переменные
необходимо задать на стадии выполнения программы вводом с клавиатуры или
дискового устройства.
· В программе
предусмотреть выходы из возможных некорректных программных прерываний типа
(1/0, ln(-2) и т.п.
· Исходный текст
программы и результаты расчетов и построений продублировать на бумажном
носителе, оформив их в Word, а график функции в Excel.
Фиксируем левую границу интервала: x0=4.71; y=1 - const. Для нахождения правой границы необходимо решить уравнение: z(x)=1.3z(x0) или f=z(x) - 1.3z(x0)=0. Уравнение решаем в
цикле К раз. Решение на каждом шаге является левой границей интервала x0 для следующего шага.
program
d;lambda=-0.01;=0.0000001;=30;=20;=1;t: text;:real;:integer;z
(x:real):real;(1+abs (y-sin(x)/cos(x))*x*x=0) then
begin('Error');;(n);;:=(3+exp (y-1))/(1+x*x*abs (y-sin(x)/cos(x)));;f (x:real):
real;:=z(x) - (1+Pr/100)*z(x0);;df (x:real): real;:=(f (x+0.00001) -
f(x))/0.00001;;
{Metod polovinnogo
deleniyaя}delenie;a1, b1, x, c: real;: integer;(t, 'C:\20\delenie.txt');(t);(t,
' x ', ' z(x) ');i:=1 to k do begin(t, x0:2:4,' ', z(x0):3:4);:=x0;:=a1*0.9;abs
(b1-a1)>=e do begin:=(a1+b1)/2;f(a1)*f(c)<0 then b1:=ca1:=c;;:=c;;(t);;
{Metod Nyutona}newton;x,
x1, b:real;:integer;(t, 'C:\20\newton.txt');(t);(t, ' x ', ' z(x) ');i:=1 to k
do begin(t, x0:2:4,' ', z(x0):3:4);:=0.9*x0;
x1:=x;:=x1-f(x1)/df(x1);abs
(x-x1)<=e;
:=x;;(t);;
{Metod prostoy
iteracii}iterac;x, x1, b: real;:integer;(t, 'C:\20\iterac.txt');(t);(t, ' x ',
' z(x) ');i:=1 to k do begin(t, x0:2:4,' ',
z(x0):3:4);:=0.9*x0;:=x;:=x1-f(x1)*lambda;abs (x-x1)<=e;:=x;;(t);;
нелинейный уравнение итерация
трансцендентный
begin:=4.71;
delenie;:=4.71; newton;:=4.71; iterac;.
Вывод
Таблица решений по каждому из
методов записана в соответствующие текстовые файлы (delenie.txt, newton.txt, iterac.txt). Все методы сходятся к
одним и тем же значениям. Видно, что z(x) на следующем шаге на 30% больше значения на текущем шаге.
Решение на Microsoft Excel.
Задаем x0=4,71. Запишем формулу и вычислим z(x0). Затем найдем z(x) увеличивая каждое последующее z
на 30%. Теперь будем подбирать x
с помощью «подбор параметра».
Когда все x и z найдены построим
график.
Видно, что задача,
решенная четырьмя методами, дает одно и тоже решение. Следовательно, можно
предполагать, что она выполнена правильно.