# Egyetemi matek

/*
Itt vannak a jelek, amiket tudsz másolni, ha nem találod a gépeden, hogy hol lehet beírni:
Műveleti jelek: 
Összeadás: +
Kivonás: - 
Szorzás: *
Osztás: /
Hatványozás: ^
Relációjelek: < >
Zárójel: ()
Vessző: ,
Pont: .
Pontos vessző: ; 
Kettőspont: :
Dollárjel: $
Gyökvonás: sqrt()
n-edik gyök: x^(1/n)
log() függvény ln() függvényt jelent, log_2-t csak azonosság segítségével lehet felírni
Szürke betűszínnel szerepelnek a megjegyzések, csak azt kell kitölteni, ahova oda van írva, több sorhoz nem kell hozzányúlni
Ha beírtad 3-féleképpen tudod futtatni:
1) felül vannak zöld nyilak, a jobbra mutató nyílra kattints rá, és lefuttatja, fontos, hogy bele legyél kattintva a tömbbe
2) Shift+Enter-rel is le tudod futtatni, itt is fontos, hogy bele legyél kattintva a tömbbe
3) Ha van a billentyűzeteted jobb szélén enter, akkor annak a megnyomásával is tudod futtatni, 
itt is bele kell, hogy legyél kattintva a tömbbe
Sorok végén vagy pontosvessző vagy dollárjel van, pontosvesszőnél kiírja annak a sornak az eredményét, dollárjelnél elrejti
Állandók beírása: 
pi: %pi
e: %e
i: %i  (komplex szám képzetes egység)
*/

## Egyetemi alapok

### Összetett függvény

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=2*x^3+314$ /*Ezt töltsd ki*/
g(x):=2*x$ /*Ezt töltsd ki*/
x0:7$ /*Ezt töltsd ki (opcionális)*/
f(g(x)); 
g(f(x)); 
float(f(g(x0))); 
float(g(f(x0))); 

### Inverz függvény

kill(all)$
ratprint: false$
fpprintprec: 5$
függvény:y=x^2+5*x;  /*Ezt töltsd ki*/
inverzfüggvény:solve(függvény,x);  

### Vektorok által bezárt szög

kill(all)$
ratprint: false$
fpprintprec: 6$
a1:1$ /*Ezt töltsd ki*/
a2:4$ /*Ezt töltsd ki*/
a3:-3$ /*Ezt töltsd ki*/
b1:6$ /*Ezt töltsd ki*/
b2:-4$ /*Ezt töltsd ki*/
b3:0$ /*Ezt töltsd ki*/
"a vektor:";
a:matrix([a1],[a2],[a3]);
"b vektor:";
b:matrix([b1],[b2],[b3]);
"|a|:";
anagyság:sqrt(a1^2+a2^2+a3^2);
"|b|:";
bnagyság:sqrt(b1^2+b2^2+b3^2);
"a*b:";
skalárisszorzat:a1*b1+a2*b2+a3*b3;
"Képlet:";
Képlet:"a*b"="|a|*|b|*cosα"; /*a*b a skaláris szorzat*/
"Behelyettesítve:";
egyenlet:skalárisszorzat=anagyság*bnagyság*cos(α);
megoldás:acos(skalárisszorzat/(anagyság*bnagyság))$
"Megoldás radiánban:";
Radiánban:float(megoldás);
"Megoldás fokban:";
Fokban:float(Radiánban*(180/%pi));

### Térbeli háromszögek

