+funkcii

14
Функции проф. д-р Наце Стојанов Иницирање Функции ü Стандардни математички функции Под поимот стандардни математички функции се подразбираат најчесто користените аритметички, геометриски, експоненцијални, логаритамски, хиперболични функции итн. Во табелата се прикажани некои од нив. функција oзнака експоненцијална Exp[x] природен логаритам Log[x] логаритам со основа b Log[b, x] тригонометриски Sin, Cos, Tan, Sec, Csc, Cot инверзни триг. ArcSin, ArcCos, ArcTan, ArcSec, ArcCsc, ArcCot хиперболични триг. Sinh, Cosh, Tanh, Sech, Csch, Coth инверзни хипербол. ArcSinh, ArcCosh, ArcTanh, ArcSech, ArcCsch, ArcCoth Важно е да се напомене дека аргументот за тригонометриските функции мора да биде изразен во радијани . Доколку сакаме да работиме со степени тогаш тие треба да се претворат во радијани. За таа цел се користи наредбата Degree или со симболот ° . Sin150 ° 1 2 ü Дефинирање на функции Mathematica има огромен број на вградени (Built-In) функции, но секогаш постои и можноста за дефинирање на нови функции. За таа цел се користат операторите = и :=. Најпрво, да го разгледаме примерот во кој се применуваат методотите на директно и одложено доделување, и при тоа имаат исто дејство. fx_ Logx 2 1; gx_ : Logx 2 1; Со ова, аргументот на функцијата x_ кој се наоѓа на левата страна може да добие произволна вредност. На пример,

Upload: fatlum-rushiti

Post on 15-Jan-2016

22 views

Category:

Documents


0 download

DESCRIPTION

ddvd

TRANSCRIPT

Page 1: +Funkcii

Функции

проф. д-р Наце Стојанов

Иницирање

Функции

ü Стандардни математички функции

Под поимот стандардни математички функции се подразбираат најчесто користенитеаритметички, геометриски, експоненцијални, логаритамски, хиперболични функции итн. Вотабелата се прикажани некои од нив.

функција oзнакаекспоненцијална Exp[x]природен логаритам Log[x]логаритам со основа b Log[b, x]тригонометриски Sin, Cos, Tan, Sec, Csc, Cotинверзни триг. ArcSin, ArcCos, ArcTan, ArcSec, ArcCsc, ArcCotхиперболични триг. Sinh, Cosh, Tanh, Sech, Csch, Cothинверзни хипербол. ArcSinh, ArcCosh, ArcTanh, ArcSech, ArcCsch, ArcCoth

Важно е да се напомене дека аргументот за тригонометриските функции мора да биде изразенво радијани. Доколку сакаме да работиме со степени тогаш тие треба да се претворат ворадијани. За таа цел се користи наредбата Degree или со симболот °.

Sin150 °

1

2

ü Дефинирање на функции

Mathematica има огромен број на вградени (Built-In) функции, но секогаш постои иможноста за дефинирање на нови функции. За таа цел се користат операторите = и :=. Најпрво, даго разгледаме примерот во кој се применуваат методотите на директно и одложенододелување, и при тоа имаат исто дејство.

fx_ Logx2 1;gx_ : Logx2 1;

Со ова, аргументот на функцијата x_ кој се наоѓа на левата страна може да добиепроизволна вредност. На пример,

Page 2: +Funkcii

f2, fy, fr3g2, gy, gr3

Log5, Log1 y2, Log1 r6

Log5, Log1 y2, Log1 r6

Но, идентичноста на двата метода не се запазува секогаш. Еве еден пример за тоа.

Clearf, g;gx_ Expandx3 1;fx_ : Expandx3 1;

Функциите f и g зависат од аргументот x, но f е дефинирана со одложено доделување, а gсо моментално доделување вредност.

gx y, fx y

1 x y3, 1 x3 3 x2 y 3 x y2 y3

До израз доаѓа разликата во дефиницијата на функциите. Во функцијата g иако е вклученоператорот Expand тој не дејствува врз десната страна на функцијата затоа што таа се пресметува(разложува) веднаш во секој случај.

ü Правила за замена на променливите

Многу корисна особина на Mathematica e способнаста за замена на променливите присимболичкото пресметување. Општиот облик на оваа операција гласи стар израз Æ нов изрзаз, анајчесто се користи наредбата ReplaceAll[expr,rule] или во пократка форма expr /. rule, например

zamena1 b b2;

3 b, Expb . zamena1

3 b2, b2

