1 - Technomatematika



Vilniaus Gedimino technikos universitetas

J. Kleiza

MATEMATINIS PAKETAS

MAPLE

Mokomoji knyga

Vilnius “ Technika “ 2003

UDK

J. Kleiza. Matematinis paketas MAPLE. Mokomoji knyga Vilnius Tecnika, 2003. 70 p.

MAPLE viennas iš galingiausių matematinių paketų – kompiuterinės algebros

(simbolinių ir analizinių skaičiavimų) sistema. Turėdamas keletą tūkstančių įvairių operatorių, paketas MAPLE įgalina spręsti algebros, matematinės analizės, diferencialinių lygčių, statistikos ir daugelį kitų matematikos sričių uždavinius. Į paketą įtraukta išvystyta grafikos biblioteka ir programavimo kalba. Todėl šis paketas tapo patogia matematinių tyrimų ir įvairių procesų modeliavimo intelektualia terpe.

Šis leidinys, visų pirma, skiriamas pradedantiems naudotis šiuo paketu studentams, magistrantams ir doktorantams. Jame pateikiamos paprasčiausios, tačiau dažniausiai sutinkamomis matematikoje ir jos taikymuose, paketo struktūros, kurios gausiai iliustruotos pavyzdžiais.

Šia mokymosi priemone sugebės naudotis kiekvienas, perpratęs matematikos ir informatikos kursus, skaitomus aukštose technikos mokyklose. Norintys pagausinti žinias gali pasinaudoti literatūra, nurodyta knygelės pabaigoje.

TURINYS

ĮVADAS 5

pradinės sąvokos 5

teksto atvaizdavimas ekrane. įrašymas į diską 6

veiksmai su skaičiais 7

veiksmai su reiškiniais 8

maple funkcijos 9

reiškiniai ir funkcijos 11

grafikai 12

išreikštinių funkcijų grafikai 12

neišreikštinių funkcijų grafikai 15

brėžinių apjungimas. tekstas brėžiniuose 16

trimatė grafika 17

ribos, išvestinės, integralai, eilutės 21

ribų apskaičiavimas 21

išvestinių apskaičiavimas 22

integralų apskaičiavimas 24

eilučių sumavimas 26

teiloro eilutės 29

ekstremumai 32

absoliutūs ekstremumai 32

sąlyginiai ekstremumai 33

didžiausios ir mažiausios funkcijos reikšmės 34

lygčių ir nelygybių sprendimas 36

lygčių sprendimas 36

lygčių sistemų sprendimas 37

nelygybių sprendimas 38

tiesinių nelygybių grafinis sprendimas 39

diferencialinės lygtys 41

diferencialinių lygčių analizinis sprendimas 41

diferencialinių lygčių skaitmeninis sprendimas 43

diferencialinių lygčių sprendinių grafikai 46

matricos 48

matricų sudarymas 49

matricų struktūros keitimas 50

veiksmai su matricomis 51

matricų taikymas tiesinių sistemų sprendimui 54

matricų tikrinės reikšmės ir tikriniai vektoriai 57

vektorių sudarymas 59

sekų, aibių ir vektorių operacijos 60

aibių operacijos 61

vektorių operacijos 62

programavimas 64

ciklo operatoriai 64

sąlyginiai operatoriai 65

loginiai operatoriai 66

procedūros 66

tikimybių teorija ir statistika 69

veiksmai su įvykiais 69

skirstiniai 70

statistinės sekos 76

statistinių sekų skaitinių charakteristikų apskaičiavimas 77

statistinių sekų transformavimas 78

statistinių sekų histogramos 79

chi kvadrato kriterijus 83

koreliacija 86

literatūra 87

ĮVADAS

pradinės sąvokos

|Simboliai |; |: |:= |% |' |

|Operatoriai |subs |restart |

Jei MAPLE darbiniame lange, po kvietimo ženklo > įrašysime norimą reiškinį, kurio pabaigą atžymėsime simboliu ; ir paspausime klavišą ENTER , tai tas reiškinys bus apskaičiuotas ir išvestas į ekraną. Pvz. , naudodami priskyrimo ženklą := kintamajam S suteiksime reiškinio a*b reikšmę:

S:=a*b;

[pic]

Pakeitus simbolį ; į simbolį : reiškinys bus apskaičiuotas, tačiau ekrane nespausdinamas.

Jei norime apskaičiuoti reiškinį, kai kintamieji įgyja reikšmes, taikome operatorių subs:

|subs(a=5,S); |subs(a=5,S); |subs({a=5,b=12},S); |

|[pic] |[pic] |[pic] |

Šiuo atveju kintamieji išlieka laisvais arba jiems paliekamos buvusios reikšmės:

a, b, S;

[pic]

Taikant kitą būdą:

a:=5: a;

[pic]

kintamasis a įgija reikšmę 5. Norėdami vėl padaryti jį laisvu, taikome kabutes ' ir priskyrimo operatorių := :

a:='a': a;

[pic]

arba naudojame operatorių restart . Tada visi kintamieji tampa laisvais, tačiau prarandami visi anksčiau vykdytų skaičiavimų rezultatai. Todėl šiuo operatoriumi reikia naudotis atsargiai:

a:=5: b:=12: S:=a*b: restart: a, b, S;

[pic]