kill(all)$
ratprint: false$
fpprintprec: 8$
A1:1$ /*Ezt töltsd ki*/
A2:-2$ /*Ezt töltsd ki*/
A3:-6$ /*Ezt töltsd ki*/
B1:-1$ /*Ezt töltsd ki*/
B2:2$ /*Ezt töltsd ki*/
B3:3$ /*Ezt töltsd ki*/
C1:0$ /*Ezt töltsd ki*/
C2:-1$ /*Ezt töltsd ki*/
C3:2$ /*Ezt töltsd ki*/
"Csúcspontok:";
A:matrix([A1],[A2],[A3]);
B:matrix([B1],[B2],[B3]);
C:matrix([C1],[C2],[C3]);
"Vektorok:";
ABvektor:matrix([B1-A1],[B2-A2],[B3-A3]);
ACvektor:matrix([C1-A1],[C2-A2],[C3-A3]);
BCvektor:matrix([C1-B1],[C2-B2],[C3-B3]);
"Nagyságok:";
ABnagyság:sqrt((B1-A1)^2+(B2-A2)^2+(B3-A3)^2);
ACnagyság:sqrt((C1-A1)^2+(C2-A2)^2+(C3-A3)^2);
BCnagyság:sqrt((C1-B1)^2+(C2-B2)^2+(C3-B3)^2);
"Szögek:"; /* α az A csúcsnál lévő szög, β a B csúcsnál lévő szög, γ a C csúcsnál lévő szög*/
"Radiánban:";
αradián:float(acos((BCnagyság^2-ABnagyság^2-ACnagyság^2)/(-2*ABnagyság*ACnagyság)));
βradián:float(acos((ACnagyság^2-ABnagyság^2-BCnagyság^2)/(-2*ABnagyság*BCnagyság)));
γradián:float(acos((ABnagyság^2-ACnagyság^2-BCnagyság^2)/(-2*ACnagyság*BCnagyság)));
"Fokban:";
αfok:float(αradián*(180/%pi));
βfok:float(βradián*(180/%pi));
γfok:float(γradián*(180/%pi));
"Ellenőrzés:";
αfok+βfok+γfok;
if (αfok+βfok+γfok<180.00000001) and (αfok+βfok+γfok>179.99999999) then "Jó az eredmény" else "Rossz az eredmény";
"Kerület:";
Kerület:float(ABnagyság+ACnagyság+BCnagyság);
"Terület:";
Terület:float((ABnagyság*ACnagyság*sin(αradián))/2);
"Súlypont:";
Súlypont:matrix([(A1+B1+C1)/3],[(A2+B2+C2)/3],[(A3+B3+C3)/3]);

### Keresztszorzás

kill(all)$
ratprint: false$
fpprintprec: 5$
a1:1$ /*Ezt töltsd ki*/
a2:2$ /*Ezt töltsd ki*/
a3:3$ /*Ezt töltsd ki*/
b1:4$ /*Ezt töltsd ki*/
b2:5$ /*Ezt töltsd ki*/
b3:6$ /*Ezt töltsd ki*/
"Vektorok:";
a:matrix([a1],[a2],[a3]);
b:matrix([b1],[b2],[b3]);
"Keresztszorzat:";
axb:matrix([a2*b3-a3*b2],[a3*b1-a1*b3],[a1*b2-a2*b1]);

### Polinomosztás

kill(all)$
ratprint: false$
fpprintprec: 5$
polinom1:2*x^3-3*x^2+-89*x-120;  /*Ezt töltsd ki*/
polinom2:x-8;  /*Ezt töltsd ki*/
polinomosztás:divide(polinom1, polinom2); /* A vessző előtti rész lesz a végeredmény a vessző utáni kifejezés a maradék.*/

### Szorzattá alakítás

kill(all)$
ratprint: false$
fpprintprec: 5$
kifejezés:2*x^3-3*x^2-89*x-120$ /*Ezt töltsd ki*/
szorzatalak:factor(kifejezés);  

### Felbontás

kill(all)$
ratprint: false$
fpprintprec: 5$
kifejezés:(x+5)*(x-8)*(2*x+3)$ /*Ezt töltsd ki*/
felbontott:expand(kifejezés);  

### Egy ismeretlenes egyenlet

kill(all)$
ratprint: false$
fpprintprec: 5$
egyenlet: 5*x^2+3*x-2=0$ /*Ezt töltsd ki*/ 
megoldás:solve(egyenlet,x);
megoldásszámérték:float(megoldás);

### Több ismeretlenes lineáris egyenletrendszer

kill(all)$
ratprint: false$
fpprintprec: 5$
e1: 2*x+3*y=4+z$ /*Ezt töltsd ki*/ 
e2: 5*x-2*z+4=6*y$ /*Ezt töltsd ki*/ 
e3: -2*x+3*z-5*y=5$ /*Ezt töltsd ki*/ 
/* 
Mindegy, hogy az ismeretlenek egy oldalon vannak, vagy nem.
Ha több egyenleted van akkor a mintának megfelelően egészítsd ki az egyenletrendszert e4,e5,e6 .... 
Használhatsz más változókat is pl a,b,c...
linsolve([e1, e2, e3], [x,y,z]); ha több egyenleted van akkor itt vesszővel elválasztva írhatod be az első []-be e4,e5, e6...-ot,
 a második []-be pedig az ismereretleneket amiket szeretnél meghatározni.
*/
megoldás:linsolve([e1, e2, e3], [x,y,z]);
megoldásérték: float(megoldás);

