Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Alg_Lang_All.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.3 Mб
Скачать

Контрольные вопросы

  1. Что такое корень уравнения?

  2. Что такое непрерывность и гладкость функции?

  3. Дайте определение разрывной функции, приведите примеры разрывных и непрерывных функций.

  4. Дайте определение монотонности функции, приведите примеры монотонности и немонотонности.

  5. Приведите условие наличия корня монотонной функции на заданном отрезке.

  6. Определите понятия точность и погрешность нахождения корней уравнения.

  7. Как определяются точность и погрешность нахождения корней уравнения в методе деления отрезка пополам?

  8. Приведите определение итерационной процедуры.

  9. В чем заключается итерационная процедура метода деления отрезка пополам?

  10. Приведите условие завершения итераций в методе деления отрезка пополам.

  11. Приведите условие применимости метода секущих.

  12. Как определяется точность и погрешность нахождения корней уравнения в методе секущих.

  13. Дайте определение понятию «разностная производная».

  14. Выведите основные формулы метода секущих.

  15. Приведите алгоритм итерационной процедуры метода секущих.

  16. В чем состоит условие завершения итераций в методе секущих?

  17. При каких условиях применим метод простой итерации?

  18. Как определяется точность и погрешность нахождения корней в методе простой итерации?

  19. Приведите алгоритм итерационной процедуры метода простой итерации.

  20. Выведите условие сходимости метода простой итерации.

  21. Выведите модифицированную формулу метода простой итерации.

  22. Опишите алгоритм модифицированного метода простой итерации.

Задания

Найти корни одного из следующих уравнений, используя методы: простой итерации, деления отрезка пополам, касательных и секущих.

1. ln x + (x + 1)3 = 0;

2. x×2x = 1;

3. x – cos x = 0;

4. 3x + cos x + 1 = 0;

5. x + lg x = 0,5;

6. 2 – x = ln x;

