Что называется линией уровня функции. Для решения многих задач начертательной геометрии используют линии частного положения – линии уровня

ФУНКЦИИ НЕСКОЛЬКИХ ПЕРЕМЕННЫХ

1.ОСНОВНЫЕ ПОНЯТИЯ

Пусть: z - переменная величина с областью изменения R; R- числовая прямая; D - область на координатной плоскости R2.

Любое отображение D->R называют функцией двух переменных с областью определения D и пишут z = f(x;y).

Другими словами:

Если каждой паре (х; у) двух независимых перемен­ных из области D по некоторому правилу ста­вится в соответствие одно определенное значение z из R, то переменную величину z называют функцией двух не­зависимых переменных х и у с областью определения D и пишут

http://pandia.ru/text/78/481/images/image002_44.jpg" width="215" height="32 src=">

П р и м е р 1.

http://pandia.ru/text/78/481/images/image005_28.jpg" width="157" height="29 src=">

http://pandia.ru/text/78/481/images/image007_16.jpg" align="left" width="110" height="89">

Область определения – есть часть плоско­сти, лежащая внутри круга радиуса г = 3 , с центром в начале координат, см. рисунок.

П р и м е р 3. Найти и изобразить область определения функции

http://pandia.ru/text/78/481/images/image009_11.jpg" width="86" height="32 src=">

http://pandia.ru/text/78/481/images/image011_10.jpg" width="147" height="30 src=">

2.ГЕОМЕТРИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ ФУНКЦИИ ДВУХ

ПЕРЕМЕННЫХ

2.1.График функции двух переменных

Рассмотрим в пространстве прямоугольную систему координат и область D на плоскости хОу. В каждой точке М(х;у) из этой области восстановим перпендикуляр к плос­кости хОу и отложим на нем значение z = f(x; у). Геомет­рическое место полученных точек

http://pandia.ru/text/78/481/images/image013_10.jpg" width="106" height="23 src=">

http://pandia.ru/text/78/481/images/image015_6.jpg" width="159" height="23 src=">

Это окружности с центром в начале координат, радиусом R = C1/2 и уравнением

x2 + y2 = R2, см. рисунок.

Линии уровня позволяют представить рассматриваемую поверхность, дающую в сечении плоскостями z = C концентрические окружности.

http://pandia.ru/text/78/481/images/image017_16.gif" width="88" height="29"> и найти .

Решение. Воспользуемся методом сечений.

http://pandia.ru/text/78/481/images/image020_11.gif" width="184 height=60" height="60">– в плоскости – парабола.

– в плоскости –парабола.

http://pandia.ru/text/78/481/images/image025_5.gif" width="43" height="24 src=">– окружность.

Искомая поверхность – параболоид вращения.

Расстоянием между двумя произвольными точками и (евклидова) пространства называется число

http://pandia.ru/text/78/481/images/image030_5.gif" width="153 height=24" height="24"> называется открытым кругом радиуса с центром в точке r.

Открытый круг радиуса ε с центром в точке A называется - ε - окрестностью точки А.

3адание

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

Построить линии уровня функций:

3. ПРЕДЕЛ ФУНКЦИИ ДВУХ ПЕРЕМЕННЫХ

Основные понятия математического анализа, введен­ные для функции одной переменной, распространяются и на функции нескольких переменных.

О п р е д е л е н и е:

Постоянное число А называется пределом функции двух переменных z = f(x;у) при х -> х0, у -> у0, если для лю­бого

ε >0 существует δ >0 такое, что |f(х; у) - А| < ε , как только

|x - x0| < δ и |у – у0| < δ.

Этот факт обозначается так:

http://pandia.ru/text/78/481/images/image042_2.jpg" width="160" height="39 src=">

http://pandia.ru/text/78/481/images/image044_2.gif" width="20" height="25 src=">. Для функции двух переменных стремление к предельной точке на плоскости может происходить по бесконечному числу направлений (и необязательно по прямой), и потому требование существования предела у функции двух (или нескольких) переменных «жестче» по сравнению с функцией одной переменной.

П р и м е р 1. Найти .

Решение. Пусть стремление к предельной точке http://pandia.ru/text/78/481/images/image048_2.gif" width="55 height=24" height="24">. Тогда

http://pandia.ru/text/78/481/images/image050_2.gif" width="72 height=48" height="48"> зависит от .

П р и м е р 2. Найти .

Решение. По любой прямой предел один и тот же:

http://pandia.ru/text/78/481/images/image054_2.gif" width="57" height="29">. Тогда

http://pandia.ru/text/78/481/images/image056_1.gif" width="64" height="21">, (остальное – по аналогии).

О п р е д е л е н и е. Число называют пределом функции при и , если для такое, что из неравенств и следует неравенство . Этот факт коротко записывают так:

http://pandia.ru/text/78/481/images/image065_1.gif" width="124" height="48">.gif" width="236" height="48 src=">;

http://pandia.ru/text/78/481/images/image069_1.gif" width="247" height="60 src=">,

где предельная точка http://pandia.ru/text/78/481/images/image070_1.gif" width="85" height="24 src="> с областью определения и пусть – предельная точка множества , т. е точка, к которой стремятся аргументы х и у .

О п р е д е л е н и е 1. Говорят, что функция непрерывна в точке, если:

1) ;

2) , т. е. .

Сформулируем определение непрерывности в эквивалентной форме..gif" width="89" height="25 src=">.gif" width="85 height=24" height="24">непрерывна в точке, если выполняется равенство

http://pandia.ru/text/78/481/images/image079_0.gif" width="16" height="20 src=">.gif" width="15 height=16" height="16"> придадим произвольное приращение . Функция получит частное приращение по х

http://pandia.ru/text/78/481/images/image084_0.gif" width="35" height="25 src="> является функцией одной переменной . Аналогично,

http://pandia.ru/text/78/481/images/image058_1.gif" width="85" height="24"> называется непрерывной в точке по переменной (по переменной ), если

http://pandia.ru/text/78/481/images/image087.gif" width="101" height="36">).

Теорема. Если функция определена в некоторой окрестности точки и непрерывна в этой точке, то она непрерывна в этой точке по каждой из переменных.

Обратное утверждение неверно.

П р и м е р. Докажем, что функция

непрерывна в точке http://pandia.ru/text/78/481/images/image081_0.gif" width="15 height=16" height="16">.gif" width="57" height="24"> в точке , соответствующее приращению http://pandia.ru/text/78/481/images/image081_0.gif" width="15" height="16 src=">:

http://pandia.ru/text/78/481/images/image092_0.gif" width="99" height="36 src=">, а это означает, что непрерывна в точке по переменной .

Аналогично можно доказать непрерывность в точке по переменной .

Покажем, что предел не существует. Пусть точка стремиться к точке по прямой , проходящей через точку . Тогда получим

.

Таким образом, приближаясь к точке http://pandia.ru/text/78/481/images/image051_1.gif" width="15" height="20">, получаем разные предельные значения. Отсюда следует, что предел данной функции в точке не существует, а значит, функция http://pandia.ru/text/78/481/images/image097.jpg" width="351" height="48 src=">

Другие обозначения

http://pandia.ru/text/78/481/images/image099.jpg" width="389" height="55 src=">

Другие обозначения

http://pandia.ru/text/78/481/images/image101_0.gif" width="60" height="28 src=">.

Решение . Имеем:

,

П р и м е р 2.

http://pandia.ru/text/78/481/images/image105.jpg" width="411" height="51 src=">

П р и м е р 3. Найти частные производные функции

http://pandia.ru/text/78/481/images/image107.jpg" width="477" height="58 src=">

Пример 4. Найти частные производные функции

http://pandia.ru/text/78/481/images/image109.jpg" width="321" height="54 src=">

5.2. Дифференциалы первого порядка функции двух переменных

Частные дифференциалы функции z = f(x, у) по переменным х и у определяются, соответственно по формулам х(x;y) и f"у{x;y) сущест­вуют в точке (х0;у0) и в некоторой ее окрестности и не­прерывны в этой точке, то по аналогии с функцией одной переменной устанавливается формула для полного при­ращения функции двух переменных

http://pandia.ru/text/78/481/images/image112_0.gif" width="364" height="57 src=">

где http://pandia.ru/text/78/481/images/image114_0.gif" width="154" height="39 src=">

Другими словами, функция z = f(x, y) дифференцируема в точке, (х, у), если ее приращение Δz эквивалентно функции:

Выражение

http://pandia.ru/text/78/481/images/image116.jpg" width="192" height="57 src=">

С учетом того, что Δх = dx, Δy=dy:

http://pandia.ru/text/78/481/images/image090_0.gif" width="57" height="24 src="> дифференцируема в точке , то она непрерывна в этой точке.

Обратное утверждение неверно, т. е. непрерывность является только необходимым, но не достаточным условием дифференцируемости функции. Покажем это.

П р и м е р. Найдем частные производные функции http://pandia.ru/text/78/481/images/image120.gif" width="253" height="57 src=">.

Полученные формулы теряют смысл в точке http://pandia.ru/text/78/481/images/image121.gif" width="147" height="33 src="> не имеет частных производных в точке . В самом деле, . Эта функция одной переменной , как известно, не имеет производной в точке http://pandia.ru/text/78/481/images/image124.gif" width="25" height="48"> в точке не существует. Аналогично, не существует частная производная . При этом функция , очевидно, непрерывна в точке .

Итак, мы показали, что непрерывная функция может не иметь частных производных. Осталось установить связь между дифференцируемостью и существованием частных производных.

5.4. Связь между дифференцируемостью и существованием частных производных.

Теорема 1. Необходимое условие дифференцируемости.

Если функция z = f(x, y) дифференцируема в точке M(x, y), то она имеет в точке M частные производные по каждой переменной и .

Обратная теорема не верна, т. е. существование частных производных является необходимым, но не является достаточным условием дифференцируемости функции.