### Több ismeretlenes algebrai egyenletrendszer

kill(all)$
ratprint: false$
fpprintprec: 5$
realonly:true$
e1: 2*x-2*y=0$ /*Ezt töltsd ki*/ 
e2: x^2-6*y+8=0$ /*Ezt töltsd ki*/ 
algsys([e1, e2], [x,y]);

## Sorozatok

### Sorozatok határértéke

kill(all)$
ratprint: false$
fpprintprec: 8$
a(n):=(12*n+3)/(4*n+11)$ /*Ezt töltsd ki*/ 
limit(a(n), n, inf);

### Sorok összege

kill(all)$
ratprint: false$
fpprintprec: 5$
a(n):=2/(3^(n+1))$ /*Ezt töltsd ki*/ 
összeg:sum(a(n), n, 1, inf), simpsum;

### Sorozat korlátosság, monotonitás

kill(all)$
ratprint: false$
fpprintprec: 8$
a(n):= (12*n+3)/(4*n+11)$ /*Ezt töltsd ki*/ 
"1. tag:";
a(1);
"2. tag:";
a(2);
"Határérték:";
határérték:limit(a(n),n,inf);
"Monotonitás:";
"an:";
an:a(n);
"an+1:";
an1:ratsimp(expand(a(n+1)));
"Megoldás végső alak:";
megoldás:ratsimp(an1-an);
számláló:num(megoldás)$
nevező:denom(megoldás)$
if számláló<0 then "an>an+1" else "an<an+1";
if számláló>0 then "szigorúan monoton növekvő" else "szigorúan monoton csökkenő";
"Korlátosság:";
"Alsó korlát:";
Alsókorlát: if a(1)>határérték then határérték else a(1);
"Felső korlát:";
Felsőkorlát:if a(1)<határérték then határérték else a(1);

### e-hez tartó sorozat határértéke

kill(all)$
ratprint: false$
fpprintprec: 8$
a(n):= ((2*n+2)/(2*n-5))^(n-3)$ /*Ezt töltsd ki*/ 
határérték:limit(a(n),n,inf);
határértékértéke:float(határérték);

### Küszöbindex

kill(all)$
ratprint: false$
fpprintprec: 8$
a(n):= (n+2)/(2*n-9)$  /* Ezt töltsd ki, figyelj arra, hogy pl. 5n-t 5*n-ként írd be fontos a szorzás jel különben hibát fog kiírni*/
ε:0.02$ /* Ezt töltsd ki */
"A végeredmény: n0"=Megoldás:floor(find_root(abs(a(n)-limit(a(n), n, inf))=ε, n, 0, 1000000000)); /* Ezzel ne csinálj semmit, ez már kerekítve van ez lesz a jó eredmény*/

Ha szükséged van részeredményekre külön külön akkor egyesével futtasd:

kill(all)$
ratprint: false$
fpprintprec: 8$
a(n):=  (10*n-7)/(14*n-4)$  /* Ezt töltsd ki, figyelj arra, hogy pl. 5n-t 5*n-ként írd be fontos a szorzás jel különben hibát fog kiírni*/
ε:10^-5$ /* Ezt töltsd ki */

Határérték:

A:limit(a(n), n, inf); 

A képlet:

abs("an-A")<"ε";

egyenlet: abs(a(n)-A)<ε; /* Ezzel ne csinálj semmit*/

Összevonás után:

ratsimp(egyenlet);  /* Ezzel ne csinálj semmit */

Megoldás:

Megoldás:find_root(egyenlet, n, 0, 1000000000);  /* Ezzel ne csinálj semmit */

Kerekítés:

Végeredmény: "A végeredmény: n0"=floor(Megoldás); /* Ezzel ne csinálj semmit */

## Határérték, folytonosság

### Függvények határértéke

kill(all)$
ratprint: false$
fpprintprec: 8$
f(x):=(12*x+3)/(4*x+11)$ /*Ezt töltsd ki*/ 
limit(f(x), x, inf);

### Határérték 2 részes

kill(all)$
ratprint: false$
fpprintprec: 5$
e1:(-4*x^2-8*x+12)/(x^2+14*x+33)$ /*Ezt töltsd ki*/ 
e2:7+A*x$ /*Ezt töltsd ki*/ 
a:-3$ /*Ezt töltsd ki*/ 
"Határérték:";
határérték:limit(e1, x, a);
"A értéke:";
A:solve([határérték=subst(x=a,e2)],[A]);

### Határérték 3 részes