ReplaceAll3 b, Expb, zamena1

3 b2, b2

Овој начин на замена на променливите овозможува да биде заменета само променливатаа, но не дејствува врз променливите x или y, на пример.

a 3 b c . zamena1

a 3 b2 c

За да се овозможи универзална замена на променливите, треба да постапиме на следниовначин:

zamena2 x_ x2;

2 5 Funkcii.nb

Page 3: +Funkcii

a 3 b c . zamena2

a 3 b c 2

При дефинирање на правилата за замена на променливите, во еден ред може да бидатвнесени повеќе правила во вид на листа.

pravila Logx_ y_ Logx Logy, Logx_n_ n Logx;

Logp q, Logr4 . pravila

Logp Logq, 4 Logr

Вака дефинираните правила за замена што ја користат наредбата ReplaceAll овозможуваатдејство врз онолку променливи колку што има во правилото, во нашиот случај тоа се две. Но, акоимаме израз со три променливи, а правило за замена на две променливи, во изразот ќе сепроменат само променливите од даденото правило. На пример:

Logx2 y z . pravila

Logx2 Logy z

Се забележува дека правилотоза замена е коректно применето, но истото е применетосамо на две променливи, едната е x а втората е производот y z. За да се надмине ова ограничувањена наредбата ReplaceAll, требa да ja користимe наредбата ReplaceRepeated, која во поконцизнаформа може да се запише како //.

Logx2 y z . pravila

2 Logx Logy Logz

ü Цртање на 2D функцијa

ü Декартови координати

За цртање на 2D-функции вообичаено се користи наредбата Plot[f[x],{x,a,b}], на пример:

PlotArcSinx, x, 1, 1

-1.0 -0.5 0.5 1.0

-1.5

-1.0

-0.5

0.5

1.0

1.5

За да додадиме стрелки на оските ја користиме наредбата AxesStyle ØArrowheads, додека означувањетосо точки на некои од координатите низ кои поминува кривата се прави сонаредбата Mesh .

5 Funkcii.nb 3

Page 4: +Funkcii

In[43]:= PlotArcSinx, x, 1, 1, AxesStyle Arrowheads0.05, Mesh 20

Out[43]=-1.0 -0.5 0.5

-1.5

-1.0

-0.5

0.5

1.0

За нагласување на некои елементи на графиците може да се искоритат многу аргументина наредбата Plot. Еве некои од нив. На пример, за зголемување на ознаките и бројките може дасе искористи BaseStyle, за поставување рамка околу графикот се користи наредбата FrameØTrue, а за здебелување на кривата се користи наредбата PlotStyleØThickness.

PlotSinx2, x, 0, 2 , PlotStyle Thickness0.01,BaseStyle FontWeight "Normal", FontSize 14, Frame True

0 1 2 3 4 5 60.0

0.2

0.4

0.6

0.8

1.0

За да додадиме други опции на наредбата Plot, како на пример, умрежување на полето на графикот гикористиме наредбите GridLines и GridLinesStyle.

4 5 Funkcii.nb

Page 5: +Funkcii

PlotSinx2, x, 0, 2 , PlotStyle Thickness0.01,GridLines Automatic, GridLinesStyle DirectiveThin, Gray, Dotted,BaseStyle FontWeight "Normal", FontSize 14, Frame True

0 1 2 3 4 5 60.0

0.2

0.4

0.6

0.8

1.0

Во определени случаи, кога функцијата што ја цртаме има сингуларитети, пожелно е истите да сеодземат од графикот и да се нацртаат вертикални асимптоти. Подолу е прикажан еден пример во којасимптотите се во точките x=2 и x=5.

Plot x 3 x 4x 2 x 5 , x, 0, 7, Exclusions x 2, x 5, ExclusionsStyle Dashed

1 2 3 4 5 6 7

-4

-2

2

4

Функција што се задава во сегменти (интервали) се дефинира на следниов начин. Најпрво пишувамеf[x_]:= а потоа ÂpwÂ, на крај за да направиме умрежување (колони и редови) десно од заградата пишуваме‚ + Û. Ако се потребни повеќе од два реда пишуваме ‚ + Û со што се додава еден ред.

fx_ :

x2 1 Absx 21 Absx 11

x2True

5 Funkcii.nb 5

Page 6: +Funkcii

Plotfx, x, 4, 4, Exclusions x 2, x 2, ExclusionsStyle Dashed,

PlotStyle Thickness0.01

-4 -2 2 4

1

2

3

4

ü Комбинирање на графици

