Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Метод деления отрезка пополам паскаль

Приближенное вычисление корня уравнения методом деления отрезка пополам

Раздел программы: “Научно-технические расчёты на ЭВМ”

Тема урока: “Приближенное вычисление корня уравнения методом деления отрезка пополам”

Продолжительность занятия: 2 академических часа.

Тип урока: урок изучения нового материала.

Вид урока: комбинированный.

Время проведения: первый урок по теме “Приближенные вычисления”

Цели урока:

  • Развитие представлений о применениях ЭВМ для научно-технических расчетов.
  • Формирование системно-информационного подхода к анализу окружающего мира.
  • Формирование общеучебных и общенаучных навыков работы с информацией.

Задачи урока:

  • Воспитательная – развитие познавательного интереса, воспитание информационной культуры, воспитание умения четко организовать самостоятельную работу.
  • Образовательная – изучить и закрепить приемы использования языка программирования для решения задач приближенного решения уравнений, закрепить знания и умения по теме “Алгоритмизация и программирование”.
  • Развивающая – расширение кругозора.

Методы: Словесные, наглядные, практические.

Организационные формы работы: фронтальные, индивидуальные.

Материально-техническая база: доска, ПК с установленным ПО ЯП Turbo Pascal 7.0.

Межпредметная связь: математика.

Требования к знаниям и умениям: учащиеся должны знать основные команды языка программирования для задач вычислительного характера, уметь составлять и записывать алгоритмы с использование циклов и ветвлений; по записи алгоритма записывать программу на языке программирования Turbo Pascal.

Содержание этапа урока

Вид и формы работы

Работа в тетради по кодированию программ
по заданному алгоритму.

I. Организационный момент

II. Мотивационное начало урока. Постановка цели урока

Учитель: Вычисления на компьютере обладают большей гибкостью, чем привычные всем вычисления в математике. Рассмотрим для примера задачу вычисления корня уравнения f(x) = 0. В курсе школьной математики вам известен метод дискриминанта для уравнений вида:
ax 2 + bx + c = 0, выражаемой по формуле . Однако, во многих случаях, ответ не выражается формулой (например, для корня уравнения cos(x) = x формулы просто нет). Но можно, не выводя точных формул, вычислить корень приближенно, с заданной точностью, например, до 0,0001. Сегодня мы рассмотрим один из приближенных методов вычисления корня уравнения – метод деления отрезка пополам.

III. Изучение нового материала.

Учитель: Рассмотрим задачу в следующей постановке.

Дано уравнение f(x) = 0 и числа a и b: a f(b) 0.

Если V–точный корень уравнения f(V) = 0, a * f(b) E, то перейти к пункту 1).

Любая точка отрезка [a, b] при таком алгоритме даст приближенное решение с заданной точностью.

Запишем алгоритм решения нашей задачи в виде блок схемы: (См. рис. 2).

Учитель: Есть ли вопросы?

Если у учащихся есть вопросы, то необходимо все уяснить, прежде чем переходить к следующему этапу урока/

Учитель: Какой алгоритм по структуре у нас получился?

ПО: циклический, причем использовать надо цикл с предусловием.

Учитель: Что необходимо вписать в блоки, помеченные звездочкой ( * )?

ПО: Здесь необходимо записать команду вычисления конкретной функции в точке a и в точке c.

Учитель: Что необходимо предварительно сделать, прежде чем применять этот алгоритм для нахождения корня уравнения?

ПО: Необходимо, в первую очередь, проверить, удовлетворяет ли функция постановке задачи: является ли график функции непрерывной линией на отрезке [a, b], разные ли знаки имеет функция на концах отрезка [a, b].

IV. Этап закрепления, проверки полученных знаний