kill(all)$
ratprint: false$
fpprintprec: 5$
e1:(3*x^2-8*x-3)/(2*x^2-2*x-12)$ /*Ezt töltsd ki*/ 
e2:A$ /*Ezt töltsd ki*/ 
e3:B$ /*Ezt töltsd ki*/ 
a:-2$ /*Ezt töltsd ki*/ 
b:3$ /*Ezt töltsd ki*/ 
"Határérték a pontban:";
határértéka:limit(e1, x, a);
"Határérték b pontban:";
határértékb:limit(e1, x, b);
"A értéke:";
A:solve([határértéka=subst(x=a,e2)],[A]);
"B értéke:";
B:solve([határértékb=subst(x=b,e3)],[B]);

## Komplex számok

### i hatványai

kill(all)$
ratprint: false$
fpprintprec: 5$
"i hatványai:";
n:1521$ /*Ezt töltsd ki*/ 
(%i)^n;

### Műveletek algebrai alakban

kill(all)$
ratprint: false$
fpprintprec: 5$
z1:-2+%i; /*Ezt töltsd ki*/ 
z2:3-2*%i; /*Ezt töltsd ki*/ 
"Konjugáltak:";
"z1 konjugált:";
z1konjugált:conjugate(z1);
"z2 konjugált:";
z2konjugált:conjugate(z2);
"Összeadás:";
összeg:z1+z2;
"Kivonás:";
"z1-z2:";
különbség1:z1-z2;
"z2-z1:";
különbség2:z2-z1;
"Szorzás:";
szorzat:expand(z1*z2);
"Osztás:";
"z1/z2:";
hányados1:expand(z1*z2konjugált)/z1nev:expand(z2*z2konjugált);
hányados1kibontott:expand(float(hányados1));
"z2/z1:";
hányados2:expand(z2*z1konjugált)/z1nev:expand(z1*z1konjugált);
hányados2kibontott:expand(float(hányados2));

### Trigonometrikus alak

kill(all)$
ratprint: false$
fpprintprec: 5$
"Áttérés algebaraa alakból trigonometrikus alakba:";
z1:-3+3*%i; /*Ezt töltsd ki*/ 
z2:-4-4*%i; /*Ezt töltsd ki*/ 
r1:cabs(z1);
r2:cabs(z2);
φ1:if carg(z1)>0 then φ1=carg(z1) else φ1=carg(z1)+2*%pi;
φ2:if carg(z2)>0 then φ2=carg(z2) else φ2=carg(z2)+2*%pi;
z1trig:r1*(cos(φ1)+%i*sin(φ1));
z2trig:r2*(cos(φ2)+%i*sin(φ2));

### Komplex egyenlet megoldása

kill(all)$
ratprint: false$
fpprintprec: 5$
e:(1+%i)*z^2+(8+4*%i)*z+22-6*%i=0$ /*Ezt töltsd ki*/ 
megoldás:(solve([e],[z]))$
z1:rhs(megoldás[1])$
z2:rhs(megoldás[2])$
z1számláló:num(z1)$
z1nev:denom(z1)$
z1nevkonjugált:conjugate(z1nev)$
z2számláló:num(z2)$
z2nev:denom(z2)$
z2nevkonjugált:conjugate(z2nev)$
megoldás1:expand(z1számláló*z1nevkonjugált)/expand(z1nev*z1nevkonjugált)$
megoldás1kibontott:expand(float(megoldás1));
megoldás2:expand(z2számláló*z2nevkonjugált)/expand(z2nev*z2nevkonjugált)$
megoldás2kibontott:expand(float(megoldás2));

## Deriválás

### Deriválás

kill(all)$
ratprint: false$
fpprintprec: 5$
"Függvény:";
f(x):=2*x^2+5*x; /*Ezt töltsd ki*/
"Derivált függvény:";
derivált:diff(f(x),x,1);

### Deriválás adott pontban

kill(all)$
ratprint: false$
fpprintprec: 5$
"Függvény:";
f(x):=x^3; /*Ezt töltsd ki*/
x0:5$  /*Ezt töltsd ki*/
"Derivált függvény:";
derivált(x):=''(diff(f(x),x,1))$
derivált:derivált(x);
"Derivált értéke a megadott pontban:";
Deriváltérték:derivált(x0);

