Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М

.pdf
Скачиваний:
1
Добавлен:
19.11.2023
Размер:
33.75 Mб
Скачать

Пример 9.14. “Кривая дьявола”. Эта кривая задается уравнением х 4 -96дг2 = у 4 -100у2.

Спомощью функции implicitPlot рисуется она совсем просто.

ImplicitPlot [хА4-96 хА2 = у А4-100 уА2, {xf-2 2 ,2 2 }, PlotPoints->200] ;

Пример 9.15. Кривая х 4 + у 4 = х 2 + у 2. Эта кривая с помощью функции ImplicitPlot

рисуется совсем просто, если заметить, что в полярных координатах она задается

уравнением вида г2 = ----------- и потому вся лежит внутри окружности радиуса 2>/2 . 3+cos4<p

ImplicitPlot [хА4+уА4 = х А2+уА2, {х, -22/ 22} /PlotPoints->200] ;

Мультимедиа: геометрия, графика, кино, звук

291

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

Пример 9.16. Кривая y5+jt4=jty2 Эта кривая с помощью функции Im p lic itP lo t^

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

( Ю , 10).

ImplicitPlot [у*5+хА4 = х * у А2, {х,-10, 10} ,PlotPoints->200] ;

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

292

Глава 9

также может скрывать эти свойства. Например, иногда очень трудно отличить криво­ линейную дугу от отрезка прямой, а из-за этого можно пропустить точку перегиба. В IV квадранте вычерченного системой Mathematica графика, например, есть точка перегиба. Однако на глаз заметить ее очень трудно, поскольку криволинейная дуга почти сливается с прямой. В учебных пособиях в таких случаях обычно жертвуют точностью и приводят эскиз графика, на котором характерные точки кривой легко заметны на глаз. Система Mathematica же точностью жертвовать не может, и потому иногда требуется дополнительное исследование графика, которое можно провести, конечно же, с помощью системы Mathematica.

В первом квадранте, например,

= 0,2 ^2700 «0,618336408508278420369...

а

максимум функция у(х) достигает при х = 0,5 ^/2,25 «0,65518534855222415178541532...

Пример 9.17. Кривая дг3 + у5=дсу2 Эта кривая с помощью функции implicitPlot рисуется совсем просто, если заметить, что все интересные детали лежат в интервале (-1, О-

ImplicitPlot[хЛ5+уА5==х*уЛ2, {х,-1, 1},PlotPoints->200];

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

х =±З20

~

■«±0,844854057665117169669294... точек перегиба в II и IV квадрантах

 

>/10-5>/з

 

 

 

 

определить на

глаз почти невозможно. Исследованием также находятся

абсциссы

V4

 

 

 

 

экстремумов в I и

III квад­

х = ±-7=*±0,5901018770673837262256... точек локальных

рантах,

а

также

уравнения

вертикальных

касательных

i/2'^27

 

~ J T ~

М ),714261716914966914109...). Наличие асимптоты jc+y = 0 определяется по уравне­ нию х5 + у5 =ху1 с первого взгляда.

Мультимедиа: геометрия, графика, кино, звук

293

Трудные случаи построения графика неявно заданной функции одной переменной в за­ данном интервале изменения переменной с помощью функции implicitPlot. Построе­ ние графика неявно заданной функции одной переменной даже в заданном интервале изменения переменной — весьма непростая задача. Функция ImplicitPlot во мно­ гих случаях справляется с ней блестяще. Но далеко не во всех случаях. Вот тривиаль­ ный пример.

ImplicitPlot[Min[х,у]==1,{х,-22,22},PlotPoints->200] ;

Solve::dinv

The expression Min^0'1*[x, y] involves unknowns in more than one argument, so inverse functions cannot be used. More...

ImplicitPlot::epfail: Equation Min[x,y]==l could not be solved for points to plot.

Конечно, уравнение Min[x,y]==l определяет неявно заданную функцию, график которой представляет собой прямой угол с вершиной в точке (1; 1), причем стороны; его параллельны осям координат. Потому с этим примером должен без труда справ-i ляться даже шестиклассник. Впрочем, функция ImplicitPlot с этим графиком тоже! может справиться, но после некоторой подсказки.

Вот еще один трудный (для функции ImplicitPlot) случай.

ImplicitPlot[Max[144-25xA2-9yA2-54y,Min[у,25-5у-хл2]]==0, {х, - 10,10},PlotPoints->200];

Solve::dinv

The expression Max^0'^ [« 1 » , 25 - x2 - 5 y] involves unknowns in more than one argument, so inverse functions cannot be used. More...

Solve::dinv

The expression Max^0,^ [« 1 » , 25 - x2 - 5 y] involves unknowns in more than one argument, so inverse functions cannot be used. More...

ImplicitPlot::epfail: Equation < < 1 » = 0 could not be solved for points to plot.