Учитель: Можно ли применять метод деления отрезка пополам для нахождения корней уравнений, на заданных отрезках (уравнения записаны на доске):

  1. x 2 – 5 = 0, [0, 3] (ПО: функция непрерывна на отрезке и f(0) *f(3) 4 + cos(x) – 2 = 0 [0, 2] (ПО: функция непрерывна на отрезке и f(0)*f(2) 5 – 1 = 0 [–5, 2] (ПО: функция непрерывна на отрезке и f(– 5)*f(2) e do
    Begin c : = (a + b)/2;
    fc : = … ;
    If fc . fa 2 cos(2x) + 1 = 0 [0, /2]
  2. x 3 + x 2 + x + 1 = 0 [–2,1]
  3. x 5 – 0,3 | x – 1 | = 0 [0,1]
  4. 2xcos(x) = 0 [0, /4]
  5. tg(x) – (x + 1)/2 = 0 [0, /4]

3. Это задание для учащихся математического класса: Вычислить значения , используя этот же метод деления отрезка пополам. Ответы сравните с расчетами на инженерном калькуляторе.
ВСЕ результаты вычислений фиксируются в тетради.

4. Результаты лабораторной работы должны быть защищены в индивидуальном порядке в беседе с учителем: проверяется понимание метода и используемой программы.

Вопросы для собеседования:

  1. В чем смысл переменной…?
  2. Что означает данная команда…?
  3. Как вы записывали для функции а) – е) выражение в команде fa : = .
  4. Для чего в программе используются операторные скобки?
  5. Для чего использовали в программе команду ветвления? Цикла?
  6. Где в программе осуществляется выбор отрезка, где находится корень уравнения?
Читать еще:  Yandex ru использует недействительный сертификат безопасности

На выполнение задания дается 30 минут. (Для выполнения задания учащиеся рассаживаются за компьютеры, загружают среду программирования и начинают проверять программу).

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

VI. Подведение итогов. Домашнее задание

Учитель: Подведем итоги. Сегодня на уроке вы узнали, как находить решение уравнений методом деления отрезка пополам, как использовать для этого компьютер. Я проверила во время практической работы и в процессе защиты результатов работы как вы усвоили материал, вы хорошо справились с заданием и получили следующие отметки… На этом изучение применений компьютера для научно-технических расчетов не заканчивается, предлагаю проанализировать свои записи в тетради и выполнить домашнее задание: подумать над вопросом “Какие методы поиска площадей фигур вы знаете?”. Запишите его себе в тетрадь.
Спасибо всем за работу.

Приближенное вычисление корня уравнения методом деления отрезка пополам

Раздел программы: “Научно-технические расчёты на ЭВМ”

Тема урока: “Приближенное вычисление корня уравнения методом деления отрезка пополам”

Продолжительность занятия: 2 академических часа.

Тип урока: урок изучения нового материала.

Вид урока: комбинированный.

Время проведения: первый урок по теме “Приближенные вычисления”

Цели урока:

  • Развитие представлений о применениях ЭВМ для научно-технических расчетов.
  • Формирование системно-информационного подхода к анализу окружающего мира.
  • Формирование общеучебных и общенаучных навыков работы с информацией.

Задачи урока:

  • Воспитательная – развитие познавательного интереса, воспитание информационной культуры, воспитание умения четко организовать самостоятельную работу.
  • Образовательная – изучить и закрепить приемы использования языка программирования для решения задач приближенного решения уравнений, закрепить знания и умения по теме “Алгоритмизация и программирование”.
  • Развивающая – расширение кругозора.

Методы: Словесные, наглядные, практические.

Организационные формы работы: фронтальные, индивидуальные.

Материально-техническая база: доска, ПК с установленным ПО ЯП Turbo Pascal 7.0.

Межпредметная связь: математика.

Требования к знаниям и умениям: учащиеся должны знать основные команды языка программирования для задач вычислительного характера, уметь составлять и записывать алгоритмы с использование циклов и ветвлений; по записи алгоритма записывать программу на языке программирования Turbo Pascal.

Содержание этапа урока

Вид и формы работы

Работа в тетради по кодированию программ
по заданному алгоритму.

I. Организационный момент

II. Мотивационное начало урока. Постановка цели урока

Учитель: Вычисления на компьютере обладают большей гибкостью, чем привычные всем вычисления в математике. Рассмотрим для примера задачу вычисления корня уравнения f(x) = 0. В курсе школьной математики вам известен метод дискриминанта для уравнений вида:
ax 2 + bx + c = 0, выражаемой по формуле . Однако, во многих случаях, ответ не выражается формулой (например, для корня уравнения cos(x) = x формулы просто нет). Но можно, не выводя точных формул, вычислить корень приближенно, с заданной точностью, например, до 0,0001. Сегодня мы рассмотрим один из приближенных методов вычисления корня уравнения – метод деления отрезка пополам.

III. Изучение нового материала.

Учитель: Рассмотрим задачу в следующей постановке.

Дано уравнение f(x) = 0 и числа a и b: a f(b) 0.

Если V–точный корень уравнения f(V) = 0, a * f(b) E, то перейти к пункту 1).

Любая точка отрезка [a, b] при таком алгоритме даст приближенное решение с заданной точностью.

Запишем алгоритм решения нашей задачи в виде блок схемы: (См. рис. 2).

Учитель: Есть ли вопросы?

Если у учащихся есть вопросы, то необходимо все уяснить, прежде чем переходить к следующему этапу урока/

Учитель: Какой алгоритм по структуре у нас получился?

ПО: циклический, причем использовать надо цикл с предусловием.