### Többszörös deriválás:

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=2*x^12+5*x$ /*Ezt töltsd ki*/
x0:3$ /*Ezt töltsd ki (opcionális)*/
"Deriváltak:";
derivált1:diff(f(x),x,1);
derivált2:diff(f(x),x,2);
derivált3:diff(f(x),x,3);
derivált4:diff(f(x),x,4);
derivált5:diff(f(x),x,5);
derivált6:diff(f(x),x,6);
"Deriváltak értéke:";
subst(x=x0,derivált1);
subst(x=x0,derivált2);
subst(x=x0,derivált3);
subst(x=x0,derivált4);
subst(x=x0,derivált5);
subst(x=x0,derivált6);

## Függvényvizsgálat

kill(all)$
ratprint: false$
fpprintprec: 5$
"Függvény:";
f(x):=2*x^3-5*x; /*Ezt töltsd ki*/
"Zérushely:";
Zérushely:float(realroots(f(x)));
"Tengelymetszet (Tengelypont):";
Tengelymetszet: y=f(0);
"Határértékek:";
végtelen:limit(f(x), x, inf);
minuszvégtelen:limit(f(x), x, -inf);
"Derivált függvény:";
derivált:diff(f(x),x,1);
szélsőértékekseged:float(realroots(derivált));
szélsőértékek1: rhs(szélsőértékekseged[1]);
szélsőértékek2: rhs(szélsőértékekseged[2]);
"Szélsőérték típusa:";
szélsőérték1: if subst(x=szélsőértékek1-0.00001,derivált)>0 and subst(x=szélsőértékek1+0.00001,derivált)<0 then "Maximum" 
else if subst(x=szélsőértékek1-0.00001,derivált)<0 and subst(x=szélsőértékek1+0.00001,derivált)>0 then "Minimum" else "Nincs szélsőérték a pontban";
szélsőérték2: if subst(x=szélsőértékek2-0.00001,derivált)>0 and subst(x=szélsőértékek2+0.00001,derivált)<0 then "Maximum" 
else if subst(x=szélsőértékek2-0.00001,derivált)<0 and subst(x=szélsőértékek2+0.00001,derivált)>0 then "Minimum" else "Nincs szélsőérték a pontban";
"Második derivált függvény:";
másodikderivált:diff(derivált,x,1);
inflexióekseged:float(realroots(másodikderivált));
inflexió1: rhs(inflexióekseged[1]);
"Inflexiós pont:";
inflexióspont: if subst(x=inflexió1-0.00001,másodikderivált)>0 and subst(x=inflexió1+0.00001,másodikderivált)<0 then "Inflexiós pont" 
else if subst(x=inflexió1-0.00001,másodikderivált)<0 and subst(x=inflexió1+0.00001,másodikderivált)>0 then "Inflexiós pont" else "Nincs inflexiós pont a pontban";
wxplot2d([f(x)], [x,-10,10])$

## Deriválás alkalmazásai

### Érintő egyenes egyenlete

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=2*x^3-x^2$ /*Ezt töltsd ki*/
x0:1$  /*Ezt töltsd ki*/
derivált(x):=''(diff(f(x),x,1));
"Érintő egyenes egyenlete:";
y:ratsimp(derivált(x0)*(x-x0)+f(x0));
wxplot2d([f(x),y], [x,-10,10])$

### Taylor polinom

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=cos(x)$ /*Ezt töltsd ki*/
a:%pi/4$  /*Ezt töltsd ki*/
n:4$ /*Ezt töltsd ki*/
közelítőérték:%pi/4$ /*Ezt töltsd ki (opcionális)*/
"Taylor polinom:";
Taylorpolinom:taylor(f(x), x, a, n);
"Taylor polinom közelítő értéke:";
Közelítő:float(subst(x=közelítőérték,Taylorpolinom));
"Függvény értéke:";
Függvényérték: float(f(közelítőérték));
"Hiba:";
hiba:(Közelítő-Függvényérték)/Függvényérték*100;

## Integrálás

### Határozatlan integrálás

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2+5*x$ /*Ezt töltsd ki*/
integrate(f(x), x)+c;

### Határozott integrálás

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2+5*x$ /*Ezt töltsd ki*/
a:1$ /*Ezt töltsd ki*/
b:2$ /*Ezt töltsd ki*/
eredmény:integrate(f(x), x, a, b);
eredményszámérték:float(eredmény);

### Improprius integrálás

/*Számtól végtelenig*/
kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=1/x^2$ /*Ezt töltsd ki*/
a:1$ /*Ezt töltsd ki*/
integrate(f(x), x, a, inf);
/* Ha ezt írja ki: 
defint: integral is divergent.
 -- an error. To debug this try: debugmode(true);
Akkor az integrál divergens*/