С этим примером должен без труда справляться даже восьмиклассник. (Правда,, если он хочет участвовать в районной (городской) олимпиаде или поступить на мех­ мат.) И вот еще один совсем “позорный” пример.

ImplicitPlot[(х+4)A2+1-Sign[1-уА2]==0,{х,-10,10}, PlotPoints->200];

InverseFunction::ifun

Inverse functions are being used. Values

may be lost for multivalued inverses. More...

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

ImplicitPlot[(хА2+уА2-25)(16 хА2+уА2-4)(хА2+16уА2-96у+140) (4xA2-16x*Sign[х]+4уА2-16у+31)==0,{х,-20,20}, PlotPoints->25];

Solve ::svars Equations may not give

solutions for all "solve" variables. More...

294

Гпава 9

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

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

ImplicitPlot[хА2+уА2-25==0,16 хА2+уА2-4==0,хА2+16ул2-96у+140==0, 4xA2-16x*Sign[х]+4уА2-16у+31==0,{х,-20,20},PlotPoints->25];

или так

ImplicitPlot[хА2+ул2-25==0,16 хл2+уА2-4==0,хА2+16уА2-96у+140==0, 4xA2-16x*Sign[х]+4уА2-16у+31==0, {х, -20,20}, {у, -20,20}, PlotPoints->25];

Вы увидите, что ничего не произойдет! На самом деле вызов нужно записать вот

так

ImplicitPlot[{хА2+уА2-25==0,16 хА2+ул2-4==0,хА2+16ул2-96у+140==0, 4xA2-16x*Sign[х]+4уА2-16у+31==0},{х, -20,20},PlotPoints->25] ;

или так

ImplicitPlot[{хА2+уА2-25==0,16 хА2+уА2-4==0,хА2+16уА2-96у+140==0, 4xA2-16x*Sign[х]+4уА2-16у+31==0),{х,-20,20}, (у,-20,20}, PlotPoints->25];

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

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

Чтобы построить график решения уравнения, найденного функцией Solve на ин­ тервале изменения переменной (xmin, хтах) , из которого исключено несколько точек, нужно в вызове функции ImplicitPlot [уравнение, {переменная, xmin, хтах)] между

Мультимедиа: геометрия, графика, кино, звук

295

xmin, и xmax через запятую перечислить все исключаемые точки. Впрочем, функций implicitPlot, как правило, сама избегает значений, которые доставляют хлопоты, jl потому прибегать к этой форме вызова не приходится даже в следующих двух классик ческих случаях.

296

Гпава 9

I m p l i c i t P l o t [ y = = S i n [ l / x ] , { x , - P i , P i } , P l o t P o in t s - > 2 5 0 0 0 ] ;

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

Уравнение F,(х, у) = F2(х, у) можно записать в виде F,(х, у) — F2(х, у) = 0.

Так что фактически вместо решения уравнения F,(х, у) = F2(х, у) можно найти ли­

нию уровня функции F,(х, у) - F2(х , у), на которой она равна 0. Как дать такую под­

сказку функции ImplicitPlot? Очень просто: нужно указать интервалы изменения

обеих переменных. Рассмотрим примеры, когда это полезно.

Ранее с помощью вызова ImplicitPlot [Min[x,y]==l, {х,-22,22}, PlotPoints->

200]; мы не смогли построить график неявной функции Min[x/y]==l. А вот с под­ сказкой ImplicitPlot[Min[х,у]==1,{х,-22,22},{у,-22,22},PlotPoints->200]; график строится мгновенно. Вызов ImplicitPlot [(хА2+уА2-25) (16- хА2+уА2-4)х *(хл2+16ул2-96у+140) (4xA2-16x*Sign[х]+4уА2-16у+31)==0, {х,-5,5}, {у,-5,5},

PlotPoints->25]; строит график более десяти минут, а вызову ImplicitPlot

[(хЛ2+уА2-25)

(16 хл2+ул2-4) (хА2+16уА2-96у+140) (4xA2-16x*Sign[х]+4уА2

-16у+31)==о,

{х#—5Г5} # {у,-5,5}, PlotPoints->250]; нужно менее трети секунды.

Мультимедиа: геометрия, графика, кино, звук

297

Вот еще один график, который без подсказки не строится вообще.

ImplicitPlot[Max[144-25xA2-9yA2-54y,Min[у,25-5у-хА2]]==0,

{х,-8,8},{у,-8,8},PlotPoints->250);

График

I m p l i c i t P l o t [ ( ( 4 2 - 3 8 S i g n [ х ] ) у + х ( ( ( х - 2 ) л2 / 1 0 0 ) А( 1 / 3 ) - 1 ) ( S q r t [ 1 3 - 4 х ] + 1 ) ) ( 9 S q r t ( 5 ] у - х ( х - 1 ) S q r t [ х + 2 ] )

(4 х А2+ 1 6 у А2 + 5 6 х -6 4 у + 2 5 9 )= = 0 ,

(х, - 2 , 13/4),( у , - 1 , 2 ) , P lotP oints-> 250]; //T im ing

строится за 0,344 секунды. Важна ли туг подсказка ( у , - 1,2)? Оказывается, график можно построить и без нее, но это займет немалое время даже при PlotPoints->25.

I

298

Г пава 9

Построение графиков нескольких неявных функций

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

уравнениями

 

 

 

 

 

 

 

F, (х, у) =

Ф,(х, у), F2(х, у) = Ф2(х, у),

F3 (х, у) =

Ф3(х, у), .... F„ (х, у) = Фл(х, у).

Тогда мы можем привести эти уравнения к виду

F, (х, у) —Ф^х, у) = О, F2 (х, у) —

Фг(х, у) =

О,

F3 (х,

у) - Ф3(х,

у) = О,

F„ (х, у) -

Ф„(х, у) =

0 и

построить график

(F, (х, У) “

ФД*. У))(

Fj (х, у) -

Фг(х, у))(

F3 (х, у) -

Ф3(х, у))...(

F„

у) - Ф„(х, у)) = 0.

