НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СПЕЦИАЛИЗИРОВАННЫЙ УЧЕБНО-НАУЧНЫЙ ЦЕНТР
ÌÎÄÅËÈÐÎÂÀÍÈÅ ÔÈÇÈ×ÅÑÊÈÕ ßÂËÅÍÈÉ ÍÀ Ý...
12 downloads
233 Views
544KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СПЕЦИАЛИЗИРОВАННЫЙ УЧЕБНО-НАУЧНЫЙ ЦЕНТР
ÌÎÄÅËÈÐÎÂÀÍÈÅ ÔÈÇÈ×ÅÑÊÈÕ ßÂËÅÍÈÉ ÍÀ ÝÂÌ Часть III Численное дифференцирование и интегрирование функций Решение нелинейных уравнений
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СПЕЦИАЛИЗИРОВАННЫЙ УЧЕБНО-НАУЧНЫЙ ЦЕНТР Кафедра физики
Кандауров И.В., Мезенцев Н.А., Пиндюрин В.Ф., Симонов Е.А.
МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ ЯВЛЕНИЙ НА ЭВМ
Методическое пособие Часть III Численное дифференцирование и интегрирование функций Решение нелинейных уравнений
Новосибирск 2000
Пособие является составной частью учебно-методических материалов, предназначенных для учащихся Специализированного учебно-научного центра Новосибирского государственного университета (СУНЦ НГУ − бывшая
Физико-математическая
школа
им.
М.А.Лаврентьева),
занимающихся на спецкурсе "Моделирование физических явлений на ЭВМ". В настоящем пособии рассмотрены численные методы дифференцирования, интегрирования
функций
и
решения
нелинейных
(алгебраических,
трансцендентных) уравнений с одной неизвестной переменной. Приводится набор задач для самостоятельного решения.
Рецензенты: доцент кафедры физики СУНЦ НГУ Харитонов В.Г. профессор кафедры теор. физики НГУ, к.ф.-м.н. Коткин Г.Л.
Новосибирский государственный университет, 2000 Подготовлено при поддержке ФЦП "Интеграция", проект "Современные компьютерные технологии в ранней профессиональной ориентации и подготовке физиков-исследователей" (рег. № 274) 1
СОДЕРЖАНИЕ
Введение
3
Численное дифференцирование функций
4
Пример построения графиков производных
8
Задание на вычисление производных функций и построение их графиков
11
Численное интегрирование функций
12
Формула трапеций
13
Формула Симпсона
15
Точность квадратурных формул
16
Особенности вычисления интегралов с бесконечными пределами
17
Пример построения графиков интегралов
18
Задание на численное интегрирование
21 23
Решение нелинейных уравнений Метод деления отрезка пополам (дихотомия)
24
Метод простых итераций
25
Метод Ньютона
27
Особенности методов решения уравнений
28
Примеры решения уравнений
29
Задание на решение уравнений
35
Задачи
36
Рекомендуемая литература
54
2
ВВЕДЕНИЕ Производные и интегралы от функций присутствуют почти во всех физических задачах. Да и сама математика "бесконечно малых" появилась в значительной степени из необходимости адекватного описания физических процессов. Очень часто при решении физических задач возникает необходимость в выполнении операций численного дифференцирования и интегрирования функций. Это обусловлено несколькими причинами. Во-первых, функции, описывающие физические процессы, не всегда имеют аналитическое представление. Они могут вычисляться, например, в процессе численного решения задачи. Во-вторых, не очень часто в практических случаях удается выразить интеграл в виде элементарных функций. И, наконец, даже когда функция, ее производные или интегралы от нее выражаются аналитически, часто более простым и быстрым способом получения результатов являются численные методы нахождения этих величин. К столь же широко распространенным методам относится и численное решение нелинейных (алгебраических, трансцендентных) уравнений, то есть нахождение корней уравнений.
В редких практических случаях удается
найти аналитическое решение уравнения даже с одной переменной. Поэтому для их решения широко используются численные методы. В
настоящем
дифференцирования
пособии и
рассматриваются
интегрирования
функций,
численные а
также
методы решения
нелинейных уравнений с одной неизвестной переменной. Для каждой из перечисленных операций (дифференцирование, интегрирование, решение уравнений) существует множество различных численных способов их выполнения. Здесь рассматриваются только некоторые, наиболее простые и широко используемые.
В то же время рассматриваемые способы 3
обеспечивают, как правило, необходимую точность вычислений. Более подробные сведения о рассматриваемых методах можно найти в ссылках [13], а также в другой литературе. Заметим также, что численное дифференцирование, интегрирование функций и решение нелинейных уравнений являются довольно общими операциями, и применяются практически во всех областях деятельности человека.
ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ ФУНКЦИЙ Дифференцирование или вычисление первой производной функции
Y = f ( X ) по переменной X определяется следующим образом: Y′=
df ( X ) f ( X + ∆X ) − f ( X ) = lim 0 X ∆ → ∆X dX
Геометрический
.
смысл
производной − это тангенс
Y
угла наклона касательной, проведенной к
f (X )
в точке
f (X + ∆X)
функции
f (X)
X (см.
рисунок):
X
α
df ( X ) = tg(α) . dX
X
X + ∆X
Формула для численного нахождения первой производной следует из приведенного выше определения дифференцирования: 4
df ( X ) f ( X + ∆X ) − f ( X ) , ≈ ∆X dX где переменная ∆X (шаг дифференцирования) принимает некоторое малое, но конечное значение. Данная
формула
обеспечивает
погрешность
вычисления,
пропорциональную ∆X . Если Y ′( X ) − точное значение производной в
~
точке X , а Y ′( X ) − приближенное значение производной, найденное по формуле, то это означает, что
~ Y ′( X ) = Y ′( X ) + R , где
R ~ ∆X − погрешность (ошибка) численного дифференцирования
функции. Ясно, чем меньше будет выбрана величина ∆X , тем меньше будет
~
погрешность R , и тем точнее приближенное значение Y ′ будет соответствовать истинному значению производной Y ′ . Однако, при выборе слишком маленького значения ∆X погрешность вычисления R снова начнет нарастать уже из-за конечной точности представления чисел и ошибок округления при выполнении арифметических операций в ЭВМ. Имеется оптимальное значение шага
∆X , при котором точность дифференцирования
наибольшая. Это значение зависит как от точности представления чисел и выполнения операций в ЭВМ, так и от вида дифференцируемой функции. В типичных ситуациях значение ∆X выбирается в диапазоне 0.0001 ÷ 0.1 от характерного интервала изменения функции. Из формулы численного дифференцирования сразу видно, что она не симметрична относительно точки X , в которой вычисляется производная. Приведенная формула соответствует так называемой производной справа. Аналогично может быть записана формула и для производной слева, если 5
f ( X + ∆X ) − f ( X )
выражение
в числителе формулы заменить на
f ( X ) − f ( X − ∆X ) . Погрешность вычисления по формуле слева такая же, как и по формуле справа. Интуитивно понятно, что симметризация формулы относительно точки X должна улучшить точность вычисления производной в точке X . Действительно, симметричная относительно X формула для численного дифференцирования
df ( X ) ≈ dX
∆X ∆X f X + − f X − 2 2 ∆X
имеет погрешность R ~ ∆X
2
и обеспечивает существенно лучшую точность
вычисления производной при том же шаге
∆X .
последней
дифференцирования
формулы
для
численного
Поэтому применение более
предпочтительно. Вторая производная получается после второго дифференцирования функции Y = f ( X ) в точке X :
Y ′′ =
d 2 f (X ) d df ( X ) f ′( X + ∆X ) − f ′( X ) = = ∆lim 2 dX dX X →0 ∆X dX
.
Формула для численного нахождения второй производной функции
f (X )
в точке X имеет вид:
d 2 f ( X ) f ( X + ∆X ) − 2 f ( X ) + f ( X − ∆X ) ≈ ∆X 2 dX 2
.
Отметим, что формула симметрична относительно точки X и обеспечивает 2
точность вычислений с погрешностью R ~ ∆X .
6
Аналогичным
образом
можно
найти
формулы
вычисления производных следующих порядков f
(n)
для
численного
( X ) , n = 3,4,… .
Сделаем еще важное замечание о построении графиков производных функций. Пусть нам нужно построить и вывести на экран монитора график первой производной функции f ( X ) на интервале [a, b] , то есть построить график функции Y ′( X ) =
df ( X ) . Выберем для построения N + 1 равноdX
отстоящих точек X k на интервале [a, b] , в которых будет вычисляться и выводиться на экран производная Y ′ . То есть функция будет вычисляться в точках X k = a + ∆X plot ⋅ (k − 1) , где ∆X plot = Вычисление производной функции
b−a и k = 1,2, , N + 1 . N
f ( X ) в каждой из этих точек будем
выполнять с шагом дифференцирования ∆X . Обратим внимание, что параметры ∆X plot и ∆X − совершенно независимые и разные параметры ! Параметр ∆X plot определяет степень детализации графика производной Y ′ , и должен выбираться из соображений, чтобы все особенности функции хорошо прорисовывались на графике, а шаг
∆X
определяет точность вычисления производной в точках
X k вывода
графика, и должен выбираться так, чтобы производная вычислялась с требуемой в задаче точностью. В определенных конкретных случаях иногда бывает возможным положить ∆X = ∆X plot , но в общем случае ∆X ≠ ∆X plot ! Это
обстоятельство
нужно
всегда
учитывать
при
вычислении
производных функций и выводе их графиков, иначе можно легко оказаться в ситуации, когда по хорошо прорисованному графику производной функции будут делаться неправильные физические выводы и заключения, поскольку сама эта функция будет вычислена с плохой и недостаточной для задачи точностью. 7
Пример построения графиков производных 2
2
Построить графики функции Y(X) = 1/(a + X ) , ее первой и второй производных. Для построения требуемых графиков программа использует два вложенных цикла. Первый цикл по переменной N соответствует рисованию графиков самой функции (N = 0), ее первой (N = 1) и второй производных (N = 2).
Рисование линии каждого графика происходит во втором,
внутреннем цикле. В качестве переменной внутреннего цикла используется горизонтальная координата экрана iX . Во внутреннем цикле вычисляются вещественные координаты X, Y и рисуются линии из предыдущей точки в текущую iX, iY. Для вычисления требуемой функции используется
функция
F,
которая
Y(X)
зависит
и ее производных
от
двух
параметров:
вещественного X и целого N. Эти параметры используются только внутри функции и могут отличаться от описанных выше одноименных, глобальных переменных. Параметр N имеет смысл порядка производной. В случае отрицательного или нулевого параметра N функция F просто возвращает величину
Y ( X ) = 1 (a 2 + X 2 ) .
функция
F
F (n) ( X ) =
F
вычисляет ( n −1)
Когда параметр
N
положительный,
N-ую производную по разностной схеме
( X + ∆X ) − F ( n −1) ( X ) и, таким образом, функция ∆X
F
обращается сама к себе с параметром N−1. Использование рекурсии (обращения функции самой к себе) позволяет писать короткие и простые для понимания программы, но эти программы, как правило, малоэффективны, так как занимают много места в памяти и долго выполняются. Например, в описываемом случае, третья производная будет вычисляться раза в два дольше, чем когда рекурсия не используется. 8
Вариант программы: uses Crt, Graph; const dX = 0.001; var Gd, Gm : integer; N: integer; iX, iY : integer; X, Y : real; XS, YS : real; Xm, Ym : real; a: real; label 1;
{ номер производной } { экранные координаты } { физические координаты } { масштабирующие множители } { максимальные значения } { параметр }
{ Вычисление функции F(X) или ее N-ой производной } function F (X: real; N: integer) : real; begin if N <= 0 then F := 1 / (Sqr (a) + Sqr (X)) else F := (F (X+dX, N-1) - F (X, N-1)) / dX; end; begin 1: ClrScr; { очистка экрана } WriteLn ('Введите максимальные значения аргумента и функции:'); Write ('Xm = '); Read (Xm); if Xm < 0 then goto 1; { проверка корректности Xm } Write ('Ym = '); Read (Ym); if Ym < 0 then goto 1; { проверка корректности Ym } Write ('Введите параметр a = '); ReadLn (a); { Переход в графический режим экрана } Gd := Detect; InitGraph (Gd, Gm, 'C:\TP\Bgi'); if GraphResult <> grOk then Halt(1); { Построение осей абсцисс и ординат } SetColor (LightBlue); iX := GetMaxX div 2; Line (iX, 0, iX, GetMaxY); iY := GetMaxY div 2; Line (0, iY, GetMaxX, iY);
9
{ Вычисление масштабирующих множителей } XS := (GetMaxX div 2) / Xm; YS := (GetMaxY div 2) / Ym; { Цикл построения графиков } for N := 0 to 2 do begin SetColor (White - N);
{ номер производной } { цвет графика }
{ Задание начальной точки: iX = 0, X = -Xm } Y := F (-Xm, N); iY := round ((Ym - Y) * YS); MoveTo (0, iY); { начальная точка } { Цикл рисования графика } for iX := 0 to GetMaxX do begin X := iX / XS - Xm; Y := F (X, N); iY := round ((Ym - Y) * YS); LineTo (iX, iY); end; end; ReadLn; CloseGraph; goto 1; end.
{ рисование линии }
{ 'зависание' на приеме <Enter> с клавиатуры } { выход из графического режима экрана }
10
Задание на вычисление производных функций и построение их графиков Построить графики функций, их первых и вторых производных: 2
1.
y ( x ) =e − ( x − 2 )
2.
y ( x ) = sin
3.
y ( x ) = e − x ⋅ cos(2 x ) .
4.
y ( x ) = tg x .
5.
y ( x ) = arctg x .
6.
y( x) =
7.
y ( x ) = sin x x ,
8.
y( x) =
9.
y( x) =
.
( x)
x>0.
,
(
)
1 x −x e + e = cosh x . 2 при x = 0,
y(0) = 1 .
x 2 k −1 ( −1) k +1 . k =1 (2 k − 1)! 5
∑ 5
∑x
k
.
k =1 5
10. y ( x ) =
∑
( −1) k x k /
k =1
5
∑x
k
.
k =1
5
11. y ( x ) =
∏ (x − k )
.
k =1
12. y ( x ) = Ln ( x ) =
e x d n −x n (e x ) , n! dx n
11
n = 0,1,2,… − полиномы Лагерра.
ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ ФУНКЦИЙ Операция интегрирования функции является обратной операцией по отношению к дифференцированию функции, т.е. первая производная неопределенного интеграла любой функции
f ( X ) будет самой функцией
f ( X ) . Геометрический смысл определенного интеграла − это площадь под кривой
f ( X ) , ограниченная по оси X пределами a и b (см. рисунок).
Отрицательное значение функции создает площадь отрицательной величины. Под численным интегрированием подразумевается приближенное вычисление
величины
определенного интеграла Y
b
S=
∫ f ( X ) dX
,
+ −
a
где
f (X)
+
a
f ( X ) − интегрируемая
X b
функция, a и b − пределы интегрирования,
S
−
результат интегрирования. Для
приближенного
вычисления
определенных
интегралов
используются квадратурные формулы b
S=
∫ a
n
f ( X ) dX ≈
∑q
j
f (X j ) ,
j =0
где qj − некоторые числа (веса), Xj − некоторые точки (узлы) отрезка [a,b] . Точность и скорость вычисления определенного интеграла зависят от выбора числа разбиений n , весов qj и узлов Xj .
12
Существует много различных квадратурных формул. Рассмотрим здесь лишь несколько наиболее простых, но обычно обеспечивающих достаточную точность вычислений.
Формула трапеций Один из наиболее простых способов численного интегрирования − вычисление по формуле трапеций. Этот способ предполагает равномерное распределение узлов Xj на отрезке
[a,b] :
Y
Xj −X
j −1
=d ,
f (X+d) f (X)
где j = 1,2,…,n+1 , или
X j = a + jd , где d = (b − a ) n , j = 0,1,2,…,n .
X X
Значения весов qj выбираются из
X+d
следующих соображений. Интегрируемая функция
f ( X ) аппроксимируется ломаной линией, узлы
которой в точках Xj совпадают с исходной функцией
f ( X j ) . Таким
образом, интеграл заменяется суммой площадей трапеций, образованных значениями функции f ( X ) в точках a, a + d , a + 2d ,, a + ( n − 1)d , b :
S≈
f (a ) + f (a + d ) f ( a + d ) + f ( a + 2d ) d+ d ++ 2 2 +
f ( a + ( n − 1)d ) + f (b) d 2
.
13
После приведения подобных величин получим окончательную формулу b
S=
∫ a
f ( a ) + f (b) n −1 f ( X ) dX ≈ d f ( a + jd ) . + 2 j =1
∑
Y f (a+(n-1)d) f (a+d) f (a)
f (X)
f (b)
X a
d
b
Из полученной формулы нетрудно получить значения весов qj для формулы трапеций:
, если 0 < j < n ; d qj = d / 2 , если j = 0 или j = n . Очевидно, что при увеличении числа разбиений n точность вычисления интеграла возрастает, однако, при этом возрастает и время вычисления. Кроме того, при чрезмерно малой величине отрезка d начинает возрастать ошибка округления, обусловленная погрешностью вычислений в ЭВМ, поскольку и представление любых чисел, и выполнение любых операций с этими числами в компьютере всегда выполняется с конечным числом значащих цифр. Поэтому с ростом числа разбиений n точность вычисления интеграла сначала возрастает, а затем, начиная с некоторого оптимального значения числа разбиений, падает. Обычно выбирают число разбиений n так, чтобы величина отрезка d составляла 0.001 ÷ 0.1 от характерного интервала изменения функции. 14
Формула Симпсона Другой способ численного интегрирования − это вычисление по формуле Симпсона. Так же как и в формуле трапеций, здесь используется равномерное распределение узлов Xj на отрезке [a,b] . Но, в отличие от формулы
трапеций,
в
этом
случае
исходная
f (X )
функция
аппроксимируется кусками параболы, которые описываются следующей формулой:
F − 2 F0 + F1 F1 − F−1 (∆X )2 , ∆X + −1 2 2d 2d
f ( X ) ≈ f * ( ∆X ) = F0 +
где F−1 = f ( X j −1 ) , F0 = f ( X j ) , F1 = f ( X j +1 ) и ∆X = X − Xj . В узлах Xj-1 , Xj , Xj+1 аппроксимирующая функция
f * ( ∆X ) равняется
исходной функции f ( X ) :
f * ( −d ) = F−1 = f ( X j −1 ) , f * (0) = F0 = f ( X j ) ,
d
d
Y
F0
f (X)
f *(∆X)
F1
F-1
f * (d ) = F1 = f ( X j +1 ) . Определенный интеграл от приближенной
X Xj-1
Xj
Xj+1
f * ( ∆X )
в
функции пределах от
∆X = −d до ∆X = d имеет значение
X j +1
∫
X j −1
d
f ( X ) dX ≈
∫f
*
( X ) dX =
−d
15
d (F−1 + 4 F0 + F1 ) . 3
n = 2m
Для четного числа разбиений
можно записать формулу
численного интегрирования по формуле Симпсона:
S≈
d ( f 0 + 4 f1 + 2 f 2 + 4 f 3 + + 4 f 2 m −1 + f 2 m ) = 3
=
m m −1 d f 0 + f 2m + 4 . 2 + f f 2 1 2 j j − 3 j =1 j =1
∑
∑
Точность квадратурных формул Между степенью многочленов, для которых точна квадратурная формула, и порядком точности квадратурной формулы по отношению к шагу
d , имеется прямая связь. Так, формула трапеций точна для многочленов первой степени и обладает вторым порядком точности относительно d , т.е. ошибка численного интегрирования функции по формуле трапеций пропорциональна R ~ d
2
. Формула Симпсона, будучи точной для многочленов
третьей степени, соответственно имеет четвертый порядок точности. Существуют квадратурные формулы (например, формула Гаусса), которые являются точными для многочленов
2n−1
степени и,
соответственно, имеют 2n порядок точности. Из-за сложности выражений таких формул они здесь не приводятся. Для решения задач данного курса с необходимой точностью, как и в большинстве практических случаев, точности вычислений по формуле трапеций или по формуле Симпсона при правильном выборе шага интегрирования d вполне достаточно.
16
Особенности вычисления интегралов с бесконечными пределами В физических задачах часто один или оба предела интегрирования равны бесконечности. Приведем здесь два наиболее простых приема вычисления интегралов с бесконечными пределами. Прием 1 − введение такой замены переменных, чтобы превратить пределы интегрирования в конечные. Например, для интеграла ∞
∫ f ( X ) dX
,
a>0,
a
замена X = a/(1−t) превращает полупрямую [a,∞) в отрезок [0,1]. Если после преобразования подынтегральная функция вместе с некоторым числом производных
остается
ограниченной,
то
можно
находить
интеграл
стандартными численными методами. Прием 2 − обрезание верхнего предела. Выберем настолько большое
b, чтобы интеграл ∞
∫ f ( X ) dX b
был меньше допустимой ошибки вычислений. Тогда его можно отбросить, а интеграл b
∫ f ( X ) dX a
вычислить
по
квадратурной
формуле.
Вблизи
верхнего
предела
подынтегральная функция мала, поэтому вычисление выгодно вести на квазиравномерных сетках, шаг которых велик при X ≈ b . 17
Существуют и другие приемы вычисления интегралов с бесконечными пределами, но они более сложные и здесь не рассматриваются.
Пример построения графиков интегралов Построить подынтегральную функцию
f ( X ) = e − aX
2
и интеграл X
от этой функции с переменным верхним пределом R ( X ) =
∫
2
e − a t dt .
−Xm
Программа
построения
графиков
подынтегральной
функции
и
интеграла этой функции состоит из двух последовательных циклов рисования.
Функция SUM используется для вычисления интеграла.
Его
текущее значение содержится в переменной S . При каждом обращении к функции SUM к переменной S добавляется площадь трапеции (Yold + F(X)) * (X − Xold) * 0.5
и запоминаются значения «старых» координат: , Xold := X Yold := F(X) . Перед началом вычисления интеграла необходимо обнулить переменную S и задать значения «старых» координат.
В остальном вывод графика
интеграла (т.е. графика функции SUM) не отличается от вывода графиков других функций. В случае полного вычисления интеграла при каждом обращении к функции, время вычисления и построения графика будет существенно больше.
18
Вариант программы: uses Crt, Graph; const dX = 0.01; var Gd, Gm : integer; iX, iY : integer; X, Y : real; XS, YS : real; Xm, Ym : real; a: real; S: real; Xold : real; Yold : real; label 1;
{ экранные координаты } { физические координаты } { масштабирующие множители } { максимальные значения } { параметр } { текущее значение интеграла } { старая координата X } { старая координата Y }
{ Интегрируемая функция } function F (X: real) : real; begin F := exp (- a * Sqr (X)); end; { Интеграл функции } function SUM (X: real) : real; var Y: real; begin Y := F(X); { Изменение значения интеграла } S := S + (Yold + Y) * (X - Xold) * 0.5; { Старые значения } Xold := X; Yold := Y; Sum := S; end;
{ текущая ордината }
{ результат вычислений }
begin 1: ClrScr; { очистка экрана } WriteLn ('Введите максимальные значения аргумента и функции:'); Write ('Xm = '); Read (Xm); if Xm < 0 then goto 1; { проверка корректности Xm } Write ('Ym = '); Read (Ym);
19
if Ym < 0 then goto 1; Write ('Введите параметр a = '); ReadLn (a);
{ проверка корректности Ym }
{ Переход в графический режим экрана } Gd := Detect; InitGraph (Gd, Gm, 'C:\TP\Bgi'); if GraphResult <> grOk then Halt(1); { Построение осей абсцисс и ординат } SetColor (LightBlue); iX := GetMaxX div 2; Line (iX, 0, iX, GetMaxY); iY := GetMaxY; Line (0, iY, GetMaxX, iY); { Вычисление масштабирующих множителей } XS := (GetMaxX div 2) / Xm; YS := GetMaxY / Ym; { Рисование функции } SetColor (White);
{ цвет графика }
{ Задание начальной точки: iX = 0, X = -Xm } Y := F (-Xm); iY := round ((Ym - Y) * YS); MoveTo (0, iY); { начальная точка } for iX := 0 to GetMaxX do begin X := iX / XS - Xm; Y := F (X); iY := round ((Ym - Y) * YS); LineTo (iX, iY); end;
{ рисование линии }
{ Рисование интеграла } SetColor (Yellow); X := - Xm; S := 0; Xold := X; Yold := F(X); MoveTo (0, GetMaxY); repeat
{ цвет графика }
{ начальная точка }
{ Вычисление физических координат } X := X + dX;
20
Y := Sum (X); { Вычисление экранных координат } iX := round ((Xm + X) * XS); iY := round ((Ym - Y) * YS); LineTo (iX, iY); until X > Xm;
{ рисование линии }
ReadLn; CloseGraph; goto 1; end.
{ 'зависание' на приеме <Enter> с клавиатуры } { выход из графического режима экрана }
Задание на численное интегрирование Построить графики подынтегральной функции и интеграла от этой функции с переменным верхним пределом или с параметром в подынтегральном выражении: t
1. Si(t ) =
∫ 0
sinX dX X
− интегральный синус.
t
2.
∫e
X
X dX .
0
t
3.
∫e
−( X − a ) 2
dX
.
0
t
4.
∫ cos(sin(aX )) dX
.
0
t
5.
∫ sin(cos(aX )) dX
.
0
21
t
6.
∫ X ln( X ) dX
.
0
t
7.
∫ sin(ln X ) dX
.
0
t
8.
∫ (A − e
− ln ( BX )
) dX
.
0
t
9.
2 ∫ (1 − e )− π arctg X dX −X
.
0
t
10.
∫ exp(a + b sin X ) dX
.
0
t
11. S (t ) =
π
∫ sin 2 X
2
0
t
12. C (t ) =
π
∫ cos 2 X
2
0
t
13. Li(t ) =
− интеграл Френеля.
dX
− интеграл Френеля.
dX ln X
∫ 0
π 2
14. K(t ) =
dX
dX
∫
1 − t 2 sin 2 X
0
1 15. J m (t ) = π
− интегральный логарифм (t > 0).
π
∫ cos(m X − t sin X ) dX 0
∞
16. E n (t ) =
∫e
− tx
X − n dX , n = 0,1,2,…
1
22
РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ
Пусть задана функция
f (X )
и нужно найти корни уравнения
f (X ) = 0 . Если функция линейна по переменной X , то уравнение достаточно просто решается аналитическими методами. Как правило, уравнение относительно просто решается аналитически и в случае, если функция представляет из себя алгебраический многочлен второй степени (квадратные уравнения). Для алгебраических многочленов более высокой степени нахождение решений аналитически либо весьма сложно в силу громоздкости формул (существуют формулы для многочленов третьей степени), либо вообще
невозможно.
Похожая
ситуация
возникает
и
при
решении
трансцендентных уравнений, содержащих тригонометрические или другие специальные функции, например, логарифмы или экспоненты. В этих случаях прибегают к численному решению уравнений. Будем
называть
алгебраические
и
трансцендентные
уравнения
нелинейными уравнениями. В общем случае такое уравнение может иметь произвольное число действительных корней. Поэтому задача нахождения корней нелинейного уравнения задачи:
f ( X ) = 0 фактически распадается на две
1) задачу отделения или локализации корней, т.е. нахождения
достаточно малых областей, в каждой из которых имеется всего один корень; 2) вычисление или уточнение корней с заданной точностью в найденных малых областях. В общем случае не существует каких-либо универсальных и достаточно эффективных
методов
решения
задачи
локализации
корней.
При
использовании ЭВМ такая задача наиболее просто может быть решена
23
построением и анализом графика функции f ( X ) в интервале значений X , которые не противоречат физической постановке задачи. Когда корни уравнения локализованы, т.е. когда для каждого корня найдена область, в которой кроме него нет других корней, можно приступить к численному вычислению или уточнению корней с заданной точностью. Существует много различных методов численного вычисления корней. Рассмотрим здесь лишь некоторые из них: метод деления отрезка пополам или метод дихотомии, метод простых итераций и метод Ньютона.
Метод деления отрезка пополам (дихотомия) Метод
деления
отрезка
пополам
является,
пожалуй,
наиболее
устойчивым по сходимости методом и просто реализуется на ЭВМ. Известно, что для существования единственного решения уравнения
f ( X ) = 0 на отрезке [a, b] необходимо, чтобы функция f ( X ) имела на концах отрезка противоположные знаки f(a)⋅f(b) < 0 , а первая производная
f ′( X ) на данном отрезке не меняла своего знака. Разделим отрезок [a,b] пополам и выберем ту его половину, где произведение
Y
f (X)
значений функции на концах половины тельно.
отрезка
отрица-
Тогда
искомое
a0
половине
Многократное
X
b2 b0 b1
решение будет находиться на этой
a2 a1
отрезка. повторение 24
такой процедуры деления отрезка пополам позволяет определить решение с требуемой точностью ε.
f (X ) = 0
Алгоритм решения уравнения
методом деления отрезка
пополам можно кратко записать в следующем виде: середина отрезка: ck =
a k + bk 2
,
ck , a k +1 = a k ,
если f ( a k ) ⋅ f ( ck ) ≥ 0 если f (a k ) ⋅ f ( ck ) < 0
; ;
c k , bk +1 = bk ,
если f (bk ) ⋅ f ( ck ) ≥ 0 если f (bk ) ⋅ f ( ck ) < 0
; .
Процесс делений прекращается, когда начинает выполняться условие
bk +1 − a k +1 < ε / 2 .
Метод простых итераций Для того чтобы использовать метод простых итераций, уравнение
f ( X ) = 0 заменяют эквивалентным ему уравнением следующего вида: X = ϕ(X) . Такая замена может быть выполнена многими способами. Например, можно положить
ϕ( X ) = X + ψ ( X ) f ( X )
, где
ψ( X )
− произвольная
непрерывная знакопостоянная функция. Нужно только помнить, что от удачности выбора ϕ( X ) зависит успех применения метода. Затем выбирают некоторое начальное приближение последующие значения Xk вычисляют по формуле 25
X = X0
и
Xk = ϕ(Xk-1) , где k = 1, 2, …. . Но не для всех функций ϕ(X) и начальных значений X0 последовательность X0 , X1 , X2 , … будет сходиться к решению уравнения
X∗ = ϕ(X∗) . Приведенные выше итерации Xk = ϕ(Xk-1) имеют простую геометрическую интерпретацию (см. рисунок). Решение X∗ уравнения X = ϕ(X) является абсциссой точки пересечения прямой Y = X и кривой Y = ϕ(X) .
0< ϕ′ <1
Y
-1< ϕ′ <0
Y
Y=X
Y=X
Y= ϕ (X) Y= ϕ (X)
X
X X0
X0
X1 X2 X*
X2 X*
Из рисунка видно, что если в окрестности
[a,b]
X1
решения
X∗
выполняются неравенства
0 < ϕ′( X ) ≤ α < 1 , где α = max ϕ′( X ) [ a ,b ]
то последовательность
,
{Xk} монотонно сходится к X∗ , причем с той
стороны, с которой расположено начальное приближение. В случае
− 1 < −α ≤ ϕ′( X ) < 0 , 26
последовательные приближения также сходятся к решению, но расположены поочередно с разных сторон от X∗ . Легко видеть, что сходимость тем быстрее, чем меньше ϕ ′ . Если же абсолютная величина производной функции ϕ(X) на выбранном отрезке [a,b] локализации корня превышает единицу, то есть
ϕ′ > 1 ,
то наклон функции ϕ(X) становится круче, чем наклон функции Y = X . Нетрудно догадаться, что в этом случае последовательные приближения Xk будут расходиться от решения X∗ . Поэтому для сходимости метода и важен удачный выбор функции
ϕ(X) , чтобы в области локализации корня
выполнялось неравенство ϕ′ < 1 .
Метод Ньютона Рассмотрим
решение
f (X ) = 0
уравнения методом
Ньютона
Y
(метод
касательных).
f (X0)
В начальной точке касательная
Y = f (X )
к
X0
f (X1)
кривой
f (X2)
задается
X2
X X1
X0
X*
следующим уравнением:
Y = f ( X 0 ) + ( X − X 0 ) ⋅ f ′( X 0 ) . Положив
Y = 0 , находим точку X1 пересечения касательной с осью
абсцисс: 27
X1 = X 0 −
f (X0) f ′( X 0 )
.
Построив касательную в точке X1 , можно получить по аналогичной формуле следующую точку X2 пересечения новой касательной с осью X и т.д.:
X k = X k −1 −
f ( X k −1 ) f ′( X k −1 )
.
Очевидно, что из метода Ньютона можно перейти к методу итераций, если описанную раньше функцию ϕ задать в виде
ϕ( X ) = X −
f (X ) f ′( X )
.
Особенности методов решения уравнений Все приведенные выше методы решения алгебраических уравнений основываются на итерационном процессе вычислений. Вычисления продолжаются до тех пор, пока не будет достигнута необходимая точность. Хотя случайно, точное решение может быть найдено на k -ой итерации: Xk = X∗ . Если сходимость присутствует, то погрешность метода простых итераций и метода Ньютона убывает, по крайней мере, по геометрической прогрессии с числом итераций. Как правило, эта скорость характерна для начальных итераций.
Затем, когда погрешность становится достаточно
малой, скорость сходимости качественно увеличивается.
Погрешность
метода деления отрезка пополам уменьшается вдвое на каждом шаге.
28
С
точки зрения скорости сходимости метод простых итераций и метод Ньютона более предпочтительны. В то же время метод простых итераций и метод Ньютона, в зависимости от выбора начального приближения X0 и от вида функции
f ( X ) , могут
сходиться плохо или вообще не сходиться. Поэтому при их использовании нужно всегда проверять сходимость итерационного процесса и, если последовательные приближения
Xk начинают разбегаться, то прерывать
вычисления. С точки зрения надежности сходимости более предпочтителен метод деления отрезка пополам, который сходится всегда, если корень уравнения
локализован
в
некоторой
области.
При
современных
компьютерных средствах вычислений, как правило, скорости сходимости метода деления пополам вполне достаточно для решения большинства задач.
Примеры решения уравнений Пример 1. Извлечение квадратного корня итерационным методом. Вычислить квадратный корень
A итерационным методом.
Данную задачу можно привести к решению алгебраического уравнения
f (X ) = X 2 − A = 0 . Использование метода Ньютона позволяет записать решение этого уравнения в виде итераций:
X k +1 = ϕ( X k ) = X k −
f (Xk ) 1 A = Xk + . f ′( X k ) 2 Xk
29
Данный
способ
вычисления
квадратного
корня,
сводящийся
к
арифметическим действиям, применяется в ЭВМ, в которых отсутствует элементарная операция вычисления квадратного корня. Вариант программы: uses Crt; var N : integer; X : real; A : real; label 1;
{ номер итерации } { текущее значение переменной }
begin 1: ClrScr; { очистка экрана } Write ('Вычислить квадратный корень из A = '); ReadLn (A); { Вычисление квадратного корня } X := A; { начальное значение } for N := 0 to 20 do { цикл } begin WriteLn (N, ', X = ', X, ', ошибка = ', X - Sqrt (A)); X := (X + A / X) * 0.5; { итерация } end; ReadLn; { 'зависание' на приеме <Enter> с клавиатуры } goto 1; end.
Пример 2. Сравнение сходимости разных методов. Решить алгебраическое уравнение
X 2 + sin X − 1 = 0
методом
Ньютона и методом деления отрезка пополам. Первая производная для метода Ньютона вычисляется в виде конечной разности: F'(X) = ( F(X+dX) − F(X) ) / dX . Поэтому новое значение X вычисляется из следующего выражения: 30
X − dX⋅F(X) / ( F(X+dX) − F(X) )
.
Для метода деления пополам начало и конец отрезка определяются переменными Xmin и Xmax . В зависимости от знака выражения
F(Xnew)⋅F(Xmin)
,
где Xnew равно середине отрезка (Xmin + Xmax) / 2 , начало Xmin или конец
Xmax отрезка изменяется. Затем этот цикл вычисления итераций повторяется несколько раз. Вариант программы: uses Crt; const dX = 0.001; var N: integer; Xmin, Xmax : real; X: real; Xnew : real; label 1;
{ пределы отрезка } { середина отрезка }
{ Функция F(X) } function F (X: real) : real; begin F := Sqr (X) + Sin (X) - 1; end; begin ClrScr; { очистка экрана } 1: WriteLn ('Введите начало и конец отрезка:'); Write ('Xmin = '); Read (Xmin); Write ('Xmax = '); Read (Xmax); { проверка корректности Xmin и Xmax } if Xmin > Xmax then begin Writeln('…Xmin > Xmax !…'); goto 1; end; if F (Xmin) * F (Xmax) > 0 then begin Writeln('…Решения нет или оно неоднозначно…'); goto 1; end; Write ('Введите начальное значение X = '); ReadLn (X); { Решение уравнения F(X) = 0 }
31
for N := 0 to 20 do begin WriteLn ('N = ', N, ' Xmin = ', Xmin:10:8, ', Xmax = ', Xmax:10:8, ', X= ', X:10:8); { Метод деления отрезка пополам } Xnew := (Xmin + Xmax) * 0.5; { середина отрезка } if F (Xnew) * F (Xmin) > 0 then Xmin := Xnew { исправление минимального предела } else Xmax := Xnew; { исправление максимального предела } { Метод Ньютона } X := X - dX * F(X) / (F(X+dX) - F(X)); end; ReadLn; goto 1; end.
{ 'зависание' на приеме <Enter> с клавиатуры }
Пример 3. Построение графика уравнения F(X,Y) = 0 . Решить уравнение
Y + sin(Y + a ) − X + sin X = 0
и построить
график зависимости Y(X). В
качестве
переменной
цикла
вывода
графика
используется
горизонтальная координата экрана iX . По этой координате iX вычисляется вещественное значение X . Для текущего значения X методом Ньютона из уравнения F(X,Y) = 0 находится решение − величина Y. Если полученная величина Y находится в пределах области экрана, то происходит вывод на экран. Ключ вывода Point определяет, какой тип вывода будет происходить: вывод точки (MoveTo) или построение линии (LineTo) . Этот ключ нужен, если решение состоит из нескольких отдельных линий. Описанная программа не выводит график функции с несколькими ветвями, т.е. когда существует несколько решений Y для текущего значения X . 32
Вариант программы: uses Crt, Graph; const dY = 0.0001; var Gd, Gm : integer; iX, iY : integer; X, Y : real; Yold : real; XS, YS : real; Xmin, Ymin : real; Xmax, Ymax : real; a: real; Point : boolean;
{ экранные координаты } { физические координаты } { старая координата Y } { масштабирующие множители } { минимальные значения } { максимальные значения } { параметр } { поставить точку или рисовать линию }
label 1; { Решаемое уравнение: F(X,Y) = 0 } function F (Y: real) : real; begin F := Y + Sin (Y + a) - Sqrt (X + Sin (X)); end; begin ClrScr; { очистка экрана } 1: WriteLn ('Введите минимальные и максимальные значения:'); Write ('Xmin = '); Read (Xmin); Write ('Xmax = '); Read (Xmax); { Проверка корректности границ Xmin и Xmax } if Xmin < 0 then begin Writeln('…Xmin < 0 !'); goto 1; end; if Xmin >= Xmax then begin Writeln('…Xmin >= Xmax !'); goto 1; end; Write ('Ymin = '); Read (Ymin); Write ('Ymax = '); Read (Ymax); { Проверка корректности границ Ymin и Ymax } if Ymin >= Ymax then begin Writeln('…Ymin >= Ymax !'); goto 1; end; Write ('Введите параметр a = '); ReadLn (a); { Переход в графический режим экрана } Gd := Detect; InitGraph (Gd, Gm, 'C:\TP\Bgi'); if GraphResult <> grOk then Halt(1); { Вычисление масштабирующих множителей }
33
XS := GetMaxX / (Xmax - Xmin); YS := GetMaxY / (Ymax - Ymin); { Построение осей абсцисс и ординат } SetColor (LightBlue); if Xmin = 0 then Line (0, 0, 0, GetMaxY); if Ymin*Ymax <= 0 then begin iY := round (Ymax * YS); Line (0, iY, GetMaxX, iY); end; { Цикл вывода } Point := True; SetColor (White); for iX := 0 to GetMaxX do begin X := Xmin + iX / XS; if (F(Ymin) * F(Ymax) > 0) then Point := True else begin
{ поставить точку } { цвет графика }
{ поставить точку }
{ Решение уравнения F(X,Y) = 0 методом Ньютона } repeat Yold := Y; Y := Y - F(Y) * dY / (F(Y+dY) - F(Y)); until Abs (Y - Yold) < dY; { Вывод линии или точки } if ((Y > Ymin) and (Y < Ymax)) then begin; iY := round ((Ymax - Y) * YS); if Point then MoveTo (iX, iY) { точка } else LineTo (iX, iY); { линия } Point := False; { рисовать линию } end; end; end; ReadLn; CloseGraph; goto 1; end.
{ 'зависание' на приеме <Enter> с клавиатуры } { выход из графического режима экрана }
34
Задание на решение уравнений Построить графики функций Y(X) для уравнений: 1.
X 2 + sin( X + Y ) − Y = 0
2.
cos( X + Y ) + a sin X − Y = 0
3.
X Y = X ⋅Y X
4.
∫ 0
. .
.
sin t dt = cos( X + Y ) − 1 t
.
5.
( X 2 + Y 2 − aX ) 2 − l 2 ( X 2 + Y 2 ) = 0 , a > 0, l > 0 .
6.
( X 2 + Y 2 )( X 2 + Y 2 − 2aX ) − a 2Y 2 = 0 , a > 0 .
7.
( X 2 + Y 2 ) 2 − 2a 2 ( X 2 − Y 2 ) = 0 , a > 0 .
8.
a cos X + Y ( 2a − Y ) / a = a − Y , a > 0 .
9.
a 2 (1 + arctg 2 (Y / X )) = X 2 + Y 2
10.
X + a 2 − Y 2 = a ln a + a 2 − Y 2 / Y
11.
X = (e Y − e −Y
12.
X 3 + Y 3 = 3a X Y
[(
) ]
[(
) / (e Y + e −Y )
.
) ]
.
, a>0.
35
, a>0.
ЗАДАЧИ
Задача 1 Искусственный спутник движется по замкнутой орбите вокруг Земли. Траектория спутника описывается уравнениями:
x(t) = a (cos ξ − e) , y(t) = a 1 − e 2 sin ξ , t = (1/R0)
a 3 / g (ξ − e sin ξ ) .
Здесь: ξ − параметр с пределами изменения от 0 до 2π ;
a = (rmax + rmin)/2 − большая полуось орбиты; e = (rmax − rmin) / (rmax + rmin) − эксцентриситет орбиты; rmin = 8000 км − перигей орбиты; rmax = 20000 км − апогей орбиты; R0 − радиус Земли; g − ускорение свободного падения. Вопросы: 1. Нарисовать траекторию спутника. 2. Построить зависимость от времени компонент скорости vx и vy , полной скорости v, компонент ускорения wx и wy , а также полного ускорения
w спутника. 3. Построить зависимость длины траектории спутника 2π
s=
∫ 0
2
2
dx dy + dξ dξ dξ
от апогея орбиты rmax в пределах от 8000 до 200000 км. 36
Задача 2 Полупроводниковые диоды (D − на рисунке) обладают свойством пропускать электрический ток только в одном направлении и широко используются
на
практике.
Зависимость падения напряже-
D
ния UD на диоде от проходящего через него тока I может быть
приближенно
описана
выражением:
r
E
UD = 50 ln (10 I + 1) , где UD выражено в мВ, а I − в мА. Вопросы: 1. Для схемы, изображенной на рисунке, при
r = 40 Ом
построить
зависимость тока I в цепи как функцию приложенного напряжения E на интервале [0,1000] мВ. Чем характерна полученная зависимость по сравнению с классической зависимостью закона Ома ?
Какой ток
возникнет в цепи при E = 100, 200, 300, 500, 1000 мВ ?
2π t . Построить зависимость напряжения T
2. Пусть E = E(t) = E0 sin
U r (t ) на сопротивлении r для положительного полупериода колебаний. Одновременно для сравнения вывести зависимость E(t). Исследовать поведение зависимостей от величины амплитуды
37
E0 .
При каких
значениях E0 усредненная по положительному полупериоду величина T /2
η=
∫
T /2
(E (t ) − Ur (t ) ) dt /
0
∫ E (t ) dt
не превышает 10 % ?
0
Задача 3 Снаряд массы m = 6 кг выстреливается под углом α к горизонту с начальной скоростью
v0 = 800 м/с.
При сопротивлении воздуха,
пропорциональном первой степени скорости R = −γv, где γ = 0.18 кг/с, движение снаряда описывается выражениями:
x(t) =
mv 0 cos α {1 – exp(−γt/m)} , γ
y(t) =
mgt m mg , v0 sin α + {1 – exp(−γt/m)} − γ γ γ
где g − ускорение свободного падения. Вопросы: 1. Построить зависимость дальности s полета снаряда от угла α. При каком угле обеспечивается максимальная дальность ? Сравнить со случаем
γ =0. 2. Построить зависимость координат (xm,ym) наивысшей точки траектории снаряда от угла α. Как соотносятся полученные зависимости xm(α) ,
ym(α) с графиком дальности полета s(α) ?
38
T
3. Построить зависимость длины траектории снаряда L =
∫
v x2 + v 2y dt от
0
угла
α (T − полное время полета).
При каких углах получается
минимальная и максимальная длины траекторий ?
Задача 4 Маленькая электрическая лампочка с тонкой вольфрамовой нитью при комнатной температуре T0 = 293 K (20° C) имеет сопротивление R0 = 1 Ом. При нагревании нити до температуры T ее сопротивление изменяется по закону
R (T ) = R 0 ⋅ [1 + α w (T − T0 )] , где
αw = 0.0042 1/К.
При
установившемся тепловом равновесии все тепло, выделяющееся в нити, испускается в виде излучения в окружающее пространство в соответствии с 4
зависимостью Pem = kw T , где kw = 3.05∙10
-14
Вт/К4, T − абсолютная
температура нити. Вопросы: 1. Построить зависимость температуры T нити от приложенного к лампочке напряжения U.
Какая температура будет при рабочем напряжении
U = 3.5 В ? При каком напряжении на лампочке нить расплавится w
(температура плавления вольфрама T p = 3653 K) ? 2. Построить аналогичные зависимости для лампочек с нитями из нихрома (αnich = 0.00025 K-1; knich = 1.5∙10 -14
(αAl = 0.0037 K-1; kAl = 5.9∙10
-15
nich
Вт/К4; T p
= 1673 K) и алюминия
Al Вт/К4; T p = 933 K). Сопротивления
39
лампочек при комнатной температуре одинаковы и равны R0 = 1 Ом. Какие температуры нитей будут при U = 3.5 В ? У какой лампочки температура
будет
наибольшей
(наименьшей)
при
одинаковом
напряжении ? При каких напряжениях нити лампочек будут плавиться ?
Задача 5 ( Тепловое излучение ) Всякое нагретое до температуры электромагнитного
излучения,
температурным излучением.
которое
T
тело является источником называют
тепловым
или
Спектральное распределение мощности
теплового излучения описывается формулой Планка
dPλ 2hc 2 1 , = 5 dλ λ exp[hc / (kλT )] − 1 h = 6.63⋅10-34 Дж∙с – постоянная Планка, c = 3∙108 м/с − скорость
где света,
k = 1.38∙10-23 Дж/К – постоянная Больцмана, λ − длина волны
излучения. Вопросы: 1. Построить график распределения мощности теплового излучения по длинам волн для произвольной температуры T. Исследовать качественно изменение распределения при изменении T. Как будет изменяться цвет тела при изменении температуры ? 2. Построить зависимость длины волны λmax максимума распределения от температуры. При построении графика использовать логарифмические
40
масштабы по осям
T
и
λmax .
Можно ли указать аналитическое
выражение для этой зависимости (закон смещения Вина) ? ∞
∫
3. Построить зависимость полной излучаемой мощности P =
0
dPλ dλ от dλ
температуры. График строить в логарифмических масштабах по T и P. Можно ли подобрать аналитическое выражение для этой зависимости (закон Стефана-Больцмана) ? 4. "Дневная" спектральная чувствительность
η(λ)
человеческого глаза
может быть аппроксимирована выражением:
λ η(λ) = 0.265 λ0 где
2
2 2 4.774 − λ exp − 101.41 − λ , λ 0 λ0
λ0 = 558 нм. Построить график зависимости полной мощности ∞
Peye =
∫ 0
dPλ η(λ ) dλ dλ
,
регистрируемой
температуры нагретого тела.
глазом,
как
функцию
Объяснить качественно получаемую
зависимость. 5. Для приведенной выше спектральной чувствительности глаза построить температурную зависимость доли мощности
ν eye (T )
теплового
излучения, регистрируемого глазом, от полной мощности, излучаемой нагретым телом: ∞
ν eye (T ) =
∫ 0
dPλ η(λ ) dλ dλ
∞
∫ 0
dPλ dλ . dλ
41
При какой температуре тела наблюдается максимум νeye ? Как можно объяснить полученный результат [4] ?
Задача 6 ( Маятниковые часы ) Энергия математического маятника массой m и длиной r в поле тяжести g = 9.8 м/с2 имеет вид:
E (rϕ )2 = + gr (1 − cos ϕ ) = gr (1 − cos ϕmax ) 2 m
,
где ϕmax − максимальный угол отклонения от вертикали. При 0 ≤ E ≤ 2mgr маятник совершает периодические колебания, период
T
которых
вычисляется по формуле: ϕ max
T=4
∫ 0
dϕ . ϕ
Вопросы: 1. Построить график зависимости нормированного периода колебаний
τ = T / T0 от угла максимального отклонения ϕmax, где T0 = 2π r / g – период малых колебаний. Насколько сильно зависит период колебаний от
ϕmax ? 2. Маятниковые часы с рабочим углом ϕmax = 10° установлены на корабле. Из-за качки корабля угол ϕmax может случайным образом увеличиваться до 30°. Какую точность хода можно ожидать от таких часов ? Оценить 42
ошибку, с которой Колумб мог бы определить географическую долготу Америки, имей он в своем плавании такие маятниковые часы.
Задача 7 ( Дальний порядок ) Кристаллическую структуру упорядоченного сплава CuZn (β-латунь) можно представить в виде двух вставленных друг в друга простых кубических решеток (подрешеток) [5]. Одна из подрешеток занята атомами меди, другая − атомами цинка. При этом каждый атом меди находится в центре куба, в восьми вершинах которого расположены атомы цинка, и наоборот, каждый атом цинка располагается в центре куба с восемью атомами меди в вершинах окружающего куба. О такой ситуации говорят, что в системе существует дальний порядок, когда во всем кристалле атомы и цинка, и меди точно "знают", какую именно из двух подрешеток им следует занимать. За меру порядка принимается величина (параметр дальнего порядка)
η=
Zn N Zn −1 , N 4
Zn
где N Zn − число атомов цинка в узлах "цинковой" подрешетки (всего N/2 узлов подрешетки),
N − общее число узлов решетки. При абсолютном
порядке, когда атомы меди и цинка занимают узлы только своих подрешеток, Zn = N/2 и η = 1. Если же дальний порядок полностью отсутствует, то N Zn
каждая из подрешеток содержит одинаковое количество атомов меди и Zn
цинка, N Zn = N/4 и η = 0. 43
Термодинамически устойчивое состояние соответствует минимуму свободной энергии F системы, то есть
F = E − T S → min , где E − энергия системы, T − температура, S − энтропия. Согласно теории Горского-Брэгга-Вильямса свободная энергия для системы типа β-латуни может быть записана в виде [5]:
1 1 F = N 2 (1 + η2 )V − kT ln 2 + (1 + η) ln(1 + η) + (1 − η) ln(1 − η) , 2 2 где k − постоянная Больцмана, V = VZnCu − энергия смешения, а
VZnCu, VZnZn
и
VZnZn + VCuCu − так называемая 2
VCuCu − энергии взаимодействия
соседних пар соответствующих атомов. Вопросы: 1. Используя безразмерный параметр T/Tc для температуры, где Tc = 4V/k (точка Курнакова), построить график функции свободной энергии для βлатуни в зависимости от параметра η и исследовать его поведение при разных температурах. Какие особенности поведения F можно отметить на графике ? 2. Построить зависимость η(T/Tc) и объяснить, что происходит с β-латунью при изменении температуры.
Можно ли, зная такую зависимость
(например, измерив ее экспериментально), определить энергию смешения
V?
44
Задача 8 С помощью идеальной безаберрационной линзы с поперечным размером
D
находящейся
получают в ее фокальной плоскости изображение точки, от
линзы
на
большом
расстоянии
(удаленной
на
бесконечность). Поскольку размер D ограничен, дифракция света на линзе приводит к тому, что в фокальной плоскости вместо точечного изображения получается размытое пятно.
Распределение интенсивности света в пятне
определяется выражениями:
sin X I p (ϕ ) = I 0 X
2
− для цилиндрической линзы, 2
2J (X ) I c (ϕ ) = I 0 1 − для круглой линзы, X где I0 − интенсивность в центре пятна, ϕ = ξ/F − угол между осевой линией линзы и линией, проведенной из центра линзы в точку ξ наблюдения в фокальной плоскости (считается, что точка-объект лежит на осевой линии),
F − фокусное расстояние линзы, X =
πD ϕ , λ − длина волны света. λ
Функция J1(x) называется функцией Бесселя 1-го порядка и может быть выражена через свое интегральное представление:
J1(x) =
2 π
π 2
∫ sin(x sin t ) sin t dt
.
0
Вопросы: 1. Построить графики распределения интенсивности света в фокальной плоскости для цилиндрической и круглой линз (для цилиндрической 45
линзы − это полосы, для круглой линзы − кольца). Насколько сильно отличаются распределения для этих линз ? 2. Для обоих случаев найти значения углов
ϕmin и ϕmax, при которых
наблюдаются минимумы и максимумы распределения света. Отложить значения этих углов на графике, где по оси ординат − угол, а по оси абсцисс − номер порядка дифракции. Для сравнения нарисовать на этом же графике прямые ϕ = πn и ϕ = (2n+1)
π , где n = 1,2,.....10. 2
3. Для обоих случаев найти распределение энергии света по порядкам дифракции и построить гистограммы распределения энергии для первых десяти порядков. Где и до какой степени сосредоточена основная часть энергии приходящего от точки света ?
Задача 9 ( Разрешение линзы ) В фокальной плоскости круглой линзы с диаметром D наблюдается изображение двух удаленных точек, отстоящих друг от друга на угловое расстояние ϕo. Согласно предыдущей задаче, в этом случае распределение интенсивности света может быть записано в виде
2 J ( X ) 2 2 J 1 ( X − X 0 ) 2 I(ϕ) = I 0 1 , + X X − X 0 где X0 =
πD ϕ0 . λ
46
Вопросы: 1. Нарисовать функцию I(ϕ) и исследовать ее поведение в зависимости от
ϕo . При каком значении ϕo изображения точек сливаются и перестают наблюдаться раздельно ? 2. Построить функцию V = (Imax − Imin) / Imax в зависимости от углового
ϕo
расстояния
между точками.
По критерию Рэлея точки еще
"разрешаются" (наблюдаются как раздельные точки), если максимум основного дифракционного пятна от первой точки совпадает с первым минимумом интенсивности для второй точки. Какому значению V это соответствует ? Считая, что при благоприятных условиях можно еще наблюдать разницу в интенсивностях в 5 %, найти соответствующее значение
ϕo , т.е. определить физический дифракционный предел
разрешения для наблюдаемых точек. 3. Используя полученные результаты, оценить минимальные размеры объектов на земле, которые еще можно наблюдать со спутника с высоты 200 км. Можно ли придумать какие-нибудь способы, чтобы раздельно "видеть" точки в случае, когда их изображения полностью слились из-за дифракции ? Другими словами, можно ли получить "сверхразрешение" ?
Задача 101 ( Монотрон ) Вакуумный
диод
представляет
из
себя
откачанный
объем
с
установленными внутри двумя электродами − катодом и анодом. Катод K 1
Задача предложена А.В.Новохатским.
47
диода
разогревается
высокой
до
температуры
с
помощью подогревателя
П .
Если
к
диоду
A
приложена
U
d
K
разность потенциалов U, то с катода
под
действием П
электрического поля начинают двигаться электроны в сторону анода А .
Если разность потенциалов имеет не только постоянную составляющую
U0 , но и переменную с частотой ω, т.е. U = U0 + Um cos(ωt + ϕ) , то время пролета tp электрона через зазор d между катодом и анодом будет зависеть
ϕ вылета электрона с катода, т.е. tp = tp(ϕ) и описывается
от фазы
уравнением:
τ 2 2 + η ⋅ [cos ϕ − τ sin ϕ − cos(τ + ϕ )] − D = 0 , 2 2 где τ = ω t p , η = U m U 0 , D = mω d (eU 0 ) , e и m − заряд и масса
электрона. Вопросы: 1. Построить зависимость τ = τ(ϕ) для изменения фазы ϕ в интервале от 0 до 2π при η = 0.2 и для значений D = 10, 20, 30. 2. Функция к.п.д.
1 I = 1− 2D
2π
определяет
напряжения
в
переменное
случаю,
когда
электроны
2
0
преобразования
(отрицательное
dϕ 2π
∫ [τ + η (sin(τ + ϕ) − sin ϕ)]
значение
постоянного соответствует 48
отбирают энергию переменного поля). Построить график функции I в зависимости от параметра
D (нужно помнить, что входящий в
подынтегральное выражение параметр τ является функцией как от ϕ , так и от D : τ = τ(ϕ,D) ). Определить, при каком значении параметра D значение к.п.д. положительно и достигает максимального значения при
η = 0.2 и 0.5.
Задача 11 ( Шар-зонд ) Шар-зонд, наполненный гелием до атмосферного давления, запускается с поверхности земли на уровне моря при температуре 15° C. Начальный радиус оболочки шара R0 = 5 м, толщина стенки оболочки δ0 = 1 мм. Оболочка шара изготовлена из высокоэластичной резины и может увеличиваться в размере до радиуса R = 6R0 без ее разрушения. Связь между напряжением σ упругой деформации оболочки и радиусом шара выражается соотношением 2 R E R σ = − 0 , 3 R0 R
где E = 0.5 МПа − модуль Юнга для резины. Подъем шара на высоте h определяется превышением выталкивающей силы Архимеда
(4π 3) R 3 ( h ) ρ a (h ) g над суммарным весом шара
Mg = [(4 π 3)R03ρ g 0 + 4 π R02 δ 0ρ s + mg ] ,
49
где R(h) − радиус шара, ρa(h) − плотность воздуха на высоте h, ρg0 = 0.169 кг/м3 − плотность гелия на поверхности земли, ρs = 1.2 т/м3 − плотность резиновой оболочки шара, m – масса полезного груза и g − ускорение свободного падения. В то же время равенство давлений снаружи и внутри шара с учетом натяжения оболочки определяется условием 3 3 2 Eδ 0 R0 R0 T ( h ) , pa ( h ) + = p0 1 − 3 R( h ) R ( h ) R( h ) T0
где pa(h) и T(h) − давление и абсолютная температура атмосферы на высоте
h, p0 − давление атмосферы на высоте уровня моря, T0 − температура у поверхности земли. Зависимости pa(h), ρa(h) и T(h) согласно международной стандартной атмосфере определяются выражениями: на поверхности земли на уровне моря :
p0 = 101.3 кПа, ρ0 = 1.2255 кг/м3 , T0 = 288° K; в тропосфере (h ≤ 11 км) :
pa ( h ) / p0 = 1 −
6.5h[ км] 288
6.5h[км ] ρ a ( h ) / ρ 0 = 1 − 288
5.255
,
4.255
,
T ( h ) = 288 − 6.5h[км] ; в стратосфере (h > 11 км) :
ρ a (h) pa ( h ) = = exp[− 0.1575 (h[км ] − 11)] , pa ( h = 11) ρ a ( h = 11)
T = const = 216.5° K = −56.5° C . 50
Вопросы: 1. Построить графики зависимостей радиуса шара R
и его производной
dR/dh от высоты подъема h . Исследовать поведение зависимостей от начального радиуса R0 шара и от массы m полезного груза. 2. Построить график максимальной высоты
hmax
подъема шара в
зависимости от его начального радиуса R0 при m = 0 и m = 5 кг. Какие предельные высоты могут быть достигнуты в этих случаях и какие значения R0 следует выбрать для достижения этих высот ?
Задача 12 ( Фотонная ракета ) Фотонная ракета, разогнанная до скорости 20 км/с при помощи реактивного двигателя на химическом топливе, стартует из окрестности Земли в бездны космоса, направляясь к ближайшей звезде Альфа Центавра (4.3 св.года). Стартовая масса ракеты Ms = 10000 т, из них Mt = 9900 т − запас топлива для фотонного движителя. Аналог
формулы
Циолковского
для
релятивистского
случая,
связывающей приобретаемую ракетой скорость с изменением массы ракеты, записывается в виде [6]:
(1 + β )(1 − β 0 ) = M i (1 − β )(1 + β 0 )
Mf
− c / (2 u )
,
где Mi и Mf − соответственно, начальная и конечная массы ракеты; c − скорость света; u − скорость истечения рабочего вещества относительно
51
ракеты (в данном случае рабочее вещество − фотоны, и
u = c ); β = v/c,
β0 = v0/c, v0 и v – начальная и конечная скорости ракеты. Пусть в системе координат, связанной с ракетой, расход топлива постоянен и равен µ = 0.25 Mi /год, или в безразмерном параметре α =
= 0.25 /год, где под
Mi
µ Mi
понимается начальная масса ракеты перед
выполнением какого-либо маневра (ускорение, торможение; при старте ракеты с Земли Mi = Ms). В этом случае при разгоне ракеты ее скорость v(t) и время t в системе координат Земли связаны соотношением:
2(β − β 0 ) 1 − β0 (1 + β )(1 − β 0 ) (t − t0 ) , ln + = 4α 1 + β0 (1 − β )(1 + β 0 ) (1 + β )(1 + β 0 ) где t0 − время начала разгона ракеты, когда v = v0 (β ≥ β 0). В случае же торможения ракеты от начальной скорости v0, скорость u = −c, и последнее соотношение имеет вид:
2(β 0 − β ) 1 + β0 (1 + β )(1 − β 0 ) (t − t 0 ) , ln = − 4α − 1 − β0 (1 − β )(1 + β 0 ) (1 − β )(1 − β 0 ) где t0 − начало выполнения торможения (β ≤ β 0). Отметим еще, что, согласно теории относительности, время на ракете идет медленнее, чем на Земле, и малый интервал ∆τ собственного времени по часам ракеты связан с интервалом зависимостью ∆τ =
∆t
земного времени
1 − β 2 ∆t . Удобно также использовать для скорости
ракеты безразмерную переменную β , а время измерять в годах, тогда пройденное расстояние будет выражаться в световых годах.
52
Вопросы: Построить графики зависимостей от времени t для скорости β(t) и ускорения времени
β (t ) τ(t)
ракеты, для пройденного пути
s(t), для собственного
ракеты и для массы израсходованного топлива
mt (t ) .
Исследовать следующие случаи: 1. Ракета стартует из окрестности Земли и все время разгоняется, пока не достигнет Альфы Центавра. За какое время это произойдет по часам ракеты и по часам Земли ?
Какой будет конечная скорость ракеты ?
Сколько топлива будет истрачено ? 2. Первую половину пути до Альфы Центавра ракета разгоняется, а вторую половину пути тормозится, чтобы прибыть на звезду со скоростью, близкой к нулю.
Какое время по часам ракеты и по часам Земли
потребуется для такого перелета ? Сколько топлива останется на ракете ? 3. На борту ракеты находится космонавт, который должен не только долететь до Альфы Центавра, но и благополучно вернуться на Землю. Путь до звезды он выполняет согласно условиям предыдущего пункта. Может ли он, поступая аналогичным образом, вернуться на Землю, или, другими словами, хватит ли ему для этого оставшегося топлива ? Если топлива не хватает, то как он должен скорректировать его расход, чтобы все-таки вернуться на Землю ? За какое минимальное время космонавт может совершить это путешествие ?
Насколько он окажется моложе своих
ровесников, остававшихся на Земле ?
53
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА 1. Н.Н.Калиткин. Численные методы. М.: "Наука", 1978. 2. Е.А.Волков. Численные методы. М.: "Наука", 1982. 3. Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков. Численные методы. М.: "Наука", 1987. 4. С.И.Вавилов. Глаз и Солнце (О свете, Солнце и зрении). М.: "Наука", 1976. 5. А.С.Штейнберг. Репортаж из мира сплавов (Библиотечка "Квант", вып.71). М.: "Наука", 1989. 6. А.Н.Матвеев. Механика и теория относительности. М.:"Высшая школа", 1986.
54
ББК 32.97:53 УДК 53.072 Игорь Васильевич Кандауров Николай Александрович Мезенцев Валерий Федорович Пиндюрин Евгений Анатольевич Симонов МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ ЯВЛЕНИЙ НА ЭВМ Часть III Численное дифференцирование и интегрирование функций Решение нелинейных уравнений Методическое пособие
Подписано в печать 26.06.2000
Формат 60 х 84 1/16 Тираж 100 экз.
Отпечатано на ризографе СУНЦ НГУ, 630090, Новосибирск-90, ул.Пирогова, 11
55