/* -Végtelentől számig*/
kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=1/x^2$ /*Ezt töltsd ki*/
b:-1$ /*Ezt töltsd ki*/
integrate(f(x), x, -inf, b);
/* Ha ezt írja ki: 
defint: integral is divergent.
 -- an error. To debug this try: debugmode(true);
Akkor az integrál divergens*/

## Integrálás alkalmazásai

### Két függvény közötti terület

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=2/(x+1)$ /*Ezt töltsd ki*/
g(x):=-x+2$ /*Ezt töltsd ki*/
egyenlet: f(x)=g(x);
"Egyenlet megoldásai:";
megoldás:realroots(egyenlet);
"a és b értékei:";
a:rhs(megoldás[1])$
b:rhs(megoldás[2])$
aszámérték:float(a);
b2számérték:float(b);
"Terület:";
Terület:abs(integrate(f(x)-g(x), x, a, b));
Területszámérték:float(Terület);

### Korlátos terület nagysága

f(x):=x^2-5*x+4$ /*Ezt töltsd ki*/
a:3$ /*Ezt töltsd ki*/
b:6$ /*Ezt töltsd ki*/
"Zérushely megkeresése:";
egyenlet: f(x)=0;
megoldás:realroots(egyenlet);
m1:rhs(megoldás[1])$
m2:rhs(megoldás[2])$
"Terület:";
Terület:abs(integrate(f(x), x, a, 4))+abs(integrate(f(x), x, 4, b)); /*Ezt töltsd ki, ide írd be a zérushely értékét, ha a és b közé esik*/
Területszámérték:float(Terület);

### Térfogatszámítás

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2$ /*Ezt töltsd ki*/
a:1$ /*Ezt töltsd ki*/
b:2$ /*Ezt töltsd ki*/
"Térfogat:";
V:%pi*integrate((f(x))^2,x,a,b);
Vszámérték:float(V);

### Integrálási tartomány számítása

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=6*x*(x^2+1)^2$ /*Ezt töltsd ki*/
a:0$ /*Ezt töltsd ki*/
T:124$ /*Ezt töltsd ki*/
eredmény:integrate(f(x), x, a, b)$
bmegoldás:solve([T=eredmény],[b]);
"Ellenőrzés:";
integrate(f(x), x, a, 2); /*Ezt töltsd ki, utolsó helyre a kapott eredmény kerüljön*/

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2+5*x$ /*Ezt töltsd ki*/
b:2$ /*Ezt töltsd ki*/
T:59/6$ /*Ezt töltsd ki*/
eredmény:integrate(f(x), x, a, b)$
bmegoldás:solve([T=eredmény],[a]);
"Ellenőrzés:";
integrate(f(x), x, 1, b); /*Ezt töltsd ki, utolsó előtti helyre a kapott eredmény kerüljön*/

### Átlagszámítás

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^3$ /*Ezt töltsd ki*/
a:2$ /*Ezt töltsd ki*/
b:4$ /*Ezt töltsd ki*/
f_átlag:(integrate((f(x)),x,a,b))/(b-a);

### Ívhossz számítás:

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2$ /*Ezt töltsd ki*/
a:1$ /*Ezt töltsd ki*/
b:2$ /*Ezt töltsd ki*/
l:integrate(sqrt(1+diff(f(x),x,1)^2),x,a,b);
lszámérték: float(l);

### Lemez súlypont:

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2$ /*Ezt töltsd ki*/
a:0$ /*Ezt töltsd ki*/
b:3$ /*Ezt töltsd ki*/
"Koordináták:";
xs:integrate(x*f(x),x,a,b)/integrate(f(x),x,a,b);
ys:((1/2)*integrate((f(x))^2,x,a,b))/integrate(f(x),x,a,b);
"Koordináták számérték:";
xsszámérték:float(xs);
ysszámérték:float(ys);

### Ív súlypont:

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2$ /*Ezt töltsd ki*/
a:1$ /*Ezt töltsd ki*/
b:2$ /*Ezt töltsd ki*/
"Koordináták:";
xs:integrate(x*sqrt(1+diff(f(x),x,1)^2),x,a,b)/integrate(sqrt(1+diff(f(x),x,1)^2),x,a,b);
ys:integrate(f(x)*sqrt(1+diff(f(x),x,1)^2),x,a,b)/integrate(sqrt(1+diff(f(x),x,1)^2),x,a,b);
"Koordináták számérték:";
xsszámérték:float(xs);
ysszámérték:float(ys);