Но на практике лучше поступать не так, а совсем наоборот. Например, построение графика

Im p lic it P lo t [

((42-38Sign[х])у+х(((х-2)л2/100)А (1/3)-1) (Sqrt[13-4х]+1)) (9Sqrt [5] -х (х-1) Sqrt [х+2] )

(4хл2+16уА2+56х-64у+259)==0, {х,-2,13/4},PlotPoints->25];//Timing

можно заменить построением следующего графика.

Im p lic itP lo t [ {

(42-38Sign[х])у+х(((х-2)А2/100)А (1/3)-1)(Sqrt[13-4х]+1)==0, 9Sqrt[5]у-х(х-1)Sqrt[х+2]==0,

4хА2+16уА2+56х-64у+259==0},

{х,- 2 , 13/4},PlotPoints->250];//Timing

Solve::svars

Equations may

not give

solutions

for all "solve"

variables. More...

График

ImplicitPlot [((4y+xA2)A2+Sign [xA2+2x] +1) ((xA2+yA2)A (5/2)-4x(xA2-yA2))==0,

{x,-5/ 5}, PlotPoints->25];//.Timing

можно строить часами, а график

ImplicitPlot [{(4y+xA2) A2+Sign [xA2+2x] +1==0, (xA2+yA2)A (5/2)-4x(xA2-yA2)==0},

{x,-5/ 5}, PlotPoi.nts->250];//Timing Solve: rsvars Equations may not give

solutions for all "solve" variables. More...

Мультимедиа: геометрия, графика, кино, звук

299

строится всего

за 21,641 секунды . Этот график м ож но попытаться построить и как

линию уровня.

 

ImplicitPlot[((4у+хА2)A2+Sign[хл2+2х]+1)

((хА2+уА2) А (5/2) -4х(хА2-уА2) )=0,

{X / “2, 2}, { у , - 1 , 1 } , PlotPoints->2500];

Этот сп особ

потребует всего лиш ь 17,859 секунды . Н о обратите вним ание

на от­

сутствие нож ки

у трилистника. Вм есто нее на экране

всего лиш ь несколько

почти

незам етны х точек. Попытка же увеличения значений

параметров P lo t P o in t s и

P lo t D iv is i o n может привести к неоправданно больш ому запросу виртуальной памя­

ти и к пробуксовыванию . Мораль: при построении контурных линий некоторые ветви могут пропадать.

Вот что происходит при построении некоторых графиков.

I m p l i c i t P l o t [ { x A2 - S i g n [ 3 * у - у А2 ]+ 1 = = 0 ,

S q r t [ (х А2 + у л2 ) А5 ] — 2 * (A b s[ у ] + у ) * (х л2 + у А2 )= = 0 ,

(х А2 + у А2 - 2 * у + 1 ) А( 5 / 2 ) —2 (A b s[ у - 1 ] + у - 1 ) (х А2 - у А2 + 2 * у -1 )= = 0 , (х А2 + у А2 - 6 * у + 9 ) A2 - 2 * A b s [ х * у - 3 * х ] = = 0 },

{х, -10,10}, {у,-10,10), PlotPoints->300];//Timing ContourPlot::plnr

2

(x 2 + « 1 »

К « 1 »

— (y + A b s[y ])

« 1 »

« 1

»

 

i s

n o t

a

m a c h in e - s iz e

r e a l number

 

 

 

a t

{x ,

y)

{ - 1 0 . ,

- 1 0 . } . More...

 

 

C o n t o u r P lo t :: p ln r :

 

 

 

 

 

2

(x 2 + « 1 »

) V « 1 »

- (y

+ Abs [ у ] ) « 1 »

« 1

»

 

i s

n o t

a

m a c h in e - s iz e

r e a l number

 

 

 

a t

{x ,

y}

{ - 9 .9 3 3 1 1 ,

- 1 0 . } .

More...

 

 

300

Гпава 9