Да видиме како може да се комбинираат два или повеќе графици во еден график.

In[1]:= Clearf, g;

In[2]:= fx_ : Sinx2gx_ : Cosx2

Plotfx, gx, fx gx, x, ,

-3 -2 -1 1 2 3

0.2

0.4

0.6

0.8

1.0

Како што може да видиме, вообичаено, наредбата Plot секој график го црта со посебна боја. Но тоа секогаш не едоволно. Затоа може да ја искористиме наредбата Tooltip. Оваа наредба ни овозможува кога со курсерот ќепоминиме врз некоја крива да ни ја испише формулата на кривата. Со тоа се зголемува прегледноста награфикот.

6 5 Funkcii.nb

Page 7: +Funkcii

PlotTooltipfx, gx, fx gx, x, ,

-3 -2 -1 1 2 3

0.2

0.4

0.6

0.8

1.0

Прегледноста може да се зголеми и со тоа што графиците што се комбинираат се исцртаат со различнилинии. Еве еден пример.

Plotfx, gx, fx gx, x, , , PlotStyle Red, Blue, Dashing0.01

-3 -2 -1 1 2 3

0.2

0.4

0.6

0.8

1.0

Со користење на наредбите GraphicsRow и GraphicsColumn може повеќе графици да се подредат во редили колона, соодветно. Еве пример за ова:

In[4]:= g1 Plotfx, x, , ;g2 Plotgx, x, , ;g3 Plotfx gx, x, , ;

In[9]:= GraphicsRowg1, g2, g3

Out[9]=

-3 -2 -1 1 2 3

0.2

0.4

0.6

0.8

1.0

-3 -2 -1 1 2 3

0.2

0.4

0.6

0.8

1.0

-3 -2 -1 1 2 3

5

10

15

20

25

30

На графиците може да се додадат и легенди со кои дополнително ќе се опише која крива како еприкажана. За таа цел најпрво треба да се вчита модулот PlotLegends.

Needs"PlotLegends`"

5 Funkcii.nb 7

Page 8: +Funkcii

Plotfx, gx, fx gx, x, , , PlotStyle Red, Blue, Dashing0.01,PlotLegend fx, gx, fx gx, LegendPosition 1, .5

-3 -2 -1 1 2 3

0.2

0.4

0.6

0.8

1.0

cos2x+ sin2x

cos2x

sin2x

За да нацртаме функција која зависи и од параметри, неопходно е да се израчунанејзината вредност во секоја точка од областа каде сакаме да ја нацртаме. Притоа, може да јакористме наредбата Manipulate. Всушност, улогата на оваа наредба е да се осигурапресметувањето на функцијата пред да се замени конкретна вредност за независнопроменливата.

ManipulatePlotTann x, x, 0, 1, PlotRange 10, n, 1, 4, 1

n

0.2 0.4 0.6 0.8 1.0

-10

-5

5

10

Оваа наредба може да се искористи и за „табелирање“ на функции, односно за динамичко прикажување назависноста f(x). Еве еден пример:

In[48]:= Manipulate

TextGrid"x", "fx 1

x2 1", x, 1

x2 1, Dividers All, ItemSize 5,

x, 5.3, 1, 10, 0.1

Out[48]=

x

x f x= 1

x2+1

5.3 0.0343761

8 5 Funkcii.nb

Page 9: +Funkcii

Задача.Користејќи ја наредбатаManipulate,

да се испита зависноста на квадратната функција од параметрите a, b и c?

Задача. Користејќи ја наредбата Manipulate, да се прикаже динамички конверзијата на Целзиусови степени воКелвинови степени?

За одбележување на просторот што го зафаќаат кривите помеѓу себе или со координатните оски, се користинаредбата Filling која има разни параметри со кои се нагласуба што да се одбележи. На пример, ако сакаме да гоозначиме просторот помеѓу кривата и x-оската имаме:

In[56]:= PlotSin20 x, x, 0, 1.5, PlotRange All, Filling Axis

Out[56]=

За да го означиме просторот над некоја крива до некоја вредност, на пример f(x)=2 имаме:

In[59]:= PlotSin20 x, x, 0, 1.5, PlotRange All, Filling 1 2

Out[59]=

Сакаме да го означиме просторот помеѓу втората и третата функција, имаме:

In[60]:= Plotx2, x4, Sin20 x, x, 0, 1.5, PlotRange All, Filling 2 3

Out[60]=

5 Funkcii.nb 9

Page 10: +Funkcii

ü Поларни координати