7. (2 – xex = 0;

8. 2,2×x – 2x = 0;

9. x2 + 4 sin x = 0;

10. 2x – lg x = 7;

11. 5x – 8 ln x = 8;

12. 3×x – ex = 0;

13. x (x + 1)2 = 1;

14. x = (x + 1)3;

15. x2 = sin x;

16. x3 = sin x;

17. x2 = ln (x+1);

18. 2x + lg x = – 0,5;

19. 2x + cos x = 0,5;

20. sin 0,5x +1 = x2; x>0;

21. 0,5x + lg (x–1) = 0,5;

22. sin (0,5 + x) = 2x – 0,5;

23. lg (2 + x) +2x = 3;

24. lg (1 + 2x) = 2 – x;

25. 2 sin (x – 0,6) = 1,5 – x.

Лабораторная работа №3. Поиск максимального и минимального значения функции одной и двух переменных

Поиск максимального и минимального значения функции одной переменной методом последовательного перебора

Большинство итерационных алгоритмов определения максимума или минимума функции, как одной, так и нескольких переменных, применяются для определения локального максимума (минимума). «Локальный максимум (минимум)» означает, что в рассматриваемой области должен быть только один максимум или минимум. «Найти максимум или минимум» означает вычислить максимальное или минимальное значаение функции и значение аргумента.

Математическим условием максимума или минимума функции f(х) в точке х0 является равенство нулю первой производной данной функции в точке х0.

Численно посчитать значение первой производной некоторой функции можно по следующим разностным формулам:

(1)

(2)

. (3)

Формула (1) – разностаная формула для производной «разность вперед», (2) – разностная формула для производной «разность назад», (3) – разностная формула для производной «центральная разность».

В точке максимума или минимума функции ее производная равна нулю. Более того, знак производной функции определяет характер поведения функции в любой данной точке: если производная положительна – функция возрастает, если производная отрицательна – функция убывает.

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

Простейшие методы определения максимума или минимума основываются на построении таблицы значений разностной производной исследуемой функции и определении координат нуля производной. Чаще всего используется формула (1). Точность определения максимума или минимума функции определяется величиной шага при определении разностной производной, чем меньше шаг – тем точнее локализован максимум или минимум.

На практике при табулировании функции точный ноль производной получить практически невозможно. Поэтому ноль производной вычисляют с некоторой допустимой погрешностью как разницу между ближайшими близкими к нулю положительным и отрицательным значениями производной в данной точке. При этом погрешность может быть учтена как для значений производной функции (по оси Y), так и для значения координаты точки (по оси Х).

Рассмотрим функцию одной переменной f(x). Пусть эта функция имеет максимум fm=f(xm) в точке xm на отрезке a<x<b.

Описание алгоритма определения максимального (минимального) значения функции одной переменной методом последовательного перебора:

Задаем начальные значения рабочего шага h0, точность определения максимума (минимума) d, начального значения аргумента функции x0.

Вычисляем значение функции в начальной точке f0=f(x0).

В цикле вычисляем:

новое приближение х: x1=x0+d;

новое значение функции f1 в точке x1;

производную функции df=(f1-f0)/(x1-x0);

в соответствии со знаком производной определяем рабочий шаг h=знак(df)h0;

если производная меньше нуля, то рабочий шаг h будет равен:– h0;

если значение функции в начальной точке f0 меньше значения функции в следующей f1 точке и если h0 меньше шага d, то максимум найден,

иначе делим h0 пополам и продолжаем вычисления в цикле.

Если цикл завершен, то печатать сообщение, что максимум (минимум) не найден.

Алгоритм определения максимального (минимального) значения функции одной переменной методом последовательного перебора на естественном языке:

d=0.01

x0=0.5

h0=1

max_k=10000

f0=функция(x0)

Цикл по k от 1 до max_k

x1=x0+d

f1=функция(x1)

df=(f1-f0)/(x1-x0)

h=знак(df)*h0

x0=x0+h

f0=функция(x0)

Если f0<f1 то

Если h0<d то

Печать "Максимум x0=", x0

Печать " f0= ", f0," x1=",x1, " f1=", f1

Выход Из Программы

Конец Если

h0=h0/5

Конец Если

Конец Цикла

Печать "Максимум не найден"

ОПРЕДЕЛЕНИЕ ФУНКЦИИ функция

Параметр x

Возврат -10*(x-20)*(x-400)

Обозначяение знак(df) в данном алгоритме – стандартная функция, возвращающая знак своего аргумента.

Пример решения на языке VFP:

_screen.FontSize = 10

clear

d=0.01

x0=0.5

h0=1

f0=функция(x0)

FOR k=1 TO 10000

x1=x0+d

f1=функция(x1)

df=(f1-f0)/(x1-x0)

h=SIGN(df)*h0

x0=x0+h

f0=функция(x0)

IF f0<f1

IF h0<d

? "Максимум x0=", x0, " f0= ", f0," x1=",x1, " f1=", f1

RETURN

endif

h0=h0/5

ENDIF

endfor

? "Максимум не найден"

FUNCTION функция

LPARAMETERS x

RETURN -10*(x-20)*(x-40)

Пример решения на языке VBA:

Sub maxf()

d = 0.01

x0 = 0.5

h0 = 1

f0 = функция(x0)

For k = 1 To 10000

x1 = x0 + d

f1 = функция (x1)

df = (f1 - f0) / (x1 - x0)

h = Sgn(df) * h0

x0 = x0 + h

f0 = функция (x0)

If f0 < f1 Then

If h0 < d Then

Debug.Print "Максимум найден за " & k & " итераций!"

Debug.Print "x0= " & x0 & " : f0= " & f0 & " : x1= " & x1 & " : f1= " & f1

Exit Sub

End If

h0 = h0 / 5

End If

Next

Debug.Print "Максимум не найден"

End Sub

Function функция (x)

функция = -10 * (x - 20) * (x - 40)

End Function

Результат работы программы на VBA:

Максимум найден за 42 итераций!

x0= 29,988 : f0= 999,99856 : x1= 30,006 : f1= 999,99964

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]