Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Метод хорд
Метод хорд используется для численного нахождения приближенного значения корня нелинейного уравнения. В данной статье будет показан алгоритм метода, а также будет приведена его программная реализация на языках: Си, C# и Java.
Метод хорд (то же, что метод секущих) — итерационный метод решения нелинейного уравнения.
Нелинейное уравнение — это уравнение в котором есть хотя бы один член, включающий неизвестное, НЕ в первой степени. Обозначается, как: f(x) = 0.
Метод хорд. Алгоритм
Метод хорд является итерационным алгоритмом, таким образом решение уравнения заключается в многократном повторении этого алгоритма. Полученное в результате вычислений решение является приближенным, но его точность можно сделать такой, какой требуется, задав нужное значение погрешности ε. В начале вычислений методом хорд требуется указать границы области поиска корня; в общем случае эта граница может быть произвольной.
Итерационная формула для вычислений методом хорд следующая:
Вычисления продолжаются до тех пор, пока не станет истинным выражение:
Геометрическая модель одного шага итераций метода хорд представлена на рисунке:
Метод хорд, в отличие от метода Ньютона, имеет плюс в том, что для расчета не требуется вычисление производных. Но при этом метод хорд медленнее, его сходимость равна золотому сечению:
Метод хорд. Программная реализация
Ниже мы приводим реализацию алгоритма метода хорд на языках программирования Си, C# и Java. Кроме того, исходники программ доступны для скачивания.
В качестве примера ищется корень уравнения x 3 — 18x — 83 = 0 в области x0 = 2, x1 = 10, с погрешностью e = 0.001. (Корень равен: 5.7051).
x_prev — это xk-1, x_curr — это xk, x_next — это xk+1.
Решение нелинейных уравнений методом хорд в MS Excel
Тема урока: «Решение нелинейных уравнений в MS Excel».
Цель урока: изучение возможностей MS Excel по решению нелинейных уравнений и практическое освоение соответствующих умений и навыков.
Тип урока: комбинированный – урок изучения нового материала и практического закрепления полученных знаний, умений и навыков.
Вид урока: сдвоенный, продолжительность – 1,5 часа.
Задачи урока:
- обучающая – научить учащихся решать нелинейные уравнения в среде электронных таблиц MS Excel;
- развивающая – познакомить учащихся с применением компьютеров в качестве помощников при решении уравнений;
- воспитательная – выработать у учащихся умение рационально использовать время и возможности компьютерных технологий при решении задач.
Оборудование урока:
- Компьютеры с OS MS Windows;
- Программа Microsoft Excel;
- Программа Turbo Pascal;
- Презентация по теме, выполненная в программе Power Point;
- Карточки с заданиями для самостоятельной работы.
В данном уроке особое внимание уделено визуальному представлению информации – в ходе урока с помощью проектора демонстрируются слайды, подготовленные в пакете презентационной графики Microsoft Power Point.
I. Организационный момент
Учитель объявляет тему и цели урока.
II. Актуализация знаний, умений и навыков учащихся – повторение материала прошлого урока по теме «Решение нелинейных уравнений методом половинного деления»
Учащиеся повторяют указанный метод с помощью слайдов, подготовленных в пакете презентационной графики Microsoft Power Point метод половинного деления
Вопросы:
- Всегда ли существуют формулы для «точного» решения уравнений?
- Сформулируйте основное условие существования корня на заданном отрезке.
- Запишите уравнение, позволяющее определить координаты середины отрезка.
- Почему алгоритм решения этой задачи можно назвать циклическим?
- Какое действие в алгоритме повторяется?
- Определите условие, при котором действие алгоритма должно остановиться.
III. Изобразите блок-схему алгоритма. блок-схема
IV. Практическое задание с использованием программы на языке Turbo Pascal (Учащимся разрешено использовать программу, составленную на предыдущем уроке. Было решено уравнение y = x 3 – cos(x)) метод половинного деления TP
Задания для учащихся первой группы
Найти решение уравнения y = x 3 – cos(x) на отрезке [–1;1], при = 0,0001
Задания для учащихся второй группы
Найти решение уравнения y = x 3 – cos(x) на отрезке [–1;1], определить на каком шаге циклического алгоритма будет получено решение.
V. Изучение нового материала «Решение нелинейных уравнений методом хорд»
VI. Объяснить алгоритм решения уравнения f(x)=0 на отрезке [а;в] методом хорд с помощью слайдов, подготовленных в пакете презентационной графики Microsoft Power Point. метод хорд
Вопросы:
- Запишите уравнение, позволяющее определить координаты точки пересечения с осью ОХ.
- Почему алгоритм решения этой задачи можно назвать циклическим?
- Какое действие в алгоритме повторяется?
- Определите условие, при котором действие алгоритма должно остановиться.
- Изобразите блок-схему алгоритма блок-схема2
Этапы решения задачи
- Содержательная постановка задачи. Решение уравнения y = x 3 – cos(x) на отрезке [–1,4; 1,4] с точностью = 0,001.
- Визуализация решения задачи с помощью построения графика заданной функции с помощью процессора MS Excel, используя метод подбора параметра определить корень уравнения.
- Формальная математическая модель.
- Задание математической формулы для отыскания корня уравнения на отрезке
- Задание системы ограничений при использовании циклического алгоритма
- Требование к диапазону задания переменных
Для формализации модели используем математические формулы.
уравнение прямой, проходящей через две точки, где x1 = a, x2 = в, y1 = f(a), y2 = f(в).
После математических преобразований уравнение примет вид .
Определим корень уравнения
- Блок схема алгоритма решения задачи блок-схема2
- Программа на языке Turbo Pascal метод хорд ТР
- Заполнение расчетной таблицы в программе MS Excel метод хорд xls
Метод хорд Pascal (Паскаль)
Найти корень уравнения методом хорд.
Будем искать корень функции f(x). Выберем две начальные точки C1(x1;y1) и C2(x2;y2) и проведем через них прямую. Она пересечет ось абсцисс в точке (x3;0). Теперь найдем значение функции с абсциссой x3. Временно будем считать x3 корнем на отрезке [x1;x2]. Пусть точка C3имеет абсцисcу x3 и лежит на графике. Теперь вместо точек C1 и C2 мы возьмём точку C3 и точку C2. Теперь с этими двумя точками проделаем ту же операцию и так далее, т.е. будем получать две точки Cn + 1 и Cn и повторять операцию с ними. Таким образом мы будем получать две точки, отрезок, соединяющий которые, пересекает ось абсцисс в точке, значение абсциссы которой можно приближенно считать корнем. Эти действия нужно повторять до тех пор, пока мы не получим значение корня с нужным нам приближением. (источник)
3 Thoughts to “Метод хорд Pascal (Паскаль)”
Исправил программу на сайте сделал проще и удобнее
согласно ссылке на сайт с описание алгоритма получается в onlinegdb.com следующая программа,
function f(x:real):real;
begin
f:=x*x*x+x-5;
end;
var xn,xk,p,e:real;
begin
e:=0.001;
xn:=0.5;
xk:=2;
repeat
p:=(f(xk)*xn-f(xn)*xk)/(f(xk)-f(xn));
if abs(f(p)) 0 then xn:=p else xk:=p;
until abs((f(xk)*xn-f(xn)*xk)/f(xk)-f(xn)-p) Atlant
Спасибо retros. Вы меня очень выручили. Буду советовать Ваш ресурс коллегам.
http://urok.1sept.ru/articles/524570
http://retrolib.ru/metod-hord-pascal-paskal/