Учитель: Что необходимо вписать в блоки, помеченные звездочкой ( * )?

ПО: Здесь необходимо записать команду вычисления конкретной функции в точке a и в точке c.

Учитель: Что необходимо предварительно сделать, прежде чем применять этот алгоритм для нахождения корня уравнения?

ПО: Необходимо, в первую очередь, проверить, удовлетворяет ли функция постановке задачи: является ли график функции непрерывной линией на отрезке [a, b], разные ли знаки имеет функция на концах отрезка [a, b].

IV. Этап закрепления, проверки полученных знаний

Учитель: Можно ли применять метод деления отрезка пополам для нахождения корней уравнений, на заданных отрезках (уравнения записаны на доске):

  1. x 2 – 5 = 0, [0, 3] (ПО: функция непрерывна на отрезке и f(0) *f(3) 4 + cos(x) – 2 = 0 [0, 2] (ПО: функция непрерывна на отрезке и f(0)*f(2) 5 – 1 = 0 [–5, 2] (ПО: функция непрерывна на отрезке и f(– 5)*f(2) e do
    Begin c : = (a + b)/2;
    fc : = … ;
    If fc . fa 2 cos(2x) + 1 = 0 [0, /2]
  2. x 3 + x 2 + x + 1 = 0 [–2,1]
  3. x 5 – 0,3 | x – 1 | = 0 [0,1]
  4. 2xcos(x) = 0 [0, /4]
  5. tg(x) – (x + 1)/2 = 0 [0, /4]
Читать еще:  Паскаль с нуля

3. Это задание для учащихся математического класса: Вычислить значения , используя этот же метод деления отрезка пополам. Ответы сравните с расчетами на инженерном калькуляторе.
ВСЕ результаты вычислений фиксируются в тетради.

4. Результаты лабораторной работы должны быть защищены в индивидуальном порядке в беседе с учителем: проверяется понимание метода и используемой программы.

Вопросы для собеседования:

  1. В чем смысл переменной…?
  2. Что означает данная команда…?
  3. Как вы записывали для функции а) – е) выражение в команде fa : = .
  4. Для чего в программе используются операторные скобки?
  5. Для чего использовали в программе команду ветвления? Цикла?
  6. Где в программе осуществляется выбор отрезка, где находится корень уравнения?

На выполнение задания дается 30 минут. (Для выполнения задания учащиеся рассаживаются за компьютеры, загружают среду программирования и начинают проверять программу).

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

VI. Подведение итогов. Домашнее задание

Учитель: Подведем итоги. Сегодня на уроке вы узнали, как находить решение уравнений методом деления отрезка пополам, как использовать для этого компьютер. Я проверила во время практической работы и в процессе защиты результатов работы как вы усвоили материал, вы хорошо справились с заданием и получили следующие отметки… На этом изучение применений компьютера для научно-технических расчетов не заканчивается, предлагаю проанализировать свои записи в тетради и выполнить домашнее задание: подумать над вопросом “Какие методы поиска площадей фигур вы знаете?”. Запишите его себе в тетрадь.
Спасибо всем за работу.

Лихоманенко Николай Иванович

Название или описание блога (изменить)

Навигация

Поиск по сайту

Звонки

Новое в блогах

10 класс. П.70 Практическая работа №62. Решение уравнений методом деления отрезка пополам

Учебник. К.Ю Поляков, Е.А. Ерёмин. Информатика. 10 класс. Углублённый уровень. §70 Решение уравнений

Практическая работа №62. Решение уравнений методом методом деления отрезка пополам

Напишите программу, которая находит все решения заданного вам уравнения на интервале [-5;5]. Программа должна выполнить следующие действия:

1. Определяет и выводит на экран интервалы, на которых расположены корни уравнения.

2. На каждом интервале, используя метод перебора, ищет решение с точностью 0,001 и выводит полученные решения на экран.

Вычисление функции, стоящей в левой части уравнения, оформите в виде подпрограммы.

Уровень A. Интервалы, на которых расположены корни, можно найти с помощью электронных таблиц. Программа запрашивает границы очередного интервала и выводит найденный корень уравнения.

Введите границы интервала:

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

Введите границы интервала:

Уровень C. Составить одну программу, которая работает полностью автоматически: достаточно ввести в программу функцию и запустить. Программа находит все интервалы, на которых расположены корни и уточняет решения. После того, как очередной интервал найден, программа выводит его на экран и, применяя метод деления отрезка пополам, уточняет решение и определяет необходимое для этого количество шагов.

Вариант 1. x 3 — 8*x + 1 = sin(x)

program pr62ABC;

function f(x: real): real;

begin

f := x * x * x — 8 * x + 1 — 5 * sin(x);

end ;

const

var

delta, a, b, c: real;

begin

writeln(‘Введите границы интервала:’);

if (f(a) * f(b) > 0 ) then writeln(‘На промежутке может не быть корней’)

else begin

while b — a > delta do

begin

if f(a) * f(c) 0) and (a delta do

begin

if f(a) * f(c)

using namespace std;

double f(double x)

return x * x * x — 8 * x + 1 — 5 * sin(x);

double delta, a, b, c;

double eps = 0.001;

if (f(a) * f(b) > 0 ) cout delta)

