
- •Оглавление Программа элективного курса «Численные методы и компьютерное моделирование» профильного этапа обучения информатике и информационным технологиям
- •9. Практическая работа по теме «Отделение корня
- •Программа элективного курса «Численные методы и компьютерное моделирование» профильного этапа обучения информатике и информационным технологиям
- •1. Пояснительная записка
- •2. Требования к знаниям и умениям учащихся
- •2.1 Характеристики приближённых значений чисел
- •2.2 Компьютерная арифметика
- •2.3 Численные методы
- •2.3.1 Решение уравнений с одной переменной
- •2.3.2 Решение систем линейных алгебраических уравнений
- •2.3.3 Решение задач линейного программирования
- •2.3.4 Интерполирование функций
- •2.3.5 Численное интегрирование
- •3. Содержание модулей
- •3.1 Характеристики приближённых значений чисел
- •3.2 Компьютерная арифметика
- •3.3 Численные методы
- •3.3.1 Решение уравнений с одной переменной
- •3.3.2 Решение систем линейных алгебраических уравнений
- •3.3.3 Решение задач линейного программирования
- •3.3.4 Интерполирование функций
- •3.3.5 Численное интегрирование
- •4. Тематический план
- •5. Литература
- •П риближенное решение уравнений с одной переменной. Уточнение корня уравнения методом деления отрезка пополам
- •6. Мотивационные задачи к введению численных методов решения уравнений с одной переменной
- •Историческая справка
- •7. Этапы решения уравнения с одной переменной приближенными методами
- •1 Этап. Отделение действительных корней уравнения (3).
- •2 Этап. Уточнение действительных корней уравнения (3).
- •А. Алгоритм уточнения корня уравнения методом деления отрезка пополам на школьном алгоритмическом языке (Ершоле).
- •Результаты исполнения программы уточнения корня уравнения
- •8. Решение уравнений с одной переменной на ms excel
- •8.2 Второй способ решения уравнения – графическое решение
- •8.3.2.1 Уточнение корня в непосредственном режиме
- •8.3.2.2 Уточнение корня с использованием Макроса
- •10. Литература
А. Алгоритм уточнения корня уравнения методом деления отрезка пополам на школьном алгоритмическом языке (Ершоле).
алг корень уравнения (арг вещ a, b, e в, рез ещ x)
дано │a – левая граница выделенного отрезка [a; b], b – правая граница,
│e – заданная точность вычисления корня уравнения f(x) = 0.
надо
│найдено и напечатано x – приближенное значение корня
│уравнения f(x) = 0 с заданной точностью e
нач вещ c, a1,b1, лог fl
a1:=a; b1:=b
│ a и b внутри программы менять нельзя
│ введем для работы переменные a1 и b1
если f(a1)*f(b1) >= 0
то
вывод нс, «Такой отрезок не рассматривается»
иначе
fl:=ложно
нц пока (b1 – a1) > 2*e и не fl
c := a1+(b1-a1)/2
если f(c) =0
то
fl:=истинно
все
если f(a1)*f(с) < 0
то b1:= c
иначе a1:= c
все
кц
если fl
то
x:=c
иначе
x:= a1+(b1-a1)/2
все
все
кон
алг вещ f (арг вещ x)
дано
надо
нач
знач:= x – cos(x)
кон
В. Программа уточнения действительного корня уравнения f(x) = 0 методом деления отрезка пополам на Turbo Pascal'e.
Program Root;
var a, b, c, e: real; fl:boolean;
function f (x: real): real;
begin
f := x – cos (x)
end;
begin
write ('Введите значение левого конца отрезка [a;b] ');
readln (a);
write ('Введите значение правого конца отрезка [a;b] ');
readln (b);
write ('Введите точность вычисления корня на отрезке [a;b] ');
readln (e);
if f(a)*f(b) >= 0
then writeln ('Такой отрезок не рассматривается')
else
begin
fl:=false;
while ((b – a) > 2*e) and (not fl) do
begin c:=a+(b-a)/2;
if f (c)= 0 then fl:=true;
if f(a)*f(с) < 0 then b:= c else a:= c;
end;
if fl then x := c else x:= a+(b-a)/2;
writeln ('х =', х:17:11, ' с точностью ', е:17:11)
end;
end.
С. Код уточнения действительного корня уравнения f(x) = 0 методом деления отрезка пополам на Visual Basic’е.
Dim a As Double, b As Double, c As Double
Dim x As Double, e As Double
Private Sub Command1_Click()
a = InputBox("Введите левый конец отрезка", "Функция ввода")
b = InputBox("Введите правый конец отрезка", "Функция ввода")
e = InputBox("Введите значение точности", "Функция ввода")
If f(a) * f(b) >=0 Then
Form1.Print "Такой отрезок не рассматривается"
Else
Do While Abs(a - b) > 2 * e
c = a + (b - a) / 2
If f(c) = 0 Then Exit Do
If f(a) * f(c) < 0 Then
b = c
Else
a = c
End If
Loop
If f(c) = 0 Then
x = c
Else
x = a + (b - a) / 2
End If
MsgBox ("Значение корня" & x)
MsgBox ("Точность" & e)
'Form1.Print "Значение корня" , x, "Точность" ,e
'Можно вывести результат и предыдущим оператором, убрав апостроф
End If
End Sub
Function f(x As Double) As Double
f = x - Cos(x)
End Function