### Forgástest súlypont:

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2$ /*Ezt töltsd ki*/
a:1$ /*Ezt töltsd ki*/
b:2$ /*Ezt töltsd ki*/
"Koordináták:";
xs:integrate(x*(f(x))^2,x,a,b)/integrate((f(x))^2,x,a,b);
ys:0;
"Koordináták számérték:";
xsszámérték:float(xs);
ysszámérték:float(ys);

### Felszínszámítás:

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x):=x^2$ /*Ezt töltsd ki*/
a:1$ /*Ezt töltsd ki*/
b:2$ /*Ezt töltsd ki*/
A:2*(%pi)*integrate(f(x)*sqrt(1+diff(f(x),x,1)^2),x,a,b);
Aszámérték:float(A);

## Kétváltozós függvények

### Parciális deriválás

kill(all)$
ratprint: false$
fpprintprec: 5$
f(x,y):=y*log(2*x+3*y)$ /*Ezt töltsd ki*/
a:x=3$ /*Ezt töltsd ki*/
b:y=7$/*Ezt töltsd ki*/
"Elsőrendű parciális deriváltak:";
fx:diff(f(x,y),x,1);
fy:diff(f(x,y),y,1);
"Másodrendű parciális deriváltak:";
fxx:diff(f(x,y),x,2);
fyy:diff(f(x,y),y,2);
fxy:diff(fx,y,1);
fyx:diff(fy,x,1);
"Elsőrendű parciális deriváltak értékei:";
fxérték:at(fx,[a,b]);
fyérték:at(fy,[a,b]);
"Másodrendű parciális deriváltak értékei:";
fyyérték:at(fxx,[a,b]);
fyyérték:at(fyy,[a,b]);
fxyérték:at(fxy,[a,b]);
fyxérték:at(fyx,[a,b]);

### Lokális szélsőérték 1 megoldás

kill(all)$
ratprint: false$
fpprintprec: 5$
realonly:true$
f(x,y):=2*x^2+2*y^2+2*x*y-2*x+2*y+17$ /*Ezt töltsd ki*/
"Elsőrendű parciális deriváltak:";
fx:diff(f(x,y),x,1);
fy:diff(f(x,y),y,1);
"Egyenletrendszer:"$
e1:fx=0$
e2:fy=0$
"Egyenletrendszer megoldásai:";
egyenletmegoldás:algsys([e1, e2], [x,y])$
P1segéd:matrix([x,y])$
P1pont:subst(egyenletmegoldás[1],P1segéd);
"Másodrendű parciális deriváltak:";
fxx:diff(f(x,y),x,2);
fyy:diff(f(x,y),y,2);
fxy:diff(fx,y,1);
fyx:diff(fy,x,1);
fmatrix:matrix([fxx,fxy],[fyx,fyy]);
fmatrixP1:subst(egyenletmegoldás[1],fmatrix);
"fxx*fyy-fxy*fyx kiszámítása:";
P1:determinant(fmatrixP1);
if P1<0 then "P1 pont nyeregpont" else if fmatrixP1[1,1]>0 then "P1 pont lokális minimum" else "P1 pont lokális maximum";
P1z:subst(egyenletmegoldás[1],f(x,y))$
P1koordináta:matrix([P1pont[1,1],P1pont[1,2],P1z])$
wxplot3d(f(x,y), [x,-10,10], [y,-10,10])$

### Lokális szélsőérték 2 megoldás