if (f(a) * f(c) 0) && (a delta)

if (f(a) * f(c) <= 0) b = c;

Читать еще:  Уроки си шарп

Метод деления отрезка пополам

Метод основан на делении текущего отрезка [а, b],где содержится искомый экстремум, на две равные части с последующим выбором одной из половин, в которой находится максимум в качестве следующего текущего отрезка. Экстремум определяется путем сравнения двух значений критерия оптимальности в точках, отстоящих от середины отрезка наε/2,

Если R(x+ε /2) > R(xε/2), то максимум располагается на пра­вой половине текущего отрезка[а, b],в противном случае — на левой.

Процесс поиска завершается при достижении отрезком [а, b]величины заданной погрешности ε.

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

Рис. 3.2 Иллюстрация метода половинного деления:

1 — ин­тервал, включающий в себя искомый максимум функции после

первого этапа (первого деления пополам);

2, 3 — то же соответственно после вто­рого и третьего этапов

На рис. 3.2 приведены три этапа метода половинного деле­ния. Сплошными вертикальны­ми линиями отмечены середины отрезков, а пунктирными — вы­числяемые значения критерия оптимальности слева и справа на ε/2от середин.

Существует и другой вари­ант алгоритма, заключающийся в следующем. После нахожде­ния середины отрезка (напри­мер, точка с1) в одной из полови­нок (допустим, в левой) находят среднюю точку (точка с2) и, срав­нивая значения функции в этих точках, определяют, в какой из половинок находится экстремум. Если R(с1) R(с2), то берут новую точку в середине правой половины (точка с3) и в ней вычисляют функцию. В зависимости от сравнения зна­чений функции в точках с3и с1 выбирают новый отрезок [с1, b]или [с23] и т.д.

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

Метод деления отрезка пополам

Дата добавления: 2013-12-23 ; просмотров: 2346 ; Нарушение авторских прав

Метод секущих

Этот метод является модификацией метода Ньютона в плане его реализации, т. е. задача поиска корня связана лишь с вычислением значения функции f(x). Заменив производную f ‘(xn) в методе Ньютона так называемой разделенной разностью по двум точкам xn и xn + hn, где hn – некоторый малый параметр, получим итерационную формулу

, n = 0, 1, 2, …, (3.9)

которая называется методом секущих.

Имеются другие интерпретации формулы (3.9). В частности, метод Вегстейна,в котором для выбора параметра h используют предыдущую расчетную точку, т. е. берут hn = xn–1xn, тогда (3.9) имеет вид

, n = 0, 1, 2, … . (3.10)

Метод Вегстейна, очевидно, двухшаговый (m = 2), т. е. для вычисления требуется задать две начальные точки приближения, лучше всего x = а; x1 = b. Данный метод медленнее метода секущих, однако требует в два раза меньше вычислений f(x) и поэтому оказывается более эффективным.

Целесообразным является использовать подходы к уточнению корня, не выпускающие корень из выделенной «вилки» (отрезка [a, b]).

Так, если f(bf «(x) > 0 для x Î [a, b], берут в качестве x = a, и уточнение ко­рня производится по формуле

, n = 0, 1, 2, …, (3.11)

а если f(af «(x) > 0 для x Î [a, b], берут в качестве x = b, и уточнение корня производится по формуле

, n = 0, 1, 2, … . (3.12)

Все вышеизложенные методы могут работать, если функция f(x) из (3.1) является непрерывной и дифференцируемой вблизи искомого корня, в противном случае решение не гарантируется. Данный метод может быть использован даже для разрывных функций.

Его алгоритм реализовывается согласно следующей рекуррентной последовательности: для x * Î [a, b]; x = a; x1 = b, находится x2 = (a + b) / 2.

Очередная точка x3 выбирается, как середина того из смежных с x2 интервалов [x, x2] или [x2, x1], на котором находится корень. В результате получается следующий алгоритм метода деления отрезка пополам:

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

Немного подкорректировав, алгоритм (3.13) более наглядно можно представить в виде блок-схемы (рис. 3.7).

Ссылка на основную публикацию
Adblock
detector