Теорема 2. Достаточное условие дифференцируемости. Если функция z = f(x, y) имеет непрерывные частные производные и в точке , то она дифференцируема в точке (и ее полный дифференциал в этой точке выражается формулой http://pandia.ru/text/78/481/images/image130.gif" width="101 height=29" height="29">

Пример 2. Вычислить 3,021,97

3адание

Вычислить приближенно при помощи дифференциа­ла:

5.6. Правила дифференцирования сложных и неявных функций. Полная производная.

Случай 1.

z=f(u, v); u=φ(x, y), v=ψ(x, y)

Функции u и v непрерывные функции от аргументов х, у.

Таким образом, функция z есть сложная функция от аргументов х и у: z=f(φ(x, y),ψ(x, y))

Предположим, что функции f(u, v), φ(x, y), ψ(x, y) имеют непрерывные частные производные по всем своим аргументам.

Поставим задачу вычислить http://pandia.ru/text/78/481/images/image140.gif" width="23" height="44 src=">.

Дадим аргументу x приращение Δx, фиксируя значение аргумента y. Тогда функции двух переменных u= φ(x, y) и

v= φ(x, y) получат частные приращения Δxu и Δxv. Следовательно, z=f(u, v) получит полное приращение, определяемое в п.5.2 (дифференциалы первого порядка функции двух переменных):

http://pandia.ru/text/78/481/images/image142.gif" width="293" height="43 src=">

Если xu→ 0, то Δxu → 0 и Δxv → 0 (в силу непрерывности функций u и v). Переходя к пределу при Δx→ 0, получим:

http://pandia.ru/text/78/481/images/image144.gif" width="147" height="44 src="> (*)

П р и м е р.

Z=ln(u2+v), u=ex+y ² , v=x2 + y;

http://pandia.ru/text/78/481/images/image146.gif" width="81" height="41 src=">.

http://pandia.ru/text/78/481/images/image148.gif" width="97" height="44 src=">.gif" width="45" height="44 src=">.

Тогда по формуле (*) получим:

http://pandia.ru/text/78/481/images/image152.gif" width="219" height="44 src=">.

Для получения окончательного результата в две последние формулы вместо u и v необходимо подставить еx+y² и x2+y, соответственно.

Случай 2.

Функции х и у непрерывные функции.

Таким образом, функция z=f(x, у) зависит через посредство х и у от одной независимой переменной t, т. е. допустим, что х и у суть не незави­симые переменные, но функции независимой переменной t, и определим производную http://pandia.ru/text/78/481/images/image155.gif" width="235" height="44 src=">

Разделим обе части этого равенства на Δt:

http://pandia.ru/text/78/481/images/image157.gif" width="145" height="44 src="> (**)

Случай 3.

Предположим, теперь, что роль независимой переменной t играет переменная х, т. е. что функция z=f(x, у) зависит от неза­висимой переменной х как непосредственно, так и через посредство переменной у, которая является непрерывной функцией от х.

Принимая во внима­ние, что http://pandia.ru/text/78/481/images/image160.gif" width="120" height="44 src="> (***)

Производная x(x, у)=http://pandia.ru/text/78/481/images/image162.gif" width="27" height="27 src=">, y=sin x.

Находим частные производные

http://pandia.ru/text/78/481/images/image164.gif" width="72" height="48 src=">.gif" width="383" height="48 src=">

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

Производная от функции, заданной неявно.

Положим, что уравнение

определяет у как неявную функцию от х, имеющую производную

у’ = φ’(x)_

Подставляя у = φ (х) в уравнение F(x, y) = 0, мы должны были бы получить тождество 0 = 0, так как у = φ(х) есть решение этого уравнения. Мы видим, таким образом, что постоянную нуль можно рассматривать как сложную функцию от х, которая зависит от х как непосредственно, так и через посредство у =φ(х).

Производная по х от этой постоянной должна равняться нулю; применяя правило (***), получим

F’x(x, y) + F’y(x, y)·y’ = 0,

http://pandia.ru/text/78/481/images/image168.gif" width="64" height="41 src=">

Следовательно,

http://pandia.ru/text/78/481/images/image171.gif" width="20" height="24"> справедливо как для одной, так и для другой функции.

5.7. Полный дифференциал первого порядка. Инвариантность формы дифференциала первого порядка

Подставим выражения для http://pandia.ru/text/78/481/images/image173.gif" width="23" height="41 src="> определенные равенствами (*) (см. случай 1 в п.5.6 «Правила дифференцирования сложных и неявных функций. Полная производная») в формулу полного дифференциала

Gif" width="33" height="19 src=">.gif" width="33" height="19 src=">.gif" width="140" height="44 src=">

Тогда формула полного дифференциала первого порядка функции двух переменных имеет вид

http://pandia.ru/text/78/481/images/image180.gif" width="139" height="41 src=">

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

Иначе говоря, форма первого дифференциала инвариантна, то есть не зависит от того, являются ли переменные u и v независимыми переменными, или зависят от других переменных.

П р и м е р.

Найти полный дифференциал первого порядка сложной функции

z=u2v3, u=x2·sin y , v=x3·ey.

Р е ш е н и е. По формуле для полного дифференциала первого порядка имеем

dz = 2uv3·du+3u2v2·dv =

2uv3·(2x·siny ·dx+x2·cosy ·dy)+3u2v2·(3x2·ey·dx+x3·ey·dy).

Это выражение можно переписать так

dz=(2uv3·2x·siny+3u2v2·3x2·ey)·dx+(2uv3x2·cosy+3u2v2x3·ey)·dy=

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

http://pandia.ru/text/78/481/images/image183.jpg" width="409" height="46 src=">

http://pandia.ru/text/78/481/images/image185.gif" width="60" height="41 src=">. Эта

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

http://pandia.ru/text/78/481/images/image187.jpg" width="229" height="47 src=">

суть однородные функции степеней соответственно 1, 0 и (- 1)..jpg" width="36" height="15">. Действительно,

http://pandia.ru/text/78/481/images/image191.jpg" width="363" height="29 src=">

Полагая t=1, находим

http://pandia.ru/text/78/481/images/image193.jpg" width="95" height="22 src=">

Частные производные http://pandia.ru/text/78/481/images/image195.jpg" width="77" height="30 src=">), вообще го-

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

Вторые частные производные обозначают так:

есть производная n - го порядка; здесь функция z сначала р раз дифференцировалась по х, а потом n - р раз по у.

Для функции любого числа переменных частные производите высших порядков определяются аналогично.

П р и м е р 1. Вычислить частные производные второго порядка от функции

http://pandia.ru/text/78/481/images/image209.jpg" width="600" height="87 src=">

П р и м е р 2. Вычислить и http://pandia.ru/text/78/481/images/image212.jpg" width="520" height="97 src=">

П р и м е р 3. Вычислить , если

http://pandia.ru/text/78/481/images/image215.jpg" width="129" height="36 src=">

x, f"y, f"xy и f"yx определены и непрерывны в точке М(х, у) и в некоторой ее окрестности, то в этой точке

http://pandia.ru/text/78/481/images/image218.jpg" width="50 height=28" height="28">.jpg" width="523" height="128 src=">

Следовательно,

http://pandia.ru/text/78/481/images/image222.jpg" width="130" height="30 src=">

Решение.

Смешанные производные равны.

5.10. Дифференциалы высших порядков функции n переменных .

Полный дифференциал du функции от нескольких переменных есть в свою очередь функ­ция тех же переменных, и мы можем определить полный дифферен­циал этой последней функции. Таким образом, мы получим дифферен­циал второго порядка d2u первоначальной функции и, который также будет функцией тех же переменных, а его полный дифференциал приведет нас к дифференциалу третьего порядка d3u первоначальной функции и т. д.

Рассмотрим подробнее случай функции u=f(x, у) двух пере­менных х и у и будем предполагать, что переменные х и у суть независимые переменные. По определению

http://pandia.ru/text/78/481/images/image230.jpg" width="463" height="186 src=">

Вычисляя точно так же d3u, мы получим

http://pandia.ru/text/78/481/images/image232.jpg" width="347" height="61 src="> (*)-

причем формулу эту надо понимать так: сумму, стоящую в круглых скобках, надо возвести в степень n, применяя Формулу бинома Ньютона, после чего показатели степеней у и http://pandia.ru/text/78/481/images/image235.jpg" width="22" height="21 src=">.gif" width="22" height="27"> с направляющими косинусами cos α, cos β (α + β = 90°). На векторе рассмотрим точку М1(х + Δх; у + Δу). При перехо­де от точки М к точке М1 функция z = f(x; у) получит пол­ное приращение

http://pandia.ru/text/78/481/images/image239.jpg" width="133 height=27" height="27"> стремящемся к нулю (см. рис.).

http://pandia.ru/text/78/481/images/image241.jpg" width="324" height="54 src=">

где http://pandia.ru/text/78/481/images/image243.gif" width="76" height="41 src=">, а потому получаем:

http://pandia.ru/text/78/481/images/image245.gif" width="24" height="41 src="> при Δs->0 называется произ-

водной функции z = f(х; у) в точке (х; у) по направлению вектора и обозначается

http://pandia.ru/text/78/481/images/image247.jpg" width="227" height="51 src="> (*)

Таким образом, зная част­ные производные функции

z = f(x; у) можно найти произ­водную этой функции по любому направлению, а каждая частная производная является частным случаем произ­водной по направлению.

П р и м е р. Найти производную функции

http://pandia.ru/text/78/481/images/image249.jpg" width="287" height="56 src=">

http://pandia.ru/text/78/481/images/image251.jpg" width="227" height="59 src=">

http://pandia.ru/text/78/481/images/image253.gif" width="253 height=62" height="62">

Следовательно, функция z = f(x;y) в данном направлении возрастает.

5. 12 . Градиент

Градиентом функции z = f(x; у) называется вектор , координатами которого являются соответствующие частные производные данной функции

http://pandia.ru/text/78/481/images/image256.jpg" width="205" height="56 src=">

т. е..jpg" width="89" height="33 src=">

в точке М(3;4).

Р е ш е н и е.

http://pandia.ru/text/78/481/images/image259.jpg" width="213" height="56 src=">

Чтобы создать карту линий уровня:

  • Определите матрицу значений, которую нужно отобразить графически. Mathcad предполагает, что строки и столбцы представляют значения аргументов некой функции, равномерно располагаемые на осях координат. Затем Mathcad линейно интерполирует значения этой матрицы, чтобы сформировать линии одинакового уровня. Такие изолинии могут представлять изотермы, изобары, эквипотенциальные линии, линии тока или иметь иной физический смысл.
  • Выберите Карта линий уровня изCreate Contour Plot command меню Графика . Mathcad покажет прямоугольник с одним полем ввода, как на Рисунке 1.
  • Напечатайте имя матрицы в поле ввода. Как и при работе с выражением, Mathcad не создаст карту линий уровня, пока Вы не нажмете , или, в автоматическом режиме, не щёлкните вне области графика.

Рисунок 1: Пустое поле ввода отведено для имени матрицы.

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

Форматируя чертёж, можно установить, должны ли проставляться значения функции на соответствующих им линиях уровня, насколько частыми они должны быть, и какие надписи и линии сетки появятся на осях. Всё это описано ниже в разделе “Форматирование карты линий уровня ”.

Линии уровня функции двух переменных

Ниже приведены стандартные этапы в создании карты линий уровня функции двух переменных, показанной на Рисунке 2:

  • Определите функцию двух переменных.
  • Решите, сколько точек нужно отложить по координатным осям. Введите дискретные аргументы i и j , чтобы индексировать эти точки. Например, если необходимо использовать 10 точек в каждом направлении, введите:

i:= 0 ..9 j:= 0 ..9

  • Определите x i и y j как равномерно располагаемые точки на осях x и y .
  • Заполните матрицу M значениями f(x i , y j).
  • Отобразите M в виде карты линий уровня.

Рисунок 2: Карта линий уровня функции двух переменных.

Обратите внимание, что в данном случае ось x графика идет направо, а ось y направлена вверх. Так как карта линий уровня создается помещением значений функции в матрицу, Mathcad не знает истинных значений x и y . По этой причине оси на карте линий уровня по умолчанию нормированы так, что координаты изменяются от -1 до 1. Можно вручную установить границы на осях вместо этих значений по умолчанию, выбрав Формат 3D графика из меню Графика при выделенной карте линий уровня, или двойным щелчком на графике. Затем установите необходимые значения в полях “Мин” и “Макс” на странице “Оси”.

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

Предлагается простой класс для построения линий уровня (изолиний) функции: Z=F(X,Y) в виде линий на плоскости X-Y, удовлетворяющих уравнениям Z=const (где const - набор заданных значений).

Предполагается, что функция Z задана в виде массива z на произвольной сетке с четырехугольными ячейками. Сетка задается двумя массивами x, y, где J и K размеры сетки.

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

Исходный текст снабжен подробными комментариями.

Файл LinesLevels.cs:

Using System.Collections.Generic; using System.Linq; using System.Windows; namespace WpfLinesLevels { public class LinesOfLevels { private int J, K; private double[,] X; private double[,] Y; private double[,] Z; // Список изолиний public List Lines { get; set; } ///

/// Подготовка /// /// Массив уровней /// Координаты X области /// Координаты Y области /// Сеточная функция public LinesOfLevels(double _levels, double[,] _x, double[,] _y, double[,] _z) { Lines = new List(_levels.Count()); foreach (double l in _levels) { Lines.Add(new LineLevel(l)); } X = _x; Y = _y; Z = _z; J = X.GetLength(0); K = X.GetLength(1); } /// /// Расчет изолиний. /// public void Calculate() { for (int j = 0; j < J - 1; j++) for (int k = 0; k < K - 1; k++) { Ceil ir = new Ceil(j, k, X, Y, Z); for (int l = 0; l < Lines.Count(); l++) ir.AddIntoLineLevel(Lines[l]); } } } /// /// Одна изолиния /// public class LineLevel { // Список точек изолинии в виде пар точек // принадлежащих одной четырехугольной ячеейке public ListPairs { get; set; } // Уровень изолинии public double Level { get; set; } public LineLevel(double _level) { Level = _level; Pairs = new List(); } } /// /// Пара точек изолинии, принадлежащая одной ячейке /// public class PairOfPoints { public ListPoints { get; set; } public PairOfPoints() { Points = new List(); } } /// /// Угол ячейки. /// Индексы для определения одного угла четырехугольной ячейки /// internal struct Dot { internal int j { get; set; } internal int k { get; set; } internal Dot(int _j, int _k) { j = _j; k = _k; } } /// /// Четырехугольная ячейка сетки. Определяет текущую ячейку. /// Рассчитывает отрезки изолиний в ячейке /// internal class Ceil { // Углы ячейки private Dot d = new Dot; // Координатные точки углов private Point r = new Point; // Массивы координат всей области private double[,] X; private double[,] Y; // Массив сеточной функции private double[,] Z; /// /// Определение ячейки /// Определяется левым нижним углом. Циклы перебора индексов должны быть на 1 меньше размерностей J,K массивов /// /// j - индекс левого нижнего угла /// k - индекс левого нижнего угла /// Массив X /// Массив Y /// Массив сеточной функции Z internal Ceil(int _j, int _k, double[,] _x, double[,] _y, double[,] _z) { d = new Dot(_j, _k); d = new Dot(_j + 1, _k); d = new Dot(_j + 1, _k + 1); d = new Dot(_j, _k + 1); X = _x; Y = _y; Z = _z; r = dotPoint(d); r = dotPoint(d); r = dotPoint(d); r = dotPoint(d); } /// /// Определение координатной точки Point угла /// /// Угол, заданный стуктурой Dot /// private Point dotPoint(Dot _d) { return new Point(X[_d.j, _d.k], Y[_d.j, _d.k]); } /// /// Определение функции в заданном углу /// /// Угол, заданный стуктурой Dot /// private double dotZ(Dot _d) { return Z[_d.j, _d.k]; } /// /// Определение пары точек, через которые проходит линия уровня /// Точки на границах ячейки определяются линейной интераоляцией. /// /// Значение уровня функции /// private PairOfPoints ByLevel(double _l) { PairOfPoints p = new PairOfPoints(); // Ребро 0 if ((dotZ(d) >= _l && dotZ(d) < _l) || (dotZ(d) > _l && dotZ(d) <= _l)) { double t = (_l - dotZ(d)) / (dotZ(d) - dotZ(d)); double x = r.X * t + r.X * (1 - t); double y = r.Y * t + r.Y * (1 - t); p.Points.Add(new Point(x, y)); } // Ребро 1 if ((dotZ(d) >= _l && dotZ(d) < _l) || (dotZ(d) > _l && dotZ(d) <= _l)) { double t = (_l - dotZ(d)) / (dotZ(d) - dotZ(d)); double x = r.X * t + r.X * (1 - t); double y = r.Y * t + r.Y * (1 - t); p.Points.Add(new Point(x, y)); if (p.Points.Count == 2) return p; } // Ребро 2 if ((dotZ(d) >= _l && dotZ(d) < _l) || (dotZ(d) > _l && dotZ(d) <= _l)) { double t = (_l - dotZ(d)) / (dotZ(d) - dotZ(d)); double x = r.X * t + r.X * (1 - t); double y = r.Y * t + r.Y * (1 - t); p.Points.Add(new Point(x, y)); if (p.Points.Count == 2) return p; } // Ребро 3 if ((dotZ(d) >= _l && dotZ(d) < _l) || (dotZ(d) > _l && dotZ(d) <= _l)) { double t = (_l - dotZ(d)) / (dotZ(d) - dotZ(d)); double x = r.X * t + r.X * (1 - t); double y = r.Y * t + r.Y * (1 - t); p.Points.Add(new Point(x, y)); } return p; } /// /// Добавление пары точек в линию уравня /// /// Линия уровня internal void AddIntoLineLevel(LineLevel _lL) { PairOfPoints lp = ByLevel(_lL.Level); if (lp.Points.Count > 0) _lL.Pairs.Add(lp); } } }
Для демонстрации работы класса предлагается небольшое тестовое приложение WPF, которое строит линии уровня для функции вида: z = x^2 + y^2 на сетке 10 на 10.

Файл MainWindow.xaml:


И файл кода MainWindow.xaml.cs:

Using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Shapes; namespace WpfLinesLevels { ///

/// Логика взаимодействия для MainWindow.xaml /// public partial class MainWindow: Window { private double Xmax; private double Xmin; private double Ymax; private double Ymin; private double xSt; private double ySt; public MainWindow() { InitializeComponent(); // Определение уровней, которые будут отображаться double levels = { 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; double[,] X = new double; double[,] Y = new double; double[,] Z = new double; // Переменные для пересчета физических координат в экранные Xmax = 10; Xmin = 0; Ymax = 10; Ymin = 0; xSt = 525 / (Xmax - Xmin); ySt = 525 / (Ymax - Ymin); // Определение массивов координат и функции for (int k = 0; k < 10; k++) for (int j = 0; j < 10; j++) { X = j; Y = k; Z = j * j + k * k; } // Создание изолиний LinesOfLevels lol = new LinesOfLevels(levels, X, Y, Z); // Их расчет lol.Calculate(); // Построение DrowLevelLine(lol, X, Y); } /// /// Метод построения изолиний /// /// Расчитанный объект с изолиниями /// массив X координат /// массив Y координат private void DrowLevelLine(LinesOfLevels lL, double[,] x, double[,] y) { Canvas can = new Canvas(); foreach (LineLevel l in lL.Lines) { foreach (PairOfPoints pp in l.Pairs) { if (pp.Points.Count() == 2) { Line pl = new Line(); pl.Stroke = new SolidColorBrush(Colors.BlueViolet); pl.X1 = xCalc(pp.Points.X); pl.X2 = xCalc(pp.Points.X); pl.Y1 = yCalc(pp.Points.Y); pl.Y2 = yCalc(pp.Points.Y); can.Children.Add(pl); } } } can.Margin = new Thickness(10, 10, 10, 10); can.VerticalAlignment = VerticalAlignment.Stretch; can.HorizontalAlignment = HorizontalAlignment.Stretch; grid1.Children.Add(can); } /// /// Пересчет физической координаты X в экранную /// /// Физическая кордината X /// Экранная координата X private double xCalc(double _x) { return xSt * (_x - Xmin); } /// /// Пересчет физической координаты Y в экранную /// /// Физическая кордината Y /// Экранная координата Y private double yCalc(double _y) { return ySt * (Ymax - _y); } } }
Результат работы тестового примера представлен на рисунке.

Если каждой точке X = (х 1 , х 2 , …х n) из множества {X} точек n–мерного пространства ставится в соответствие одно вполне определенное значение переменной величины z, то говорят, что задана функция n переменных z = f(х 1 , х 2 , …х n) = f (X).

При этом переменные х 1 , х 2 , …х n называют независимыми переменными или аргументами функции, z - зависимой переменной , а символ f обозначает закон соответствия . Множество {X} называют областью определения функции (это некое подмножество n-мерного пространства).

Например, функция z = 1/(х 1 х 2) представляет собой функцию двух переменных. Ее аргументы – переменные х 1 и х 2 , а z – зависимая переменная. Область определения – вся координатная плоскость, за исключением прямых х 1 = 0 и х 2 = 0, т.е. без осей абсцисс и ординат. Подставив в функцию любую точку из области определения, по закону соответствия получим определенное число. Например, взяв точку (2; 5), т.е. х 1 = 2, х 2 = 5, получим
z = 1/(2*5) = 0,1 (т.е. z(2; 5) = 0,1).

Функция вида z = а 1 х 1 + а 2 х 2 + … + а n х n + b, где а 1 , а 2 ,…, а n , b - по стоянные числа, называют линейной . Ее можно рассматривать как сумму n линейных функций от переменных х 1 , х 2 , …х n . Все остальные функции называют нелинейными .

Например, функция z = 1/(х 1 х 2) – нелинейная, а функция z =
= х 1 + 7х 2 - 5 – линейная.

Любой функции z = f (X) = f(х 1 , х 2 , …х n) можно поставить в соответствие n функций одной переменной, если зафиксировать значения всех переменных, кроме одной.

Например, функции трех переменных z = 1/(х 1 х 2 х 3) можно поставить в соответствие три функции одной переменной. Если зафиксировать х 2 = а и х 3 = b то функция примет вид z = 1/(аbх 1); если зафиксировать х 1 = а и х 3 = b, то она примет вид z = 1/(аbх 2); если зафиксировать х 1 = а и х 2 = b, то она примет вид z = 1/(аbх 3). В данном случае все три функции имеют одинаковый вид. Это не всегда так. Например, если для функции двух переменных зафиксировать х 2 = а, то она примет вид z = 5х 1 а, т.е. степенной функции, а если зафиксировать х 1 = а, то она примет вид , т.е. показательной функции.

Графиком функции двух переменных z = f(x, у) называется множество точек трёхмерного пространства (х, у, z), аппликата z которых связана с абсциссой х и ординатой у функциональным соотношением
z = f (x, у). Этот график представляет собой некоторую поверхность в трехмерном пространстве (например, как на рисунке 5.3).

Можно доказать, что если функция – линейная (т.е. z = ax + by + c), то ее график представляет собой плоскость в трехмерном пространстве. Другие примеры трехмерных графиков рекомендуется изучить самостоятельно по учебнику Кремера (стр. 405-406).

Если переменных больше двух (n переменных), то график функции представляет собой множество точек (n+1)-мерного пространства, для которых координата х n+1 вычисляется в соответствии с заданным функциональным законом. Такой график называют гиперповерхностью (для линейной функции – гиперплоскостью ), и он также представляет собой научную абстракцию (изобразить его невозможно).

Рисунок 5.3 – График функции двух переменных в трехмерном пространстве

Поверхностью уровня функции n переменных называется множество точек в n–мерном пространстве, таких, что во всех этих точках значение функции одно и то же и равно С. Само число С в этом случае называется уровнем .

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

Для функции двух переменных поверхность уровня принимает вид линии уровня .

Например, рассмотрим z = 1/(х 1 х 2). Возьмем С = 10, т.е. 1/(х 1 х 2) = 10. Тогда х 2 = 1/(10х 1), т.е. на плоскости линия уровня примет вид, представленный на рисунке 5.4 сплошной линией. Взяв другой уровень, например, С = 5, получим линию уровня в виде графика функции х 2 = 1/(5х 1) (на рисунке 5.4 показана пунктиром).

Рисунок 5.4 - Линии уровня функции z = 1/(х 1 х 2)

Рассмотрим еще один пример. Пусть z = 2х 1 + х 2 . Возьмем С = 2, т.е. 2х 1 + х 2 = 2. Тогда х 2 = 2 - 2х 1 , т.е. на плоскости линия уровня примет вид прямой, представленный на рисунке 5.5 сплошной линией. Взяв другой уровень, например, С = 4, получим линию уровня в виде прямой х 2 = 4 - 2х 1 (на рисунке 5.5 показана пунктиром). Линия уровня для 2х 1 + х 2 = 3 показана на рисунке 5.5 точечной линией.

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

Рисунок 5.5 - Линии уровня функции z = 2х 1 + х 2

Определение функции нескольких переменных

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

Пример 1. Площадь S прямоугольника со сторонами, длины которых равны х и у , выражается формулой S = ху . Каждой паре значений х и у соответствует определенное значение площади S ; S есть функция двух переменных.

Пример 2. Объем V прямоугольного параллелепипеда с ребрами, длины которых равны х , у , z , выражается формулой V = xyz . Здесь V есть функция трех переменных х , у , z .

Пример 3. Дальность R полета снаряды, выпущенного с начальной скоростью v 0 из орудия, ствол которого наклонен к горизонту под углом , выражается формулой
(если пренебречь сопротивлением воздуха). Здесьg – ускорение силы тяжести. Для каждой пары значений v 0 и  эта формула дает определенное значение R , т.е. R является функцией двух переменных v 0 и .

Пример 4.
. Здесьи есть функция четырех переменных х , у , z , t .

Определение 1. Если каждой паре (х , у ) значений двух независимых друг от друга переменных величин х и у из некоторой области их изменения D , соответствует определенное значение величины z , то мы говорим, что z есть функция двух независимых переменных х и у , определенная в области D .

Символически функция двух переменных обозначается так:

z = f (x , y ), z = F (x , y ) и т.д.

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

S = ху

В этой таблице на пересечении строки и столбца, соответствующих определенным значениям х и у , проставлено соответствующее значение функции S . Если функциональная зависимость z = f (x , y ) получается в результате измерений величины z при экспериментальном изучении какого-либо явления, то сразу получается таблица, определяющая z как функцию двух переменных. В этом случае функция задается только таблицей.

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

Определение 2. Совокупность пар (х , у ) значений х и у , при которых определяется функция z = f (x , y ), называется областью определения или областью существования этой функции.

Область определения функции наглядно иллюстрируется геометрически. Если каждую пару значений х и у мы будем изображать точкой М (х , у ) в плоскости Оху , то область определения функции изобразится в виде некоторой совокупности точек на плоскости. Эту совокупность точек будем также называть областью определения функции. В частности, областью определения может быть и вся плоскость. В дальнейшем мы будем главным образом иметь дело с такими областями, которые представляют собой части плоскости , ограниченные линиями . Линию, ограничивающую данную область, будем называть границей области. Точки области, не лежащие на границе, будем называть внутренними точками области. Область, состоящая из одних внутренних точек, называется открытой или незамкнутой . Если же к области относятся и точки границы, то область называется замкнутой . Область называется ограниченной, если существует такая постоянная С , что расстояние любой точки М области от начала координат О меньше С , т.е. |OM | < С .

Пример 5. Определить естественную область определения функции

z = 2х у .

Аналитическое выражение 2х у имеет смысл при любых значениях х и у . Следовательно, естественной областью определения функции является вся плоскость Оху .

Пример 6.
.

Для того чтобы z имело действительное значение, нужно, чтобы под корнем стояло неотрицательное число, т.е. х и у должны удовлетворять неравенству 1 – х 2 – у 2  0, или х 2 + у 2  1.

Все точки М (х , у ), координаты которых удовлетворяют указанному неравенству, лежат в круге радиуса 1 с центром в начале координат и на границе этого круга.

Пример 7.
.

Так как логарифмы определены только для положительных чисел, то должно удовлетворяться неравенство х + у > 0, или у >  х .

Это значит, что областью определения функции z является половина плоскости, расположенная над прямой у =  х , не включая самой прямой.

Пример 8. Площадь треугольника S представляет собой функцию основания х и высоты у : S = xy /2.

Областью определения этой функции является область х  0, у  0 (так как основание треугольника и его высота не могут быть ни отрицательны, ни нулем). Заметим, что область определения рассматриваемой функции не совпадает с естественной областью определения того аналитического выражения, с помощью которого задается функция, так как естественной областью определения выражения ху/ 2 является, очевидно, вся плоскость Оху .

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

Определение 3. Если каждой рассматриваемой совокупности значений переменных х , у , z , …, u , t соответствует определенное значение переменной w , то будем называть w функцией независимых переменных х , у , z , …, u , t и писать w = F (х , у , z , …, u , t ) или w = f (х , у , z , …, u , t ) и т.п.

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

Так, например, для функции трех переменных областью определения является некоторая совокупность троек чисел (х , у , z ). Заметим тут же, что каждая тройка чисел задает некоторую точку М (х , у , z ) в пространстве Оху z . Следовательно, областью определения функции трех переменных является некоторая совокупность точек пространства.

Аналогично этому можно говорить об области определения функции четырех переменных u = f (x , y , z , t ) как о некоторой совокупности четверок чисел (x , y , z , t ). Однако область определения функции четырех или большего числа переменных уже не допускает простого геометрического истолкования.

В примере 2 приведена функция трех переменных, определенная при всех значениях х , у , z .

В примере 4 приведена функция четырех переменных.

Пример 9. .

Здесь w – функция четырех переменных х , у , z , и , определенная при значениях переменных, удовлетворяющих соотношению:

Понятие функции нескольких переменных

Введем понятие функции нескольких переменных.

Определение 1. Пусть каждой точке М из множества точек {М } евклидова пространства E m по какому-либо закону ста­вится в соответствие некоторое число и из числового множес­тва U. Тогда будем говорить, что на множестве {М } задана функция и = f(M). При этом множества {М } и U называют­ся соответственно областью определения (задания) и областью изменения функции f(M).

Как известно, функция одной переменной у = f (x ) изобра­жается на плоскости в виде линии. В случае двух переменных область определения {М п } функции z = f(x, y) представляет собой некоторое множество точек на координатной плоскости Оху (рис. 8.1). Координата z называется аппликатой, и тогда сама функция изображается в виде некоторой поверхности в пространстве E 3 . Аналогичным образом функция от т пере­менных

определенная на множестве {М } евклидова пространства Е m , представляет собой гиперповерхность в евклидовом простран­стве Е m+1 .

Некоторые виды функций нескольких переменных

Рассмотрим примеры функций нескольких переменных и найдем их области определения.

Е 3 . Областью определения этой функции является все множест­во точек плоскости Оху. Область значений этой функции - промежуток }