Kad nereikėtų perrašinėti apskaičiavimų rezultatus, galima naudoti procento ženklą % . Pritaikius jį 1 kartą ekrane matysime paskutinįjį rezultatą, 2 kartus ( priešpaskutinįjį ir t. t.

|a:=1: b:=2: c:=3: |a:=1: b:=2: c:=3: |a:=1: b:=2: c:=3: |

|%; |%%; |%%%; |

|[pic] |[pic] |[pic] |

teksto atvaizdavimas ekrane. įrašymas į diską

|Simboliai |= |< |> |# |` |

|Operatoriai |print |save |read |

Atliekant skaičiavimus neretai pravartu jų rezultatus aprašyti įvairiu paaiškinančiu tekstu. Tai atliekama tarp pasvirųjų kabučių `…` įrašius norimą tekstą. Šį tekstą MAPLE tiesiog atvaizduos ekrane. Be to, taikant lygybės = , ar nelygybių < , > simbolius ir jų kombinacijas galima sujungti tekstą su skaičiavimo rezultatais.

Pvz. , tegul a ir b stačiakampio kraštinės ir S=ab ( jo plotas.

a:=5:b:=12: `Plotas = a*b`; `Plotas`=a*b;

[pic] [pic]

Panašiai veikia ir operatorius print. Pavyzdžiui:

print(`Plotas S` = `a*b`,` a - pagrindas, b - aukstis`);

[pic]

Norėdami programos eilutėje įrašyti komentarą, jį atskiriame ženklu # :

z=sqrt(x^2+y^2); # Pitagoro teorema

[pic]

Dydžių įrašymui į diską taikomas operatorius save:

a:=`Pagrindas`;S:=60; v:=Vektorius=[1,2,3];

[pic] [pic] [pic]

save a,S,v, `failas 1`;

Norėdami juos perskaityti taikome operatorių read :

read `failas 1`;

[pic] [pic] [pic]

veiksmai su skaičiais

|Simboliai |+ |- |* |/ |^ |sqrt |Re |Im |

| |Sudėtis |Atimtis |Daugyba |Dalyba |Kėlimas |Kvadratinė |Realioji |Menamoji |

|Veiksmai | | | | |laipsniu |šaknis |dalis |dalis |

| |evalf |evalc |evalb |Digits |

|Operatoriai | | | | |

| |Reiškinio |Kompleksinio |Loginio reiškinio |Skaičiavimų |

|Veiksmai |apskaičiavimas |reiškinio |apskaičiavimas |tikslumas |

| | |apskaičiavimas | | |

| |Pi |I |infinity |false |true |

|MAPLE konstantos | | | | | |

| |Skaičius ( |[pic] |[pic] |Loginės konstantos |

MAPLE visada išlaiko aukščiausią skaičiavimų tikslumą. Pvz. , šaknis [pic] bus palikta neapskaičiuota:

sqrt(3);

[pic]

Norėdami rasti artutinę [pic] reikšmę skaičių 3 galima parašyti pavidale 3. :

sqrt(3.);

[pic]

arba naudoti operatorių evalf, nurodant ar nenurodant tikslumą:

evalf(sqrt(3));

[pic]

evalf(sqrt(3),50);

[pic]

Įjungus kompiuterį MAPLE vykdys skaičiavimus, išlaikydamas 10 skaitmenų tikslumą, nes dydžiui Digits priskiriama reikšmė 10. Tačiau ją galima keisti (nuo 1 iki 524280):

Digits:=4: sqrt(3.);

[pic]

Tolimesni apskaičiavimai bus atliekami tokiu tikslumu kokia buvo paskutinė Digits reikšmė.

Kompleksiniai reiškiniai apskaičiuojami operatoriumi evalc:

z:=(sqrt(5)+3*I)^2; evalc(z),

[pic]

[pic]

` Re(z)`=evalc(Re(z)), ` Im(z)`=evalc(Im(z));

[pic]

Skaičius galima palyginti loginiu operatoriumi evalb

evalb(23);

[pic] [pic]

veiksmai su reiškiniais

| |simplify |factor |expand |collect |sort |

|Operatoriai | | | | | |

|Veiksmai |Reiškinio |Keitimas į |Keitimas į |Grupavimas |Rūšiavimas |

| |prastinimas |sandaugą |sumą | | |

1. Norėdami suprastinti reiškinį, taikome operatorių simplify:

|f:=(x+sqrt(1+x^2))/(1+x/(sqrt(1+x^2))); |f:=simplify(f); |

|[pic] |[pic] |

2. Operatorius factor keičia reiškinį į sandaugą:

z:=factor( 3*a*x^2-a^2*x*y+6*x*y-2*a*y^2-3*x*a+a^2*y);

[pic]

3. Priešingai, operatorius expand išskleidžia reiškinį:

|expand(sin(x+y)); |expand((a+b+c)^2); |

|[pic] |[pic] |

4. Reiškinį galima sugrupuoti. Tai vykdoma operatoriumi collect:

|r:=(x-1)^2*(x+exp(x)); |collect(r,exp(x)); |

|[pic] |[pic] |

| |collect(r,x); |

| |[pic] |

5. Operatorius sort rūšiuoja vektoriaus elementus:

|A:=[4,2,1,5,6,3]; |B:=sort(A); |C:=sort(A,`>`); |

|[pic] |[pic] |[pic] |

arba daugianario narius:

|f:=-3*a^2*x+a^3+x^3-a; |sort(f,a); |sort(f,x); |

|[pic] |[pic] |[pic] |

maple funkcijos

Visos MAPLE funkcijos apibrėžtos kompleksinėje srityje. Plačiau apie jas galima sužinoti kreipiantis “?funkcijos pavadinimas”, pvz. : ?sin.

Didelis kiekis specialiųjų funkcijų aprašytas skyriuje HELP, inifcn.

Trigonometrinės, hiperbolinės ir jų atvirkštinės funkcijos

|Trigonometrinės |Atv. trigonometrinės |Hiperbolinės |Atv. hiperbolinės |

|sin(x) |arcsin(x) |sinh(x) |arcsinh(x) |

|cos(x) |arccos(x) |cosh(x) |arccosh(x) |

|tan(x) |arctan(x) |tanh(x) |arctanh(x) |

|cot(x) |arccot(x) |coth(x) |arccoth(x) |

Logaritminė, rodiklinė, laipsninės, modulio ir faktorialo funkcijos

|Funkcija |Pavyzdžiai |

|ln(x) – logaritminė: [pic] |ln(2.72); |[pic] |

|exp(x) – rodiklinė: [pic] |exp(1.); |[pic] |

|x^n – laipsninė: [pic] |2^10; |[pic] |

|sqrt(x)– kvadratinės šaknies: [pic] |sqrt(9); |[pic] |

|surd(x,n)– n-ojo laipsnio šaknies: [pic] |surd(-8,3); |[pic] |

|abs(x)– modulio: [pic] |abs(3-4*I); |[pic] |

|x!– faktorialo: [pic] |4!; |[pic] |

Skaičių apvalinimo funkcijos

|Funkcija |Pavyzdžiai |

|round(x) − suapvalina skaičių x iki artimiausio |round(2.8); |round(-2.8); |

|sveiko skaičiaus |[pic] |[pic] |

|ceil(x) − suapvalina x iki artimiausio |ceil(2.8); |ceil(-2.8); |

|nemažesnio už x sveiko skaičiaus |[pic] |[pic] |

|floor(x) − suapvalina x iki artimiausio |floor(2.8); |floor(-2.8); |

|nedidesnio už x sveiko skaičiaus |[pic] |[pic] |

|trunc(x) − suapvalina x iki artimiausio nulio |trunc(2.8); |trunc(-2.8); |

|kryptimi sveiko skaičiaus |[pic] |[pic] |

|frac(x) − skaičiaus x trupmeninė dalis |frac(2.8); |frac(-2.8); |

| |[pic] |[pic] |

reiškiniai ir funkcijos

Iš pakete MAPLE esamų funkcijų, naudojant įvairius matematinius veiksmus, galima sudaryti kitas funkcijas arba reiškinius.

1. Reiškinys r apibrėžiamas taikant priskyrimo ženklą :=

r:= reiškinio aprašas ;

2. Funkcijos [pic] apibrėžimui naudojami “atimties“ ir “daugiau“ simboliai – >:

f:= (x, y, z, ...) -> funkcijos aprašas;

Reiškinio ir funkcijos pavyzdžiai

|Matematinė forma |Veiksmai su reiškiniu |Veiksmai su funkcija |

|Apibrėžimas: |r:=x^2+3*x; |f:=(x)->x^2+3*x; |

|[pic] |[pic] |[pic] |

|[pic] |expand(r^3); |expand(f(x)^3); |

| |[pic] |[pic] |

|[pic] |subs(x=1,r^3); |f(1)^3; |

| |[pic] |[pic] |

|[pic] |diff(ln(r),x); |diff(ln(f(x)),x); |

| |[pic] |[pic] |

|[pic] |int(2*r+1,x); |int(2*f(x)+1,x); |

| |[pic] |[pic] |

Kelių kintamųjų funkcijos pavyzdys

Apibrėžkime [pic] kaip 3 kintamųjų [pic] funkciją [pic];

f:=(a,b,c) -> a*x^2+b*x+c;

[pic]

|f(2,3,4); |f(1,p,q); |f(2,x,4); |

|[pic] |[pic] |[pic] |

|subs(x=1,f(a,b,c)); |subs(x=sin(x),f(a,b,c)); |

|[pic] |[pic] |

grafikai

išreikštinių funkcijų grafikai

| |

|plot( Funkcija, x= a..b, Nebūtini parametrai); |

|Nebūtini parametrai |Galimos parametro reikšmės |Paaiškinimai |

|color= |red, blue, black… |Spalva |

|thickness= |1, 2, 3, ... |Kreivės storumas |

|scaling= |constrained |Vienodi ašių ilgio vienetai |

| | |Bet kokie ašių ilgio vienetai |

| |unconstrained | |

|style= |LINE |Grafikas – ištisinė kreivė |

| | | |

| |POINT |Grafikas – sudarytas iš taškų |

|view= |[ x1..x2, y1..y2 ] |Sritis, kurioje bus atvaizduotas |

| | |brėžinys |

|symbol= |CROSS |Kryžius + |

| |POINT |Taškas . |

| |CIRCLE |Apskritimas ( |

|Plačiau žr. ?plot[options] |

1. Vienos funkcijos grafikas. Pvz. : [pic]

plot( cos(x)+sin(4*x)/2, x=0..2*Pi, color=black,

scaling=constrained);

2. Keleto funkcijų grafikai. Pvz. : [pic]:

y:= cos(x)+sin(4*x)/2: z:= sin(x):

plot([y, z],x=0..2*Pi, thickness=[3,1], color=[blue,black]);

3. Funkcijos, apibrėžtos parametrinėmis lygtimis [pic] , grafikas.

Pvz. : Nubrėžti kreivę [pic]

x:=1+t-2*sin(t): y:=1-cos(t): plot( [ x, y, t=-Pi..5*Pi ]);

4. Funkcijos grafikas polinėje koordinačių sistemoje [pic].

Pvz. : Nubrėžti kreivę [pic]

plot (6*t*sin(2*t), t=0..2*Pi, coords=polar, color=black);

5. Funkcijos, apibrėžtos reikšmių lentele [pic], grafikas.

Pvz. : Pažymėti taškus [pic] ir juos sujungti tiesių atkarpomis.

plot([[1,5],[3.7,1],[5,7],[7,4]],style=POINT,symbol=CIRCLE);

plot([[1,5],[3.7,-1],[5,7],[7,4]],style=LINE);

neišreikštinių funkcijų grafikai

Neišreikštinių funkcijų grafikų brėžimui reikia iškviesti paketą plots, naudoti operatorių implicitplot ir nurodyti x ir y kitimo sritis:

|with(plots): |

|implicitplot( Lygtis, x=a..b, y=c..d,Nebūtini parametrai); |

Čia

Lygtis – kreivės lygtis ar keleto kreivių lygčių seka Dekarto koordinačių sistemoje[pic],

x=a..b, y=c..d – kintamųjų x ir y kitimo intervalai,

Nebūtini parametrai – tie patys kaip ir plot. Tačiau galima papildomai nurodyti grid=[gx,gy]: tai tinklelis susidedantis iš [pic] taškų, kuriuose nustatoma jų priklausomybė kreivei. Nenurodžius grid laikoma, kad grid=[25,25]

( default ).

Pvz. : Nubrėžti elipsės [pic] grafikus, esant įvairioms grid reikšmėms.

with(plots):

implicitplot(x^2+x*y+2*y^2=2*y,x=-5..2,y=-2..8, color=black,

thickness=2,grid=[100,100]);

brėžinių apjungimas. tekstas brėžiniuose

|display( Brez1, Brez2, …) |textplot([X,Y, ”Tekstas”]) |

| | |

|Viename brėžinyje atvaizduoja keleto funkcijų|Brėžinyje atvaizduoja užrašą Tekstas, kurio |

|grafikus |centro koordinatės X, Y |

| |

|Plačiau žr. ?plots,display; ?textplot; |

Pvz. : Viename brėžinyje atvaizduoti kreivių [pic] grafikus ir pažymėti jų susikirtimo taškus [pic].

with(plots):

Brez1:=implicitplot(x^2+y^2=5, x=-3..3,y=-3..3, color=black, thickness=2):

Brez2:=plot(3*x+5,x=-3..0,thickness=2):

txtA:=textplot([-1.6,2.2, A(-1,2)], font=[TIMES,ROMAN,14]):

txtB:=textplot([-1.3,-1, B(-2,-1)],font=[TIMES,ROMAN,14]):

taskai:=plot([[-1,2],[-2,-1]], style=POINT, symbol=BOX, color=black):

display( Brez1, Brez2, txtA, txtB, taskai, scaling=constrained, view=[-3..3,-3..3]);

trimatė grafika

1. Paviršiaus [pic] grafikas

| |

|plot3d(f(x,y), x=a..b, y=y1(x)..y2(x), Nebūtini parametrai); |

Plačiau žr. ?plot3d[option]

Pvz. : Nubrėžti paviršių [pic].

Norėdami suteikti brėžiniui daugiau vaizdumo, pasirikime kintamųjų x ir y sritį tokiu būdu:

kirskime paviršių plokštuma z = const, pvz. z = 4, tada iš gautos kreivės lygties [pic] matysime, kad [pic].

Taigi:

plot3d( x^2+y^2, x=-4..4, y=-sqrt(16-x^2)..sqrt(16-x^2), color=white ,axes=NORMAL,grid=[15,15]);

2. Erdvinės kreivės [pic] grafikas

|with(plots): |

|spacecurve([x(t),y(t),z(t)],t=t1..t2,Nebūtini parametrai); |

Plačiau žr. ? spacecurve

Pvz. : Nubrėžti erdvinę kreivę [pic].

Pastaba: ši kreivė priklauso anksčiau atvaizduotam paviršiui [pic].

with(plots):

spacecurve([t*cos(6*t),t*sin(6*t),t^2],t=0..4,color=blue,

thickness=4,numpoints=100):

3. Brėžinių apjungimas

|with(plots): display(Brez1,Brez2,…),Nebūtini parametrai); |

Pvz. : Viename brėžinyje atvaizduoti paviršių [pic] ir kreivę [pic].

with(plots):

Brez1:=plot3d( x^2+y^2, x=-4..4, y=-sqrt(16-x^2)..sqrt(16-x^2), color=white ,axes=NORMAL,grid=[15,15]);

Brez2:=spacecurve( [ t*cos(6*t),t*sin(6*t),t^2 ] , t=0..4, color=blue, thickness=4, numpoints=100):

display(Brez1,Brez2);

4. Neišreikštinės funkcijos [pic] grafikas

| |

|with(plots): |

|implicitplot3d(f(x,y,z)=0, x=x1..x2, y=y1..y2, z=z1..z2, Nebūtini parametrai); |

Pvz. : Nubrėžti paviršių [pic].

with(plots):

implicitplot3d(x^2-y^2-z^2=-2*z+2, x=-2..2,y=-2..2,z=-1..3, axes=NORMAL,color=gray);

ribos, išvestinės, integralai, eilutės

ribų apskaičiavimas

Reiškinio [pic] ribos apskaičiuojamos taikant operatorių limit:

|Funkcijos riba |[pic] |limit(y ,x=a); |

| |[pic] |limit(y ,x= infinity); |

|Riba, kai [pic] |[pic] |limit(y ,x=-infinity); |

| | | |

|Riba, kai [pic] | | |

| | |limit(y ,x=a, left); |

|Riba iš kairės |[pic] | |

| | |limit(y ,x=a, right); |

|Riba iš dešinės |[pic] | |

Pavyzdžiai.

1. [pic] limit( (1+x)^(1/x), x=0);

[pic]

2. [pic] limit(x*(sqrt(5+x^2)-x),x=infinity);

[pic]

3. [pic] limit( (1+abs(x))^(1/x), x=0);

[pic]

t.y. šios funkcijos riba neegzistuoja, nes jos riba iš kairės nelygi ribai iš dešinės:

limit((1+abs(x))^(1/x),x=0,left);

[pic]

limit( (1+abs(x))^(1/x), x=0, right);

[pic]

išvestinių apskaičiavimas

1. Reiškinio [pic] išvestinės apskaičiuojamos taikant operatorių diff:

|Matematinė |[pic] |[pic] |[pic] |… |

|išraiška | | | | |

| |diff(y,x); |diff(y,x,x); |diff(y,x,x,x); |… |

|MAPLE | |arba |arba | |

| | |diff(y,x$2); |diff(y,x$3); | |

Pvz. : [pic] Apskaičiuoti [pic][pic]

|y=x*exp(x): |

|diff(y,x); |diff(y,x$6); |subs(x=1,diff(y,x$6)); |

|[pic] |[pic] |[pic] |

2. Reiškinio [pic] dalinės išvestinės apskaičiuojamos panašiu būdu:

| |

|[pic] |

Pvz. : [pic] Apskaičiuoti [pic]

|z:=x^2/y: |

|diff(z,x); |diff(z,x$2,y$3); |subs({x=3,y=1},diff(z,x,y)); |

|[pic] |[pic] |[pic] |

3. Neišreikštinių funkcijų išvestinės apskaičiuojamos taikant operatorių implicitdiff:

|[pic] |

Pvz. : [pic]. Apskaičiuoti [pic]

f:=x/z=ln(z/y);

[pic]

Diff(z,x)=implicitdiff(f,z,x);

[pic]

Diff(z,y)=implicitdiff(f,z,y);

[pic]

Diff(y,z)=implicitdiff(f,y,z);

[pic]

Diff(z,x$2,y)=implicitdiff(f,z,x$2,y);

[pic]

Pastaba. Čia taikomas operatorius Diff, kuris tik pažymi išvestinę.

integralų apskaičiavimas

Reiškinio [pic] integralai apskaičiuojamos taikant operatorių int:

| |Neapibrėžtinis |Apibrėžtinis |Apytikslis apskaičiavimas |

|Matematinė |integralas |integralas |(su p teisingų skaitmenų) |

|išraiška | |[pic] |[pic] |

| |[pic] | | |

| |int(y ,x) |int(y,x=a..b) |evalf(Int(y,x=a..b),p)) |

|MAPLE | | | |

Pavyzdžiai.

1. Neapibrėžtinis integralas

[pic] int(x*ln(x), x);

[pic]

2. Apibrėžtinis integralas

[pic] int(x*ln(x), x=0..exp(1));

[pic]

3. Apytikslis apibrėžtinio integralo apskaičiavimas

[pic] evalf(Int( x*ln(x), x = 0..exp(1) ,5));

[pic]

4. Netiesioginių integralų apskaičiavimas

4a. Integralas su begaliniais rėžiais

[pic] int(exp(-x^2), x=-infinity..infinity);

[pic]

4b. Integruojama funkcija turi begalinio trūkio tašką

[pic] int(1/(1-sqrt(x)),x=0..4,'CauchyPrincipalValue');

[pic]

5. Dvilypio integralo apskaičiavimas

[pic]

int (int(x*y, y=sin(x)..cos(x)), x=0..Pi/4);

[pic]

6. I rūšies kreivinio integralo apskaičiavimas

[pic]

Kadangi [pic], todėl

x:=t-sin(t); y:=1-cos(t);

int(y*sqrt(diff(x,t)^2+diff(y,t)^2),t=0..2*Pi);

[pic]

7. II rūšies kreivinio integralo apskaičiavimas

[pic] Kadangi [pic], tai

y:=ln(x);

int(x*diff(y,x)-y,x=1..2);

[pic]

eilučių sumavimas

Narių sumos apskaičiuojamos taikant operatorių sum:

|Matematinė |Baigtinė suma |Begalinė suma |

|išraiška |[pic] |[pic] |

|MAPLE |sum(a[i],i=k..n) |sum(a[i],i=k..infinity) |

Pavyzdžiai

1. Apskaičiuoti [pic]

s:=sum(i*(2*i-1),i=7..42);

[pic]

2. Apskaičiuoti [pic]

Skn:=sum(i*(2*i-1),i=k..n);

[pic]

t. y. gavome sumos išraišką, priklausnčią nuo k ir n reikšmių: apskaičiuokime, pavyzdžiui, ankstesniojo pavyzdžio sumą:

subs({k=7,n=42},Skn);

[pic]

3. Apskaičiuoti [pic]

s:=sum((3*i+1)/(i+2),i=k..n);

[pic]

t. y. suma išreikšta naudojant specialią funkcija [pic], tačiau ji nesunkiai apskaičiuojama norimu tikslumu: pvz. apskaičiuokime [pic] 15 ženklų tikslumu:

subs({k=5,n=147},s);

[pic]

evalf(%,15);

[pic]

4. Apskaičiuoti eilutės sumą [pic]

sum(1/i^2,i=1..infinity);

[pic]

5. Apskaičiuoti eilutės sumą [pic]

sum(i^(1/3)/2^i,i=1..infinity);

[pic]

t. y. MAPLE neranda tikslios sumos išraiškos, todėl apskaičiuojame ją apytiksliai

evalf(sum(i^(1/3)/(2^i),i = 1 .. infinity));

[pic]

6. Neapibrėžtas sumavimas [pic]

Simbolis sum(a(k),k) tai tokia argumento k funkcija [pic], kad

[pic]

Pvz. , apskaičiuoti sumas: [pic]

Apibrėžę neapibrėžto sumavimo funkciją [pic]

s:=unapply(sum(k^2/2.^k,k), k);

[pic]

apskaičiuosime sumas:

[pic] s(11)-s(1);

[pic]

[pic] s(24)-s(6);

[pic]

Kadangi konvergavimo sąlyga [pic] išpildyta:

limit(s(k),k=infinity);

[pic]

ir [pic], todėl

[pic] -s(1);

[pic]

[pic] -s(85);

[pic]

teiloro eilutės

1. Vieno argumento funkcijos f(x) Teiloro eilutė

| 1: [pic] |

| 2: [pic] |

Pavyzdžiai: [pic]

f:=sqrt(6+7*x+x^2);

[pic]

a) Teiloro eilutė x=0 aplinkoje. Narių skaičius lygus 6 (default):

taylor(sqrt(6+7*x+x^2),x);

[pic]

evalf(%,4);

[pic]

b) Teiloro eilutė x=3 aplinkoje. Narių skaičius lygus 5:

taylor(sqrt(6+7*x+x^2),x=3,5);

[pic]

c) Teiloro eilutė begalo nutolusio taško x[pic] aplinkoje. Narių skaičius lygus 4:

taylor(sqrt(6+7*x+x^2),x=infinity,4); evalf(%,4);

[pic] [pic]

d) Teiloro eilutė x= –1 aplinkoje neegzistuoja:

taylor(sqrt(6+7*x+x^2),x=-1,4);

Error, does not have a taylor expansion, try series()

Tačiau galima naudoti bendresnę eilutę series:

series(sqrt(6+7*x+x^2),x=-1,4);

[pic]

2. Keleto argumentų funkcijos f (x,y,…) Teiloro eilutė

| 1: [pic] |

| 2: [pic] |

Pavyzdžiai: [pic]

f:=1/(1+x-x*y);

[pic]

a) Teiloro eilutė x=0, y=0 aplinkoje. x ir y laipsnių suma [pic]5 (default)

mtaylor(1/(1+x-x*y), [x,y]);

[pic]

b) Teiloro eilutė x=0, y=0 aplinkoje. x ir y laipsnių suma [pic]4

T:=mtaylor(1/(1+x-x*y), [x,y],5);

[pic]

c) Teiloro eilutės narių rūšiavimo būdai