kill(all)$
ratprint: false$
fpprintprec: 5$
realonly:true$
f(x,y):=2*x^2+2*y^2+2*x*y-2*x+2*y+17$ /*Ezt töltsd ki*/
"Elsőrendű parciális deriváltak:";
fx:diff(f(x,y),x,1);
fy:diff(f(x,y),y,1);
"Egyenletrendszer:"$
e1:fx=0$
e2:fy=0$
"Egyenletrendszer megoldásai:";
egyenletmegoldás:algsys([e1, e2], [x,y])$
P1segéd:matrix([x,y])$
P1pont:subst(egyenletmegoldás[1],P1segéd);
P2segéd:matrix([x,y])$
P2pont:subst(egyenletmegoldás[2],P2segéd);
"Másodrendű parciális deriváltak:";
fxx:diff(f(x,y),x,2);
fyy:diff(f(x,y),y,2);
fxy:diff(fx,y,1);
fyx:diff(fy,x,1);
fmatrix:matrix([fxx,fxy],[fyx,fyy]);
fmatrixP1:subst(egyenletmegoldás[1],fmatrix);
fmatrixP2 :subst(egyenletmegoldás[2],fmatrix);
"fxx*fyy-fxy*fyx kiszámítása:";
P1:determinant(fmatrixP1);
P2:determinant(fmatrixP2);
if P1<0 then "P1 pont nyeregpont" else if fmatrixP1[1,1]>0 then "P1 pont lokális minimum" else "P1 pont lokális maximum";
if P2<0 then "P2 pont nyeregpont" else if fmatrixP2[1,1]>0 then "P2 pont lokális minimum" else "P2 pont lokális maximum";
P1z:subst(egyenletmegoldás[1],f(x,y))$
P2z:subst(egyenletmegoldás[2],f(x,y))$
P1koordináta:matrix([P1pont[1,1],P1pont[1,2],P1z])$
P2koordináta:matrix([P2pont[1,1],P2pont[1,2],P2z])$
wxplot3d(f(x,y), [x,-10,10], [y,-10,10])$

### Lokális szélsőérték 3 megoldás

kill(all)$
ratprint: false$
fpprintprec: 5$
realonly:true$
f(x,y):=11-3*x*y^2+9*x^2-6*x^3-3*y^2$ /*Ezt töltsd ki*/
"Elsőrendű parciális deriváltak:";
fx:diff(f(x,y),x,1);
fy:diff(f(x,y),y,1);
"Egyenletrendszer:";
e1:fx=0$
e2:fy=0$
"Egyenletrendszer megoldásai:";
egyenletmegoldás:algsys([e1, e2], [x,y])$
P1segéd:matrix([x,y])$
P1pont:subst(egyenletmegoldás[1],P1segéd);
P2segéd:matrix([x,y])$
P2pont:subst(egyenletmegoldás[2],P2segéd);
P3segéd:matrix([x,y])$
P3pont:subst(egyenletmegoldás[3],P3segéd);
"Másodrendű parciális deriváltak:";
fxx:diff(f(x,y),x,2);
fyy:diff(f(x,y),y,2);
fxy:diff(fx,y,1);
fyx:diff(fy,x,1);
fmatrix:matrix([fxx,fxy],[fyx,fyy]);
fmatrixP1:subst(egyenletmegoldás[1],fmatrix);
fmatrixP2 :subst(egyenletmegoldás[2],fmatrix);
fmatrixP3 :subst(egyenletmegoldás[3],fmatrix);
"fxx*fyy-fxy*fyx kiszámítása:";
P1:determinant(fmatrixP1);
P2:determinant(fmatrixP2);
P3:determinant(fmatrixP3);
if P1<0 then "P1 pont nyeregpont" else if fmatrixP1[1,1]>0 then "P1 pont lokális minimum" else "P1 pont lokális maximum";
if P2<0 then "P2 pont nyeregpont" else if fmatrixP2[1,1]>0 then "P2 pont lokális minimum" else "P2 pont lokális maximum";
if P3<0 then "P3 pont nyeregpont" else if fmatrixP3[1,1]>0 then "P3 pont lokális minimum" else "P3 pont lokális maximum";
P1z:subst(egyenletmegoldás[1],f(x,y))$
P2z:subst(egyenletmegoldás[2],f(x,y))$
P3z:subst(egyenletmegoldás[3],f(x,y))$
P1koordináta:matrix([P1pont[1,1],P1pont[1,2],P1z])$
P2koordináta:matrix([P2pont[1,1],P2pont[1,2],P2z])$
P3koordináta:matrix([P3pont[1,1],P3pont[1,2],P3z])$
wxplot3d(f(x,y), [x,-10,10], [y,-10,10])$

### Kétváltozós integrálás

kill(all)$
ratprint: false$
fpprintprec: 5$
realonly:true$
f(x,y):=x^3+y^2+5*x*y$ /*Ezt töltsd ki*/
/*Úgy töltsd ki, hogy "a" és "b" a belső integrál határai ("a" a kisebb "b" a nagyobb ), c és d pedig a külső integrál határai ("c" a kisebb "d" a nagyobb)*/
a:1$  /*Ezt töltsd ki*/
b:2$  /*Ezt töltsd ki*/
c:3$  /*Ezt töltsd ki*/
d:4$  /*Ezt töltsd ki*/
eredmény:integrate(integrate(f(x,y), x, a, b),y,c,d);
eredményérték:float(eredmény);