Еве уште една наредба за цртање на 2D функции, а тоа е PolarPlot. Начинот на кој сеупотребува е сличен на претходните наредби.

Clearf, t;

ft_ : Sina t;

PolarPlotft . a 3, t, 0, 2 , Frame True,

PlotStyle RGBColor1, 0, 1, Thickness0.01

-0.5 0.0 0.5-1.0

-0.5

0.0

0.5

За физиката од посебно значење е цртањето на параметарските функции од обликотx=f(t) и y=f(t). За таа цел, се користи наредбата ParametricPlot. Еве некои примери како сеупотребува.

Clearx, y, t;

xt_ 3 Sint;yt_ 3 Cost;

krug ParametricPlotxt, yt, t, 0, 2 , AspectRatio Automatic

-3 -2 -1 1 2 3

-3

-2

-1

1

2

3

Еве пример и за друга параметарска функција.

Clearx, y, t;

10 5 Funkcii.nb

Page 11: +Funkcii

xt_ : t Sint;yt_ : t Cost;

spirala ParametricPlotxt, yt, t, 0, 4 , AxesLabel x, y,AspectRatio Automatic, PlotStyle RGBColor0, 1, 1, Thickness0.01

-10 -5 5x

-5

5

10

y

Задача 1.Да се нацрта параметарската функција зададена со изразите: x(t) = r(1-sin(t)) и y(t) = r(1-cos(t)), за tœ{-2Pi,2 Pi}?

Задача 2.Да се нацртаат заедно четири логаритамски функции од обликот ln(nx +10)?

Задача 3.

Да се нацрта горната функција со користење на наредбата Manipulate.

ü Цртање на 3D функција

За цртање на 3D функции најчесто се користат наребите Plot3D и ParametricPlot3D. Евепримери како се употребуваат тие.

Clearx, y, t;

fx_, y_ : 1

x2 y2;

5 Funkcii.nb 11

Page 12: +Funkcii

povrsina

Plot3Dfx, y, x, 2, 2, y, 2, 2, AspectRatio Automatic, PlotPoints 40

За 3D функциите од посебно значење е опцијата PlotPoints. Со неа се дефинира густинатана мрежата вокоја се пресметува вредноста на функцијата. Треба да се биде внимателен возадавањето на вредностите затоа што може да се „закочи“ компјутерот при големи вредности.

Улогата на AspecRatio е да го контролира соодносот на висината и ширината на графикот.Треба да се внимава како се употребува затоа што може да предизвика несакана „деформација“на графикот!

Еве и некои дополнителни аргументи кои најчесто се користат со оваа наредба.

povrsina Plot3Dfx, y, x, 2, 2, y, 2, 2, AspectRatio Automatic,

PlotPoints 40, Mesh False, AxesLabel " x", " y", " fx",BaseStyle FontWeight "Normal", FontSize 14

Во Mathematica можна е динамичка ротација на објектите со тоа што глувчето сепоставува врз објектот и со задржан лев клик се ротира објектот во даената насока.

Следи еден пример во кој се применува наредбата ParametricPlot3D.

Clearx, y, z, r, t;

fx_, y_ : x2 y2;

12 5 Funkcii.nb

Page 13: +Funkcii

xr_, t_ : r Cost;yr_, t_ : r Sint;zr_, t_ : fxr, t, yr, t;

povrsina ParametricPlot3Dxr, t, yr, t, zr, t, r, 0, 2, t, 0, 2 ,PlotPoints 30

Доколку сакаме да ја прикажиме функцијата како мрежа, може да се употреби опцијата Opacity. Евепример како се прави тоа.

Plot3Dx2 y2, x, 2, 2, y, 2, 2, PlotPoints 40,

PlotStyle DirectiveOpacity0.0, Thickness0.01, Boxed False

5 Funkcii.nb 13

Page 14: +Funkcii

Еве еден пример за функција што се задава во сегменти а се црта со наредбата Plot3D.

gx_, y_ : x2 y2 x2 y2 1

0 x2 y2 1

Plot3Dgx, y, x, 1, 1, y, 1, 1

Еве уште една наредба за цртање на 3D функции а тоа е ParametricPlot3D.

st_ : t2

50Sint, t2

50Cost, t

ParametricPlot3Dst, t, 0, 8 , AxesLabel x, y, z,PlotStyle Thickness0.01, BaseStyle FontWeight "Normal", FontSize 14

-10-5

05

x

-10

-5

0

510

y

0

10

20

z

14 5 Funkcii.nb