sort(T,x); [pic]

sort(T,y); [pic]

sort(T,[x,y]); [pic]

sort(T,[y,x]); [pic]

collect(T,x);

[pic]

collect(T,y);

[pic]

d) Teiloro eilutė įvairių taškų aplinkoje

mtaylor(1/(1+x-x*y), [x=1,y],4);

[pic]

mtaylor(1/(1+x-x*y), [x,y=1],9);

[pic]

mtaylor(1/(1+x-x*y), [x=1,y=1],4);

[pic]

ekstremumai

absoliutūs ekstremumai

Funkcijos [pic] reikšmės ekstremumų taškuose apskaičiuojamos naudojant operatorių

| |

|[pic] |

Būtina pabrėžti, kad šiuo atveju apskaičiuojamos funkcijos reikšmės stacionariuose taškuose, kurie nebūtinai yra ekstremumo taškai.

Pvz.: Rasti funkcijos [pic] ekstremumus.

f := (x+.1)/(x^3-x^2): Ekstr=extrema(f,{},x,'s');

[pic]

Stac_tsk:=s;

[pic]

t. y. funkcijos reikšmės stacionariuose taškuose lygios 2.09… ir – 4.77… .

Tačiau lieka neaišku:

1. Kuri Stac_tsk reikšmė atitinka funkcijos reikšmę Ekstr.

2. Ar Stac_tsk yra funkcijos ekstremumų taškai.

3. Kokių ekstremumų (max ar min) šie taškai.

Norėdami atsakyti į šiuos klausimus galima nubrėžti funkcijos grafiką

plot(f,x = -1 .. 2,-10 .. 10,color=black,thickness=2);

Iš čia nesunku nustatyti, kad abu stacionarūs taškai yra maksimumų taškai ir taške x=0.53… funkcija lygi –4.77…, o taške x=–0.18…funkcija lygi 2.09…

Arba tuo galima įsitikinti apskaičiavus stacionariuose taškuose antrosios eilės išvestines [pic] (jei [pic] tai max, jei [pic] tai min):

s[1]; ` f`:=subs(s[1],f);` f''`:=subs(s[1],diff(f,x,x));

[pic] [pic] [pic]

s[2]; ` f`:=subs(s[2],f);` f''`:=subs(s[2],diff(f,x,x));

[pic] [pic] [pic]

sąlyginiai ekstremumai

Funkcijos [pic] reikšmės sąlyginių ekstremumų taškuose, su sąlygomis [pic], kur funkcijos [pic], gali priklausyti nuo [pic], apskaičiuojami naudojant operatorių:

|[pic] |

Pvz. Rasti funkcijos [pic] sąlyginius ekstremumus, jei x ir y susieti lygtimi [pic].

f:=3*x+2*y:

Sal_ekstr=extrema(f,{x^2+y^2-4*x+2*y},{x,y},'stac');

[pic]

t. y. sąlyginių ekstremumų reikšmės pateikiami neišreikštinėje formoje. Norėdami apskaičiuoti jas, funkciją aprašome dešimtainiame pavidale:

f:=3.*x+2*y:

tada

Sal_ekstr=extrema(f,{x^2+y^2-4*x+2*y},{x,y},'stac');

[pic]

St_tsk=stac;

[pic]

Dabar nesunku apskaičiuoti funkcijos [pic] reikšmes stacionariuose taškuose:

for st in stac do print(st,` f`=subs(st,f));od:

[pic]

[pic]

Pakankamos sąlyginių ekstremumų sąlygos formuluojamos sudėtingiau ir čia jų nenagrinėsime.

didžiausios ir mažiausios funkcijos reikšmės

Yra žinoma, kad tolydi funkcija uždaroje srityje įgija didžiausią ir mažiausią reikšmes. Jų radimui naudojami operatoriai maximize ir minimize:

|[pic] |

Pvz. 1. Intervale [pic]rasti funkcijos [pic] didžiausią ir mažiausią reikšmes.

f:=x*cos(x): maximize(f,x=0..4);

[pic]

Didžiausia reikšmė pateikta neišreikštinėje formoje, tačiau ją galima apskaičiuoti:

Didz_f:=evalf(maximize(f,x=0..4));

[pic]

Panaudojus operatorių location galima rasti ir argumentą x, prie kurio įgyjama didžiausia reikšmė

maximize(f,x=0..4,location): evalf(%);

[pic]

Panašiai randama mažiausia funkcijos reikšmė:

f:=x*cos(x): Maz_f:=evalf(minimize(f,x=0..4));

[pic]

minimize(f,x=0..4,location): evalf(%);

[pic]

Pvz. 2. Srityje [pic] rasti funkcijos [pic] didžiausią ir mažiausią reikšmes

f:=y^3-x*y^2-2*x^2;

[pic]

Didz_f:=evalf(maximize(f,x=-1..1,y=-1..1));

[pic]

maximize(f,x=-1..1,y=-1..1,location):evalf(%);

[pic]

Maz_f:= evalf(minimize(f,x=-1..1,y=-1..1));

[pic]

minimize(f,x=-1..1,y=-1..1,location);

[pic]

lygčių ir nelygybių sprendimas

lygčių sprendimas

| Su MAPLE lygtys sprendžiamos taikant operatorius: |

|solve (tikslių sprendinių radimui), |

|fsolve (artutinių sprendinių radimui) |

| |

|solve({Lygčių sistema },{ Nežinomieji }); |

|fsolve({Lygčių sistema },{ Nežinomieji }, { Sritis } ); |

|MAPLE lygties forma |

| |

| |

|[pic] |

| |

|Pastaba. Kai lygties dešinioji pusė lygi 0 ( q(x)=0 ), tai jos, aprašant lygtį, galima |

|nerašyti |

Pavyzdžiai:

1. Išspręsti lygtį [pic].

Pažymėjus lygties sprendinius kuriuo nors simboliu, pvz. sp

sp:=solve(x^3-4*x^2+8, x);

[pic]

Gautus sprendinius galima įvardinti:

x1:=sp[1]; x2:=sp[2]; x3:=sp[3];

[pic] [pic] [pic]

apytiksliai apskaičiuoti:

spa:=evalf(sp,3);

[pic]

ir surūšiuoti:

sort([spa]);

[pic]

2. Rasti lygties [pic] artutinius sprendinius [pic], jei [pic].

Pažymėje lygtį

f:= exp(x)= 3-x^2:

rasime jos sprendinius

x1:=fsolve( f, x, x=-2..0); x2:=fsolve( f, x, x= 0..2);

[pic] [pic]

lygčių sistemų sprendimas

1. Išspręsti lygčių sistemą [pic]

Pažymėje lygtis f:=3*x+2*y=8: g:=5*x-3*y=7:

sprendžiame sistemą sp:=solve( {f, g}, {x, y});

[pic]

tačiau x ir y – laisvi kintamieji x, y;

[pic]

Norėdami jiems priskirti sprendinio reikšmes taikome operatorių assign(sp); x,y;

[pic]

Sprendinį galima patikrinti pat:=f,g;

[pic]

2. Išspręsti lygčių sistemą [pic]

f:=x^2+y^2=3*y; g:=2*x+3*y=5;

[pic] [pic]

sp:=solve( {f, g}, {x, y});

[pic]

t. y. sprendiniai pateikti neišreikštinoje formoje; operatorius allvalues išreiškia juos:

sp:=allvalues(sp);

[pic]

Gautų sprendinių reikšmes galima apskaičiuoti norimu tikslumu

spf:=evalf(sp,4);

[pic]

Šiuos sprendinius galima apskaičiuoti ir taikant operatorių fsolve :

sp1:=fsolve({f,g},{x,y},x=-2..0,y=2..3);

[pic]

sp2:=fsolve({f,g},{x,y},x=0..2,y=0..2);

[pic]

nelygybių sprendimas

1. Išspręsti nelygybes: [pic].

solve( x^2-5*x+6 > 0, x);

[pic]

t. y. [pic]

solve( x^2-5*x+6 >= 0, x);

[pic]

t. y. [pic]

2. Išspręsti nelygybę: [pic].

