Informatika1-2015/Gyakorlat10megoldasok
A MathWikiből
(Változatok közti eltérés)
(egy szerkesztő 4 közbeeső változata nincs mutatva) | |||
1. sor: | 1. sor: | ||
== Változók használata == | == Változók használata == | ||
− | + | * Legyen Y a születési éved, M a születési hónapod, és D a születésed napja, ezekhez vedd fel a három változót. | |
+ | <python> | ||
+ | Y = 1998 | ||
+ | M = 3 | ||
+ | D = 31 | ||
+ | </python> | ||
+ | * Hányszor van meg D Y-ban? Legyen az érték a b változóhoz rendelve. | ||
+ | <python> | ||
+ | b = Y // D | ||
+ | </python> | ||
− | + | * Legyen r a születési évednek a hónappal vett maradéka. | |
− | + | <python> | |
− | + | r = Y % M | |
− | + | </python> | |
− | + | ||
+ | * Mennyi most b és r különbsége? | ||
+ | <python> | ||
+ | b - r | ||
+ | </python> | ||
== Beépített Sage függvények, metódusok == | == Beépített Sage függvények, metódusok == | ||
− | + | * Prímszám-e 2011? (használd az ''is_prime()'' függvényt) | |
− | + | <python> | |
− | + | is_prime(2011) | |
− | + | </python> | |
− | + | ||
− | + | * Prímedik napján születtél-e a hónapnak? (használd a D változót!) | |
− | + | <python> | |
− | + | is_prime(D) | |
− | + | </python> | |
− | + | ||
− | + | * Oldd meg a D*x^2 + M*x - b*r = 0 egyenletet a ''solve(fv, változó)'' függvény segítségével! (Ne felejtsd el bevezetni az x-et szimbolikus változóként!) | |
− | + | <python> | |
+ | x = var('x') | ||
+ | solve(D*x^2 + M*x - b*r == 0, x) | ||
+ | </python> | ||
+ | |||
+ | * Numerikusan is oldd meg az egyenletet! Használd a ''find_root(fv == 0, min, max)'' függvényt. | ||
+ | <python> | ||
+ | x = var('x') | ||
+ | find_root(D*x^2 + M*x - b*r == 0, -10, 10) | ||
+ | </python> | ||
+ | * Oldd meg a fenti egyenletet szimbolikusan is (fejezd ki x-et b, D, M és r-rel)! | ||
+ | <python> | ||
+ | x = var('x') | ||
+ | b = var('b') | ||
+ | D = var('D') | ||
+ | M = var('M') | ||
+ | r = var('r') | ||
+ | solve(D*x^2 + M*x - b*r == 0, x) | ||
+ | </python> | ||
+ | |||
+ | * Deriváld le az sin(x)cos(x)x^2 függvényt. | ||
+ | <python> | ||
+ | diff(sin(x)*cos(x)*x^2, x) | ||
+ | </python> | ||
+ | vagy | ||
+ | <python> | ||
+ | fv = sin(x)*cos(x)*x^2 | ||
+ | fv.diff(x) | ||
+ | </python> | ||
+ | |||
+ | * Integráld le az elõzõ függvényt. | ||
+ | <python> | ||
+ | integrate(sin(x)*cos(x)*x^2, x) | ||
+ | </python> | ||
+ | vagy | ||
+ | <python> | ||
+ | fv = sin(x)*cos(x)*x^2 | ||
+ | fv.integrate(x) | ||
+ | </python> | ||
+ | |||
+ | * Számold ki a határértékét az (1 + 3/n)^4n függvénynek, ha n->oo | ||
+ | <python> | ||
+ | n = var('n') | ||
+ | limit((1 + 3/n)^(4*n), n=oo) | ||
+ | </python> | ||
+ | |||
+ | * Legyen f a következő függvény: f = (x+2*y)^3 | ||
+ | <python> | ||
+ | x = var('x') | ||
+ | y = var('y') | ||
+ | f = (x+2*y)^3 | ||
+ | </python> | ||
+ | |||
+ | * Helyettesíts be x helyére 3-at; utána x helyére 4-et és y helyére 2-t. Mennyi az eredmény? ( használd f-nek a ''subs()'' függvényét) | ||
+ | <python> | ||
+ | f.subs(x = 3) | ||
+ | f.subs(x = 4, y = 2) | ||
+ | </python> | ||
+ | |||
+ | * Bontsd összeggé f-et! (''expand()'') | ||
+ | <python> | ||
+ | f.expand() | ||
+ | </python> | ||
+ | |||
+ | * Az elõbb tanultakat használva, számold ki az 4. tagig a sin(x)cos(x)x^2 függvény [https://hu.wikipedia.org/wiki/Taylor-sor Taylor-sorát] (deriválni / integrálni, ha '''f''' egy függvény úgy is lehet, hogy '''f.diff(x)''') | ||
+ | <python> | ||
+ | f = sin(x) * cos(x) * x^2 | ||
+ | f.diff(x, 0).subs(x=0) / factorial(0) * x^0 + f.diff(x, 1).subs(x=0) / factorial(1) * x^1 + f.diff(x, 2).subs(x=0) / factorial(2) * x^2 + f.diff(x, 3).subs(x=0) / factorial(3) * x^3 | ||
+ | </python> | ||
+ | |||
== Rajzolás a Sage segítségével (plot) == | == Rajzolás a Sage segítségével (plot) == | ||
− | + | * Rajzolj egy cosinus-görbét 0-tól 4*pi -ig! | |
− | + | <python> | |
− | + | plot(cos(x), 0, 4*pi) | |
− | + | </python> | |
+ | |||
+ | * Rajzold ki az (x-2)^2 + 3 másodfokú polinomot -2-től 4-ig, zöld színnel! | ||
+ | <python> | ||
+ | plot((x-2)^2 + 3, -2, 4, color="green") | ||
+ | </python> | ||
+ | |||
+ | * Rajzold az előző mellé (a ''show'' függvénnyel) az x^3-3*x + 6 harmadfokú polinomot pirossal! | ||
+ | <python> | ||
+ | p1 = plot((x-2)^2 + 3, -2, 4, color="green") | ||
+ | p2 = plot(x^3-3*x + 6, -2, 4, color="red") | ||
+ | show(p1 + p2) | ||
+ | </python> | ||
+ | |||
+ | * Rajzoljunk kört: ''circle((középpont koordinátái), sugár, egyebek)''. Az "egyebek" lehetnek: szín, ''aspect_ratio=True'' hogy az x és y tengelyek skálázása azonos legyen (különben ellipszist kaphatunk!). | ||
+ | <python> | ||
+ | circle((1, 5), 2, color="purple", aspect_ratio=True) | ||
+ | </python> |
A lap jelenlegi, 2015. december 8., 23:09-kori változata
Változók használata
- Legyen Y a születési éved, M a születési hónapod, és D a születésed napja, ezekhez vedd fel a három változót.
Y = 1998 M = 3 D = 31
- Hányszor van meg D Y-ban? Legyen az érték a b változóhoz rendelve.
b = Y // D
- Legyen r a születési évednek a hónappal vett maradéka.
r = Y % M
- Mennyi most b és r különbsége?
b - r
Beépített Sage függvények, metódusok
- Prímszám-e 2011? (használd az is_prime() függvényt)
is_prime(2011)
- Prímedik napján születtél-e a hónapnak? (használd a D változót!)
is_prime(D)
- Oldd meg a D*x^2 + M*x - b*r = 0 egyenletet a solve(fv, változó) függvény segítségével! (Ne felejtsd el bevezetni az x-et szimbolikus változóként!)
x = var('x') solve(D*x^2 + M*x - b*r == 0, x)
- Numerikusan is oldd meg az egyenletet! Használd a find_root(fv == 0, min, max) függvényt.
x = var('x') find_root(D*x^2 + M*x - b*r == 0, -10, 10)
- Oldd meg a fenti egyenletet szimbolikusan is (fejezd ki x-et b, D, M és r-rel)!
x = var('x') b = var('b') D = var('D') M = var('M') r = var('r') solve(D*x^2 + M*x - b*r == 0, x)
- Deriváld le az sin(x)cos(x)x^2 függvényt.
diff(sin(x)*cos(x)*x^2, x)
vagy
fv = sin(x)*cos(x)*x^2 fv.diff(x)
- Integráld le az elõzõ függvényt.
integrate(sin(x)*cos(x)*x^2, x)
vagy
fv = sin(x)*cos(x)*x^2 fv.integrate(x)
- Számold ki a határértékét az (1 + 3/n)^4n függvénynek, ha n->oo
n = var('n') limit((1 + 3/n)^(4*n), n=oo)
- Legyen f a következő függvény: f = (x+2*y)^3
x = var('x') y = var('y') f = (x+2*y)^3
- Helyettesíts be x helyére 3-at; utána x helyére 4-et és y helyére 2-t. Mennyi az eredmény? ( használd f-nek a subs() függvényét)
f.subs(x = 3) f.subs(x = 4, y = 2)
- Bontsd összeggé f-et! (expand())
f.expand()
- Az elõbb tanultakat használva, számold ki az 4. tagig a sin(x)cos(x)x^2 függvény Taylor-sorát (deriválni / integrálni, ha f egy függvény úgy is lehet, hogy f.diff(x))
f = sin(x) * cos(x) * x^2 f.diff(x, 0).subs(x=0) / factorial(0) * x^0 + f.diff(x, 1).subs(x=0) / factorial(1) * x^1 + f.diff(x, 2).subs(x=0) / factorial(2) * x^2 + f.diff(x, 3).subs(x=0) / factorial(3) * x^3
Rajzolás a Sage segítségével (plot)
- Rajzolj egy cosinus-görbét 0-tól 4*pi -ig!
plot(cos(x), 0, 4*pi)
- Rajzold ki az (x-2)^2 + 3 másodfokú polinomot -2-től 4-ig, zöld színnel!
plot((x-2)^2 + 3, -2, 4, color="green")
- Rajzold az előző mellé (a show függvénnyel) az x^3-3*x + 6 harmadfokú polinomot pirossal!
p1 = plot((x-2)^2 + 3, -2, 4, color="green") p2 = plot(x^3-3*x + 6, -2, 4, color="red") show(p1 + p2)
- Rajzoljunk kört: circle((középpont koordinátái), sugár, egyebek). Az "egyebek" lehetnek: szín, aspect_ratio=True hogy az x és y tengelyek skálázása azonos legyen (különben ellipszist kaphatunk!).
circle((1, 5), 2, color="purple", aspect_ratio=True)