solve(exp(x)`);

[pic]

3. Didžiausi max, mažiausi min elementai

Šios operacijos atliekamos tik su sekomis.

max(S); min(V[]); max(V[]);

[pic] [pic] [pic]

4. Narių keitimas

Narių keitimo operacija atliekama tik su vektoriais. Pvz. , pakeiskime pirmąjį vektoriaus elementą 4 į 0 :

V; V[1]:=0: V;

[pic] [pic]

5. Elementų pertvarkymas map

Norėdami pertvarkyti su funkcija f visus aibės ar vektoriaus elementus naudojamas operatorius map.

Pvz. : pakelti visus vektoriaus V elementus kvadratu.

`V`=V; W:=map(x->x^2,V);

[pic]

[pic]

6. Suma add, sandauga mul

Naudojant šiuos operatorius galima sudėti arba sudauginti sekos, aibės ar vektoriaus narius:

add(S[i],i=1..nops([S])); mul(S[i],i=1..nops([S]));

[pic] [pic]

aibių operacijos

| |

|union – aibių suma intersect – aibių sandauga |

|minus – aibių skirtumas member(a,A) – ar a aibės A elementas |

Pavyzdžiai:

A1:={15,5,20,33}; A2:={2,-2,5,20 ,31};

[pic] [pic]

suma:= A1 union A2;

[pic]

sandauga:=A1 intersect A2;

[pic]

skirtumas:=A1 minus A2;

[pic]

elem_19:=member(19,A1); elem_20:=member(20,A1);

[pic] [pic]

vektorių operacijos

Iškvietus paketą linalg galima atlikti operacijas:

| |

|vector – vektoriaus apibrėžimas angle – kampas tarp vektorių |

|dotprod – skaliarinė sandauga crossprod – vektorinė sandauga |

|laplacian – Laplaso operatorius grad – gradientas |

|diverge – divergencija curl – rotorius |

Pavyzdžiai

with(linalg):

v:=vector(3,i->i^2); w:=vector(3,i->sqrt(i));

[pic] [pic]

1. Kampas tarp vektorių

Kampas[rad]:=angle(v,w)=evalf(angle(v,w));

[pic]

Kampas[laips]:=evalf(180/Pi*angle(v,w));

[pic]

2. Vektoriaus ilgis

ilgis_v:=sqrt(dotprod(v,v))=evalf(sqrt(dotprod(v,v)));

[pic]

3. Vektorinė sandauga [pic]

v:=evalm(v); w:=evalm(w);

[pic] [pic]

v_x_w:=crossprod(v,w)=evalf(crossprod(v,w),3);

[pic]

4. Laplaso operatorius laplacian

f:=ln(x^2+y^2); Laplas:=laplacian(f,[x,y])=simplify(laplacian(f,[x,y]));

[pic]

[pic]

5. Gradientas grad

f:=ln(x^2+y^2); grad_f:=grad(f,[x,y]);

[pic] [pic]

6. Divergencija diverge

F:=[x-y*z^2,2*x/y,y^3-x^3]; div_F:=diverge(F,[x,y,z]);

[pic] [pic]

7. Rotorius curl

F:=[x-y*z^2,2*x/y,y^3-x^3]; rot_F:=curl(F,[x,y,z]);

[pic] [pic]

programavimas

ciklo operatoriai

| |

|1: for i from a to b do argumento i funkcija od; |

Pvz. Apskaičiuoti skaičių nuo 2 iki 4 logaritmus (išlaikant 5 skaitmenis)

for i from 2 to 4 do ln(i)=evalf(ln(i),5) od;

[pic]

[pic]

[pic]

| |

|2: for i from a by h to b do argumento i funkcija od; |

Pvz. Surašyti visus skaičius iš intervalo [-2, 1] su žingsniu [pic] (t. y. mažėjimo tvarka).

for i from 1 by -0.7 to -2 do i;od;

[pic]

[pic]

[pic]

[pic]

[pic]

| |

|3: for i in [i1,i2,…,in] do argumento i funkcija od; |

Pvz. Apskaičiuoti funkcijos [pic] reikšmes taškuose [pic].

for i in [Pi/3,Pi/2,3*Pi/4] do print(` cos`(i)=cos(i)); od;

[pic]

[pic]

[pic]

| |

|4: while loginis reiškinys do ciklo operatorius od; |

Šiuo atveju ciklas bus vykdomas kol loginis reiškinys išliks teisingu.

Pvz.

Surašyti tuos pirmuosius sekos [pic] narius, kurie didesni 0,01.

i:=1: while i!/i^i>0.01 do print(a[i]=evalf(i!/i^i),5);

i:=i+1: od:

[pic] [pic] [pic] [pic] [pic] [pic]

Iš tikrųjų, septintasis sekos narys [pic].

sąlyginiai operatoriai

| |

|[pic] |

Pvz. Ekrane atvaizduoti duoto skaičiaus a ženklą.

a:=1.2; if a>0 then print( Teigiamas )

elif a=0 then print( Nulis )

else print( Neigiamas ) fi:

[pic]

[pic]

loginiai operatoriai

| |or |and |not |

|MAPLE | | | |

| |arba |ir |ne |

Pvz. Jei duotas skaičius a priklauso intervalui [pic], tai apskaičiuoti skaičių [pic].

a:=-0.89:

if a=-1 then t:=arcsin(a); print(t); fi:

[pic]

arba

if not ( a1) then t:=arcsin(a); print(t); fi:

[pic]

procedūros

Procedūra, tai atskira programos dalis, kuri susieta su pagrindine programa procedūros argumentais ir globaliniais kintamaisiais global. Lokaliniai kintamieji local veikia tik procedūros viduje ir nėra susieti su pagrindinės programos kintamaisiais.

Procedūros struktūra

|[pic] |

Pvz. Sukurti procedūrą, kuri

a) sudarytų tiesės, einančios per 2 taškus, lygtį,

b) apskaičiuotų kampą tarp Ox ašies ir tiesės,

c) nubrėžtų tiesės grafiką.

t:=proc(A,B) local x,y: global x1,x2,L1,p,phi:

if A[1]B[1] then L1:=(x-A[1])*(B[2]-A[2])=(y-A[2])*(B[1]-A[1]):

p:=(x1,x2)->plot(solve(L1,y),x=x1..x2):

phi[rad]:=arctan((B[2]-A[2])/(B[1]-A[1])):

return(y=solve(L1,y),` `,

phi[laipsniai]=evalf(phi[rad]*180/Pi,3)):

else: p:=(x1,x2)->plot([A[1],y,y=x1..x2]):

return(x=A[1],` `,phi[laipsniai]=90):fi:end;

[pic][pic]

Išmėginkime procedūros veikimą:

a) parašyti tiesės einančios per taškus [pic] lygtį ir apskaičiuoti kampą, kurį ji sudaro su Ox ašimi:

t([2,-1],[-3,6]);

[pic]

b) nubrėžti šios tiesės grafiką intervale [pic]:

p(-3,5);

c) parašyti tiesės einančios per taškus [pic] lygtį ir apskaičiuoti kampą, kurį ji sudaro su Ox ašimi:

t([2,-1],[2,6]);

[pic]

d) nubrėžti šios tiesės grafiką intervale [pic]:

p(-1,1);

tikimybių teorija ir statistika

veiksmai su įvykiais

Taikant logikos operatorius not, and, or galima aprašyti įvairius įvykius:

|Įvykių suma |A+B |A or B |

|Įvykių sandauga |[pic] |A and B |

|Priešingas įvykis |[pic] |not A |

Kadangi kiekvienas įvykis A gali įgyti 2 reikšmes:

a) A įvyko – loginė konstanta true

b) A neįvyko – loginė konstanta false

tai, norint įrodyti įvairių įvykių lygybę, pakanka kiekvienam iš jų priskirti 2 minėtas reikšmes: true, false ir taikant operatorių evalb apskaičiuoti gauto reiškinio teisingumą.

Pvz. 1. Įrodyti, kad [pic] – būtinas įvykis.

Priskyrę įvykiui A reikšmę true: Priskyrę įvykiui A reikšmę false:

A:=true: A:=false:

evalb(A or not A); evalb(A or not A);

[pic] [pic]

t. y. visais galimais atvejais įvykis [pic] įvyksta, taigi [pic] – būtinas įvykis.

Pvz. 2. Įrodyti, kad [pic].

for A in [true,false] do for B in [true,false] do

k:=evalb(not (A or B)); d:=evalb(not A and not B);

print(` A`=A,` B`=B,` `, k=d,` => `,evalb(k = d));

od; od;

[pic]

[pic]

[pic]

[pic]

Šiame pavyzdyje, dvigubu ciklu priskyrę įvykiams A ir B įvairias reikšmes, apskaičiuojame kairiąją ( k ) ir dešiniąją ( d ) puses ir nustatome lygybės teisingumą evalb(k = d).

Pvz. 3. Įrodyti, kad [pic] – negalimas įvykis, jei žinoma, kad [pic]

for A in [true,false] do for B in [true,false] do

if evalb( A and B = A or B)

then print(evalb( A and not B )); fi: od;od;

[pic]

[pic]

t. y. , kai teisinga lygybė [pic], įvykis [pic] neįvyksta ([pic]).

skirstiniai

1. Skirstiniai

|Skirstiniai |Tankio funkcijos |

| |exponential[[pic]] |[pic] |

|Rodiklinis |[pic] – teigiamas skaičius | |

| |normald[[pic]] |[pic] |

|Normalusis |[pic] – teigiamas skaičius | |

| |chisquare[[pic]] |[pic] |

|[pic] |[pic] – sveikas, teigiamas | |

| |skaičius | |

| |studentst[[pic]] |[pic] |

|Stjudento |[pic] – sveikas, teigiamas | |

| |skaičius | |

| |uniform[a,b] |[pic] |

|Tolygusis | | |

|Plačiau žr. ?stats,distributions |

2. Skirstinių funkcijos

|Funkcijos |Žymėjimas |MAPLE |

|Tankio funkcija |[pic] |pdf |

|Pasiskirstymo funkcija |[pic] |cdf |

|Atvirkštinė pasiskirstymo funkcija |[pic] |icdf |

|Plačiau žr. ?statevalf |

3. Skirstinių funkcijų taikymai

a) [pic] reikšmių apskaičiavimas

[pic]

b) [pic] grafikai

[pic]

c) Atsitiktinių skaičių generavimas

[pic]

4. Skirstinių funkcijų taikymo pavyzdžiai

Atliekant veiksmus būtina įkelti paketą stats:

with(stats):

a) Apskaičiuoti normaliai pasiskirsčiusio atsitiktinio dydžio, kurio vidurkis a=2, vidutinis kvadratinis nuokrypis [pic] pasiskirstymo funkcijos reikšmę taške x= 4.

F(4)=statevalf[cdf,normald[2,1.3]](4);

[pic]

b) Nubrėžti šio atsitiktinio dydžio tankio funkcijos grafiką intervale [pic].

plot(statevalf[pdf,normald[2,1.3]],-2..6);

[pic]

c) Gauti 8 atsitiktinio dydžio X reikšmes, jei X pasiskirstęs pagal tolygųjį dėsnį intervale [pic]. Apskaičiuoti 3 skaitmenų tikslumu.

stats[random, uniform[2,7]](8): evalf(%,3);

[pic]

d) Apskaičiuoti atsitiktinio dydžio X, pasiskirsčiusio pagal rodiklinį dėsnį, kurio vidurkis a=2, kvantilius [pic].

for n in [0.7,0.9,0.95,0.98,0.99] do

K[n]=statevalf[icdf,exponential[1/2]](n); od;

[pic]

[pic]

[pic]

[pic]

[pic]

Paaiškinimai:

1. Rodiklinio dėsnio exponential[[pic]] parametras [pic].

2. Atsitiktinio dydžio kvantilis [pic] apibrėžiamas lygybe: [pic]

5. Pasikliautinųjų intervalų apskaičiavimo pavyzdžiai

1. Normaliai pasiskirsčiusio atsitiktinio dydžio vidurkio a pasikliautinieji intervalai

a) žinomas [pic]:

[pic]

Pvz.

with(stats):

n:=57; x[vid]:=314; sigma:=23; p:=0.995;

t[p]:=statevalf[icdf,normald[0,1]]((1+p)/2);

R[a,p]:=evalf(x[vid]-t[p]*sigma/sqrt(n)..x[vid]+t[p]*sigma/sqrt(n),3);

[pic] [pic] [pic] [pic]

[pic] [pic]

b) nežinomas [pic]:

[pic]

Pvz.

with(stats):

n:=10; x[vid]:=2; s:=2.4; p:=0.975;

t[n,p]:=statevalf[icdf,studentst[n-1]]((1+p)/2);

R[a,p]:=

evalf(x[vid]- t[n,p]*s/sqrt(n)..x[vid]+ t[n,p]*s/sqrt(n),3);

[pic] [pic] [pic] [pic]

[pic] [pic]

2. Normaliai pasiskirsčiusio atsitiktinio dydžio vidutinio kvadratinio nuokrypio [pic] pasikliautinieji intervalai

[pic]

Pvz.

with(stats):

n:=8; s:=1.15; p:=0.98;

c1:=sqrt((n-1)/statevalf[icdf,chisquare[n-1]]((1+p)/2));

c2:=sqrt((n-1)/statevalf[icdf,chisquare[n-1]]((1-p)/2));

R[sigma,p]:= evalf(s* c1 .. s* c2,4);

[pic] [pic] [pic]

[pic] [pic] [pic]

3. Koreliacijos koeficiento r pasikliautinieji intervalai

[pic]

Pvz. :

with(stats):

n:=30; rho:=0.4; p:=0.95;

t[p]:=statevalf[icdf,normald[0,1]]((1+p)/2);

z1:=arctanh(rho)-t[p]/sqrt(n-3):

z2:=arctanh(rho)+t[p]/sqrt(n-3):

R[r,p]:=evalf(tanh(z1)..tanh(z2),3);

[pic] [pic] [pic]

[pic] [pic]

4. Momentų apskaičiavimo pavydžiai

Kai skirstinio tankio funkcija f(x) žinoma, tai momentai apskaičiuojami remiantis lygybėmis:

[pic] [pic]

Pvz. Apskaičiuoti normaliojo skirstinio momentus

Normaliojo skirstinio tankio funkcija [pic]

f:=x->exp( -(x-a)^2/2/sigma^2 ) / sqrt(2*Pi*sigma^2);

[pic]

assume(sigma>0): # nurodoma, kad skaičius sigma teigiamas

alpha:=n->int(x^n*f(x),x=-infinity..infinity);

seq( alpha[n]=alpha(n),n=0..4);

[pic]

[pic] [pic] [pic] [pic] [pic]

mu:=n->int((x-a)^n*f(x),x=-infinity..infinity);

seq(mu[n]=mu(n),n=1..6);

[pic]

[pic] [pic] [pic] [pic] [pic] [pic]

statistinės sekos

Statistinių sekų elementais gali būti skaičiai ir intervalai, nurodant ar nenurodant jų pasikartojimų skaičių. Statistinės sekos yra list tipo objektai, todėl jų elementai rašomi viduje laužtinių skliaustų.

Pvz. 1

s := [2,0,3,7,4,7,6,6,1,9];

[pic]

Kadangi sekoje s skaičius 6 pasikartoja 2 kartus, o 7 – 3 kartus, tai seką galima perrašyti taikant operatorių Weight :

s:=[0,1,2,3,4, Weight(6,2), Weight(7,3), 9];

[pic]

Pvz. 2

S := [0..3,7,4,6,6,6,8..9,8..9];

[pic]

t. y. šioje sekoje yra 1 skaičius iš intervalo [0, 3] ir 2 skaičiai iš intervalo [8, 9], todėl

S:=[4, Weight(6,3), 7, 0..3, Weight(8..9,2)];

[pic]

Pvz. 3

Norėdami sudaryti statistinę seką pakanka bet kurios skaičių sekos elementus apjungti laužtiniais skliaustais:

seka:=seq(n^2,n=-2..3);

[pic]

Stat_seka:=[seka];

[pic]

arba panaudoti kurį nors skirstinį:

Tolygusis01:=[ stats[random,uniform[0,1]](5) ];

[pic]

čia gautos 5 atsitiktinio dydžio reikšmės, kuris tolygiai pasiskirstęs intervale

[0, 1].

statistinių sekų skaitinių charakteristikų apskaičiavimas

Apibrėžus statistinę seką ir taikant operatorių describe, galima apskaičiuoti sekos skaitines charakteristikas ( plačiau žr. ?stats[describe] ).

Pavydžiai :

with(stats):

X:=[Weight(2..4,2),Weight(8.2..11,3),5.3,7];

n:= describe[count](X); #Elementų skaičius

Suma:= describe[sumdata](X); #Elementų suma

Intervalas:= describe[range](X);

Vidurkis:= describe[mean](X);

Dispersija:= describe[variance](X);

sigma:= describe[standarddeviation](X);

`Momentas_Prad[2]`:= describe[moment[2]](X)=alpha[2];

`Momentas_Centr[3]`:= describe[moment[2,mean]](X)=mu[3];

`Momentas[5]_3`:= describe[moment[5,3]](X)=

'Momentas[5]_atžvilgiu_3';

Moda:= describe[mode](X);

Mediana:= describe[median](X);

`Kvantilis 0.25`:= describe[quantile[1/4]](X);

`Kvantilis 0.50`:= describe[quantile[1/2]](X);

`Kvantilis 0.75`:= describe[quantile[3/4]](X);

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

statistinių sekų transformavimas

Apibrėžus statistinę seką ir taikant operatorių transform, galima ją pertvarkyti (plačiau žr. ?stats[transform]).

Pavyzdžiai

with(stats):

X:=[6,Weight(8,3),5,1,5,Weight(2..4,2),10..14];

[pic]

transform[classmark](X); #Intervalus pakeičia jų centrais

(pvz. : intervalą 10..14 pakeičia į skaičių 12)

[pic]

transform[statsort](X); #Rūšiuoja elementus didėjimo tvarka

[pic]

transform[frequency](X); #Dažnumų (pasikartojimų) seka

[pic]

transform[cumulativefrequency](X); #Dažnumų sumų seka

[pic]

transform[tally]([4,2,5,2,5,2]); #Perrašo seką su operatoriumi Weight

[pic]

transform[tallyinto](X,[1..5,5..9,9..15]); #Suskirsto seką į

nurodytus intervalus: [1,5), [5,9), [9,15)

[pic]

transform[moving[3]](X); #Slenkančių vidurkių seka, imant po 3sekos narius

[pic]

Paaiškinimas: kadangi

[pic]

tai slenkantys vidurkiai ( imant po 3 sekos narius – moving[3] ) lygūs

[pic],

nes:[pic]

statistinių sekų histogramos

Pavyzdys. Tegul x – statistinė seka

x := [4.7, 3.5, 7.8, 4.3, 4.3, 5.6, 2.9, 3.1, 3.0, 2.4, 4., 2.8, 3.1, 6.2, 2.8, 2.1, 5.9, 3.4, 5.3, 4.4, 3.3, 5.9, 5.8, 4.3, 3.9, 3.7, 3.3, 4.9, 4., 2.9, 4.8, 5.0, 4.1, 5.6, 4.9, 4.1, 4.1, 4.1, 3.9, 3.6, 2.7, 4.4, 4., 2.6, 4.2, 4.1, 3.2, 3.3, .7, 2.6, 3.7, 2.8, 4.5, 2.5, 4.3, 1.6, 3.2, 4.2, 1.6, 2.0, 4., 5.9, 1.8, 2.1, 4., 5.9, 4.2, 5.2, 5.9, 2.6, 5.4, 2.5, 1.1, 2.7, 4.5, 1.9, 3.7, 2.7, 2.2, 3.2, 3.0, 3.6, 4.8, 4.1]:

Panaudojus paketus stats ir statplots atvaizduosime sekos x histogramą

with(stats):with(statplots):

histogram(x);

Taikant operatorių histogram(x) MAPLE

a) atvaizduoja statistinės sekos histogramą, kurios bendrasis plotas lygus 1,

b) visų histogramos stačiakampių plotai vienodi, t. y. į kiekvieną intervalą patekusių sekos x elementų skaičius beveik vienodas ( skiriasi daugiausiai 1 ),

c) histogramos stačiakampių kiekis parenkamas automatiškai (default)

Histogramos parametrai

Pažymėję

H:=histogram(x):

ir taikydami operatorių op apskaičiuosime histogramos skaitinius parametrus:

1. Histograma kaip stulpelių sistema:

op(1,H);

[pic][pic]

2. Histogramos intervalų skaičius

nh:=nops(op(1,H));

[pic]

3. Askirojo histogramos stulpelio parametrai, pvz. trečiojo:

op(3,op(1,H));

[pic]

4. Kairiųjų ir dešiniųjų intervalų kraštinių taškų x koordinatės:

xk:=seq(evalf(op(j,op(1,H))[1][1],3),j=1..nh);

xd:=seq(evalf(op(j,op(1,H))[4][1],3),j=1..nh);

[pic]

[pic]

5. Intervalai:

Intervalai:=seq(xk[i]..xd[i],i=1..nh);

[pic]

[pic]

6. Histogramos stulpelių aukščiai

hh:=seq(evalf(op(j,op(1,H))[2][2],3),j=1..nh);

[pic]

Kitas histogramos sudarymo būdas

|[pic] |

Šiuo atveju atvaizduojama statistinės sekos x histograma

a) kurios stulpelių skaičius lygus parametro numbars, reikšmei,

b) histogramos stulpelių pagrindai vienodo ilgio,

c) histogramos stulpelių aukščiai proporcingi atitinkamiems statistiniams dažnumams,

d) histogramos stulpelių aukščių sums lygi parametro area, reikšmei.

Taigi, parinkus

area=st/L, gauname histogramą, kurios plotas lygus 1,

čia L histogramos pagrindo ilgis,

area=n, gauname dažnumų histogramą, čia n sekos narių skaičius,

area=1, gauname santykinių dažnumų histogramą.

Pvz. , apskaičiavę anksčiau apibrėžtos sekas x narių skaičių n, užimamo intervalo ilgį L ir nurodę stulpelių skaičių st:

n:=describe[count](x);

L:=max(x[])-min(x[]);

st:=7;

[pic] [pic] [pic]

nubrėžkime įvairias histogramas:

PLOTAS=1 (area = st/L)

histogram(x, numbars=st, area=st/L);

DAŽNUMAI (area = n)

histogram(x, numbars=st, area=n);

SANTYKINIAI DAŽNUMAI (area = 1)

histogram(x, numbars=st, area=1);

chi kvadrato kriterijus

Pateiksime [pic] kriterijaus taikymo pavyzdį.

Patikrinsime hipotezę, kad atsitiktinis dydis X pasiskirstęs pagal normalųjį dėsnį, jei žinoma jo realzacija

x := [4.7, 3.5, 7.8, 4.3, 4.3, 5.6, 2.9, 3.1, 3.0, 2.4, 4., 2.8, 3.1, 6.2, 2.8, 2.1, 5.9, 3.4, 5.3, 4.4, 3.3, 5.9, 5.8, 4.3, 3.9, 3.7, 3.3, 4.9, 4., 2.9, 4.8, 5.0, 4.1, 5.6, 4.9, 4.1, 4.1, 4.1, 3.9, 3.6, 2.7, 4.4, 4., 2.6, 4.2, 4.1, 3.2, 3.3, .7, 2.6, 3.7, 2.8, 4.5, 2.5, 4.3, 1.6, 3.2, 4.2, 1.6, 2.0, 4., 5.9, 1.8, 2.1, 4., 5.9, 4.2, 5.2, 5.9, 2.6, 5.4, 2.5, 1.1, 2.7, 4.5, 1.9, 3.7, 2.7, 2.2, 3.2, 3.0, 3.6, 4.8, 4.1]:

Iškvietus paketus

with(stats):with(plots):with(statplots):

1. Apskaičiujame sekos x vidurkį vid ir vidutinį kvadratinį nuokrypį sigma

vid:= evalf(describe[mean](x),5);

sigma:= evalf(describe[standarddeviation](x),5);

[pic]

[pic]

2. Viename brėžinyje atvaizduosime sekos x histogramą ir tankio funkcijos grafiką:

H:=histogram(x):

display(H, plot(statevalf[pdf,normald[vid,sigma]],0..9));

3. Apskaičiuosime sekos x narių skaičių n, histogramos stulpelių skaičių st, intervalų kraštinių mazgų koordinates xkr

n:=nops(x); st:=nops(op(1,H));

xkr:= -infinity, seq(op(j,op(1,H))[1][1],j=2..st), infinity;

[pic]

[pic]

[pic]

4. Pažymėję pasiskirstymo funkciją

F:=statevalf[cdf, normald[vid,sigma]]:

[pic]

apskaičiuojame teorines tikimybes [pic]

p[teor]:=seq(F(xkr[i+1])-F(xkr[i]),i=1..st):

[pic]

ir statistines tikimybes [pic] (jos vienodos, nes lygios histogramos stulpelių plotams).

5. Apskaičiuojame [pic]

chi[stat]:=n*(sum((p[teor][i]-1/st)^2/p[teor][i], i=1..st));

[pic]

6. Apibrėžę patikimumo lygmenį[pic], tarkime [pic], randame kritinę [pic] reikšmę ir sprendžiame ar teisinga hipotezė:

alpha[0]:=0.05:

chi[krit]:=statevalf [icdf, chisquare[st-3]](1-alpha[0]);

if evalb(chi[krit]-chi[stat]>0) then print(`Hipoteze TEISINGA`)

[pic]

[pic]

7. Papildomai apskaičiuojame didžiausią priimtiną patikimumo lygmenį

alpha[max]:=1-statevalf[cdf, chisquare[st-3]](chi[stat]);

[pic]

koreliacija

Pavyzdys

Dviejų statistinių sekų koreliacinė analizė

with(stats):with(statplots):with(plots):

1. Statistinės sekos

X :=[.8, 3.0, 2.1, 8., 6.1, 3.5, .5, 2.5, -1.7, 5.2, 10., .8, 8., 1.7, 5.6, -2.9, 3.0, 2.8, 9., .9, 8., 4.5, -2.6, 6.8, 3.6, 3.9, 0., 7., .4, -2.2, 9., 2.8, 0., -.8, 1.6, 9., -1.3, 1.4, 1.4, 7., -2.7, -.7, 3.5, -1.7, 9., 8., 6.5, 5.6, 5.6]:

Y :=[4.18, 6.50, 2.76, 18.2, 14.5, 4.66, 1.28, 6.42, 9.6, 8.86, 15.68, 5.94, 14.84, 3.84, 12.40, 2.88, 8.50, 7.58, 13.84, 2.90, 13.88, 7.06, 6.36, 11.16, 6.86, 9.86, 7.60, 7.72, 2.08, 9.02, 19.60, 9.34, 2.16, 5.62, 2.48, 18.64, 4.12, 3.42, 4.14, 11.56, 9.4, 8.26, 2.18, 1.92, 17.68, 16.36, 13.20, 10.24, 10.64]:

2. Koreliacijos koeficiento apskaičiavimas

rho:=describe[linearcorrelation](X,Y);

[pic]

3. Taškų (x,y) grafinis vaizdavimas

sc:=scatterplot(X,Y,color=black):

4. Tiesinė regresija [pic]

Yx:=fit[leastsquare[[x,y]]]([X,Y]);

[pic]

5. Parabolinė regresija [pic]

Y2x:=fit[leastsquare[[x,y],y=a*x^2+b*x+c,{a,b,c}]]([X, Y]);

[pic]

6. Regresijos kreivių ir taškų (x,y) grafikai

ix:=describe[range](X): iy:=describe[range](Y):

display(sc,plot(rhs(Yx),x),plot(rhs(Y2x),x), view=[ix,iy]);

literatūra

1. Аладьев В. З. , Богдявичюс М. А. Maple 6. Москва: Лаборатория Базовых Знаний, 2001, 840 с.

2. Дьяконов В. П. Математическая система Maple, Москва: СОЛОН, 1998, 400 с.

3. Говорухин В. Н. , Цибулин В. Г. Введение в Maple, Москва: Мир, 1997, 208 с.

-----------------------

grid=[25,25] ( default )

grid=[100,100]

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download