Felhívom a figyelmet a Maple Calculator-ra. Ez egy ingyenes mobil app, amely a Maple képességeinek egy szűkített halmazát teszi elérhetővé: tudományos számológép, függvényábrázolás, deriválás, integrálás. Az utóbbiak esetén a végeredményhez vezető lépéseket is meg tudja mutatni: https://www.maplesoft.com/products/Maplecalculator/ Utoljára szerkesztette: xDJCx, 2021.10.29. 11:43:22
Próbáld meg a SurfacePlot parancsot a Statistics csomagból. A súgóban találsz példákat.
Egy programom végeredményeként kapok 3 mátrixot, x,y,z mátrixot. a mátrixok rendre egy-egy pont x, y és z koordinátáit tartalmazzák. Pl. x[1,1]:=1; y[1,1]:=2, z[1,1]:=3, akkor az adott pont kooridnátája: [1,2,3]. Van valami ötletetek arra, hogy hogyan tudnám az így kapott pontokat felületként megjeleníteni?
A segítséget előre is köszönöm. :)
Sziasztok!
A Maple 19-t még nem lehet sehol letölteni? Kerestem egy torrent oldalon, de ott nem hogy a Maple 17 és a többiek, de semmilyen Maple nincs fent.
Igen onnan töltöttem le. Akkor lehet, hogy ez volt a hiba. A 18.01-et viszont minden hiba nélkül elfogadta. Van 18.02 sajnos nem hivatalos?
A 18.01-et nem kell előtte telepíteni. Jó lenne tudni, milyen hibaüzenetet ír ki. Ha esetleg az alap 18-as nem legális, akkor nem fog működni a hivatalos oldalról letöltött 18.02-es frissítés! Ha pedig legális a 18-as, akkor meg kéne próbálni újra letölteni és telepíteni a 18.02-öt.
Üdv. Frissítéssel kapcsolatban szeretnék kérdezni. Kaptam egy másik op. rendszert és feltelepítettem a Maple 18-t frissítettem a 18.02-t de amikor egy példát szerettem volna megoldani, akkor hibaüzenetet írt ki sőt még a menüre való klikkelésnél is. Lehet, hogy nem jó a frissítés, vagy előbb a 18.01-t kell feltelepíteni? Lehet, hogy én rontottam el valamit? Előre is köszönöm. Imre
Sikerült frissitenem a programot, és újra beírtam a egyenletet, és nekem is ugyan az az eredmény jött ki, mint neked.
Szia. Nekem csak a 18-s verzió van meg és nem merem frissiteni, mert sajnos nem eredeti és akkor a seriál már nem jó hozzá. És akkor lehet, hogy ezért kapok más eredményt.
Ilyen összefüggésben nem találkoztam a kulcsszóval, és nálam (Maple 18.01) másként jelenik meg az eredmény:
D2:=-20*x^2 -16*y^2-16*y+16; solve(D2);
# Az eredménye: {x = (2/5)*sqrt(-5*y^2-5*y+5), y = y}, {x = -(2/5)*sqrt(-5*y^2-5*y+5), y = y}
itt küldöm jpg-ben a feladatot. Itt látszik az eredmény vége. Nem teljes.
Sziasztok. Volt egy feladat, amiben ezt az eredményt kaptam: x = (1/10)*sqrt(-80*y^2-80*y+80, symbolic). Mit jelent a symbolic opció.. Előre is köszönöm. Imre
Sziasztok. Újfent szeretnék kérdezni valami. Hogy kell használni az op() és a subs() parancsokat az Apply a Command menüvel? Én akárhogy próbáltam beírni a parancsot mint ahogy azt kell op(2, eqn) és a subs parancs nál is subs(x=r*sin(phi), eqn) így sosem sikerül beírni az Apply a Command menübe. Előre is ksözönöm.
AZ inline opció nélkül is mûködik, mert ennek az opciónak a szerepe az eljárás végrehajtásának gyorsítása. Ez csak egyszerû eljárások esetén használható (ha nem tartalmaz az eljárás lokális paramétereket, és csak egyszerû kifejezés(sorozat)ból épül el).
Sziasztok. Azt szeretném kérdezni,hogy milyen opció az inline parancs? sq := proc (x) option inline; x^2 end proc; hypot := proc (a, b) sqrt(a^2+b^2) end proc; quad := proc (a, b) (a+b)^2*(a-b)^2 end proc;
Mert itt van ez a három eljárás, és az elsõ eljárás opciója az inline. De ha én ezt kitörlöm, akkor is mûködik. Végül is miért kell?
Elõre is köszönöm.
Igen a palettán valóban van olyan szimbólum, de nincs hozzá rendelve a mûvelet.
A komplementerhalmaz-képzés az halmazok közti kivonást jelent, ahol általában a legbõvebb halmazra vonatkoztatják a kivonás mûveletét. Nézd a meg pl. a wikipédián:
Szia. Pedig a Mapleban van olyan szimbólum a paletták között van egy olyan, hogy hangsúly és abban van egy ilyen szimbólum ami egy "X" jel felül vonás van. És én azt hittem, hagy ha ezt a jelet alkalmazzuk akkor megjeleníti a komplementer halmazt. Amit írtál az nem egy egyszerû különbség?
Nincs rá külön jelölés és nincs elõre definiálva a Maple-ben ez a mûvelet.
Lehet definiálni függvényként a komplementer halmaz képzést. Ha pl. U-val jelöljük az univerzum, azaz a legbõvebb halmazt az adott feladatban, akkor pl. így:
A megadott képletben hibás volt az y -t számító rész, a + helyett / -kell, és a Return(M) is el volt gépelve, return(M) lenne a helyes, de itt nincs is szükség a return parancsra.
Az eljárás át lett alakítva úgy, hogy meg kell adni az eljárás hívásakor az eljárás által visszaadandó osztópont (pont-objektum) nevét. Ezzel a névvel lehet azután hivatkozni a létrejött objektumra.
Új típust a Maple TypeTools csomagja segítségével lehet létrehozni, a csomag AddType parancsával. A súgóban: ?AddType
restart; with(geometry):
OP:=proc(M,A,B,p,q) local x,y; x:=(HorizontalCoord(A)*q+HorizontalCoord(B)*p)/(p+q); y:=(VerticalCoord(A)*q+VerticalCoord(B)*p)/(p+q); point(M,x,y); M; end proc;
Sziasztok. OP:=proc(A,B,p,q) local M, x,y; x:=(HorizontalCoord(A)*q+HorizontalCoord(B)*p)/(p+q); y:=(VerticalCoord(A)*q+VerticalCoord(B)*p)+(p+q); point(M,x,y); Return(M); end proc; Ez az eljárás két pont közti osztópontot számolja ki. Az ismert képlet alapján könnyû megírni. Szóval azt szeretném kérdezni, hogy hogyan lehet az A, és a B paramétereknek a "point" típust adni, hogy ne kelljen külön leírni. valahogy így: point(A,3,8); point(B,10, 6); OP(A, B, 2,1); Hanem rögtön így: OP(point(A, 3,8), point(B,10,6),2,1) Az paraméterek a következõk: A- az elsõ pont kordinátái B- a második pont kordinátái p, q - osztási arány. Egyébként lehet saját típust deklarálni? Elõre is köszönöm Imre
Az indexes változónevek name típusúak, de nem symbol típusúak:
Azt szeretném kérdezni, hogy mi a különbség a symbol és a name tipus között. egy:=proc(x::symbol) vagy így egy:=proc(x::name) nem ugyan az a kettõ? Üdv Imre
Köszönöm mûködik!
Pl. ha aposztrófok (ún. left single quotes -amelyik balra dõl) közé teszed a változó nevét, akkor speciális karaktert is tartalmazhat.
Sziasztok! Olyan problémám lenne, hogy szeretném h'-t kiirattatni a programban, de bármit teszek akkor is deriválni akar. Biztos nagyon triviális a megoldás csak én vagyok béna. Köszönettel:Papp Miklós
Szia. Tényleg igazad van jobb lenne angolul, de igazából az lenne a legjobb, ha lenne tanfolyam MAPLE-böl ahol a tanár elmagyarázza a parancsok "mûködését", vagy egy magyar nyelvû kézikönyv amiben minden mondom minden parancs, utasítás, stb, stb le van írva. Érdekes, hogy más programokról tudnak írni teljes körû felhasználói könyvet. Ezért szoktam itt kérdezni, mert itt mindig kielégítõ választ kapok egy olyan hozzáértõ embertõl mint te. Üdv
Én sem tudom hirtelen, mivel kéne megnyitni,viszont a teljes súgó anyag elérhetõ a Maplesoft weboldalán (online help): http://www.maplesoft.com/support/help/index.aspx
A fõ probléma viszont az, hogy a Maple teljes súgója nagyon terjedelmes, sok száz vagy ezer oldalnyi is lehet. Hosszútávon mindenképpen jobban jársz, ha megtanulsz legalább olyan szinten angolul, hogy a parancsok magyarázatait értelmezi tudjad.
Szeretnék kérdezni. Van a MAPLE könyvtárba több *.hdb (help database)kiterjesztésû fájl. Ezt mivel lehet megnyitni? Ugyanis ebben a fájlban tárolja a Maple a helpeket (leírásokat) *.mw kiterjesztésû fájlok együttese. Az egyik ismerõsöm azt mondta, ha sikerül megnyitni és kinyomtatni a fájlokat akkor esetleg lefordítaná nekem és vissza töltve lenne egy magyar helpel rendelkezõ MAPLE programom. Sajnos a windows nem tudja megnyitni. És így csak a elkell olvasnom a megfelelõ segítséget, mert én nem tudok angolul.
Ha csak egyszerûen a save parancsot használjuk, akkor a read parancssal olvasható be az elmentett eljárás vagy változó: Pl.
save szsor,"eljarasok.m"; restart; read "eljarasok.m"; szsor(an=30,a1=1,n=12);
Ennél elegánsabb dolog module-ba betenni az eljárásaidat, és azt elmenteni és betölteni, úgy ahogy a Maple saját csomagjait kezeli. Ez kicsivel bonyolultabb dolog, a súgóban vannak példák.
Lehet azt is csinalni, hogy a solve és indets parancsokat használva a Maple maga találja ki, melyik a hiányzó ismeretlen az egyenletben (an=a1+(n-1)*d) , és arra az ismeretlenre oldja meg. Az alábbi eljárás ezt csinálja, a változónevekkel kicsit trükközni kell.
szsor:=proc({an::numeric:='a__n',a1::anything:='a__1',n::posint:='N',d::anything:='d_'}) description "an=a1+(n-1)*d keplet tetszoleges ismeretlenjenek szamitasa a masik ketto ismereteben."; local eq,valt,nevek; nevek:=table(['a__n'="an",a__1="a1",N="n",d_="d"]); eq:=an=a1+(n-1)*d; valt:=convert(indets(eq,And(name,Not(constant))),list)[]; if nops([valt])>1 or nops([valt])=0 then return "Egynel tobb parameter erteke nincs megadva, vagy mindegyik erteke meg van adva."; end if; return parse(nevek[valt])=solve(eq,valt); end proc;
szsor(a1=1,d=0.5,n=10);# an ismeretlen szsor(a1=1,d=0.5,an=5.5);# n ismeretlen szsor(a1=1,n=10,an=5.5);# d az ismeretlen szsor(d=0.5,n=10,an=5.5);# a1 ismeretlen szsor(a1=1,n=10);# tul keves megadott parameter szsor(a1=1,n=10,an=5.5,d=0.5);# tul sok megadott parameter
Használhatsz név szerinti paramétereket is (keyword parameters): Tetszõleges a sorrendjük, és elhagyhatsz közülük. ... szsor:=proc( { a1::numeric:=NULL, n::posint:=NULL, d::numeric:=NULL})
... szsor(a1=5, n=10, d=3)
Ha elhagyod valamelyiket az eljárás hívásakor, akkor ezt az eljárásban tudod lekezelni.
Az online súgóban itt írnak róla: http://www.maplesoft.com/support/help/Maple/view.aspx?path=parameter_classes
Szia köszönöm a segítséget ezzel minden rendben van ezt értem, az args a maple 16-ban a _passed utasítás a nargs pedig a_npassed. De én egy valamit nem értek, hogy megértsd mit szeretnék leírom konkrétan: Szeretnék egy eljárást ami a matematikai számsorokat számolja ki. Valahogy így. a(n)=a(1)+(n-1)*d képlet alapján számolja ki. Na most, ha a tanár azt mondja számoljuk ki a számtani sorozat a(1)-dik tagját, és megadja a többi paraméter, akkor az eljárásba csak az n-t és a d-t tudom beirni. Így: szsor(a[1]=NULL,n=17,d=5) és akkor csak ebbõl a két paraméterbõl számol, de ha szsor(a[1]=23,n=NULL,d=8) akkor viszont ebbõl számolja ki. Na ebbe kérném a segítséged. Sajnos a MAPLE-ban nem lehet úgy megadni a paramétereket mint a VISUAL BASIC-ban, hogy ha egy paraméter hiányzik, akkor azt egy vesszõvel jelzed pl: szsor(,n=17,d=8) vagy így szsor(a(1)=23,,d=8). Elõre is köszi Üdv Imre
Lehet a nargs változóval ellenõrizni a paraméterek számát. Az args változó pedig az átadott paramétereket listában adja vissza. Az alábbi eljárás 3 bemenõ szám paraméter esetén azok összegét adja vissza, 2 paraméter esetén azok különbségét, egyébként pedig figyelmeztetõ szöveget ir ki és NULL-t ad vissza. Az andmap(type,...) parancssal egy parancsban lehet az összes bemenõ paraméterre a tipusvizsgalatot elvegezni, és ezek logikai eredményeinek és kapcsolatát adja vissza.
szamok:=proc(A,B,C) if nargs=3 and andmap(type,[args],numeric) then return A+B+C; elif nargs=2 and andmap(type,[args],numeric) then return A-B; else print("Ervenytelen bemeno adatok!");return NULL; end if; end proc;
Sziasztok. Megint én vagyok. Szeretnék írni egy eseményt aminek 3 bemenõ paramétere van pl: A,B,C valami:=proc(A,B,C)... end proc. És azt szeretném, hogyha bármelyik paraméter hiányzik, akkor a másik kettõbõl számol. Azt nem tudom, hogy milyen típust adjak meg, vagy hogy ellenõrizzem a paraméterek hiányát, mert a maple-ben nem lehet úgy megadni az eseményt, mint a visual basicben, hogy ha a példánknál maradva: valami(,3,5) vagyis vesszõvel jelezni a hiányzó paramétert. Próbálkoztam a _params, és a _passed környezeti változóval, de valahogy nem értem el vele sikert. Egyébként a bemenõ 3 paraméter számot kér És ezekre nem lehet a NULL értéket adni. Ha pedig az A::anything:=NULL értkéte adom meg alapértéknek és pl így írom be: valami(A,3,5) akkor hibát ír ki mivel az "A"-paraméter alapértékként a NULL van megadva. Ebben kérném a segítséget. Remélem érthetõ volt. A lényeg: Az esemény struktúrája, most lényegtelen. 3 szám típusú bemenõ paraméter és a 3-ból bármelyik nincs megadva, akkor a másik kettõbõl számol. Várom mielõbbi válaszotokat. Üdv Imre
Sziasztok. Tudna nekem segíteni valaki? Nem indul el a Maple 17 pedig korábban elindult az ikonra való klikkelés után. Nem tudom mennyire segít, de a maplew.exe fájl 411kbyte. Lehet, hogy ez a baj? Pedig újra raktam a progit. Köszönöm.
Sziasztok. Tudtok segíteni abban, hogy mi a különbség az alias(), és a macro() parancs között, mert amikor az alias(y1=y[1]) parancsot használtuk ugyan azt kaptuk eredményül mint a macro() parancsnál. Akkor mikor melyiket kell/jó használni? Elõre is köszönöm.
Az ExcelTools[Export] paranccsal excel fájlba lehet menteni tömböket, mátrixokat programból is. Lásd a súgóban.
Olyan parancs nincs, amivel elõre meg lehet tudni, meddig fog futni egy program.
Ha esetleg lassan fut egy eljárás, akkor érdemes lehet a debug-golni, és megvizsgálni, hogy futáskor mely részei mennyi erõforrást, mennyi idõt igényelnek futás közben. Erre a showstat parancs alkalmas. A súgóban szintén van példa erre.
Van egy másik kérdésem is. Valahogyan meg lehet csinálni, hogy a program a végeredményeket automatikusan lementse valamilyen tárhelyre? Ami jelenleg a legfontosabb lenne nekem, hogy a végeredményként kapott mátrixokat pl. excell-be ki tudjam menteni.
Valahogyan meg lehet tudni egy programról, hogy várhatóan mennyi ideig fog futni? Van valamilyen parancs, vagy program, ami felméri ezt?
A komponensek elérhetõk programozottan, és beállíthatóak a tulajdonságaik is.
Ha van a munkalapon pl. egy Slider0 nevû csúszka, akkor a maximális értéke így állítható be az upper tulajdonságával pl. 50-re:
DocumentTools[SetProperty](Slider0,upper,50);
A minimális értéke a lower tulajdonságával állítható.
A Maple újabb verzióban találhatóak ún. komponens elemek is (csúszkák, gombok, stb.). Egy számításomban több eredmény is található, melyeket nagyon szépen meg lehetne jeleníteni úgy, hogy a csúszka segítségével lépve mindig a következõ eredmény látszik a diagramon. Ezt szépen meg is tudtam oldani, viszont akad egy problémám. Lehetséges, hogy késõbb jóval több eredményt szeretnék számítani, mint amire a csúszka maximális értékét beállítottam. Így a csúszkát mindig át kell programozni, hogy azt csak a maximális értékig lehessen léptetni. Lehetséges azt valahogyan automatizálni?
Ezek az egyenletek az ismeretlen változó függvényében sin és cos függvényt tartalmaznak, így nem várható, hogy a solve szimbolikus megoldást tud találni. Az fsolve paranncssal numerikus megoldást lehet keresni. Az fsolve paraméterezhetõ úgy, hogy a változókra megadjuk a megoldások lehetséges tartományát vagy kiindulási értéket,stb. Az fsolve-val egyszerre csak egy megoldáskombinációt fogunk a változókra kapni, és ha több megoldás is van, akkor ezt az fsolve-ban újabb tartomány megadásával vagy az avoid kulcsszót felhasználva kereshetjük meg (az avoid-dal kizárhatjuk a megoldás keresése során a korábbi megoldásokat).
Ebben az esetben több megoldás is várható a sin cos függvények miatt.
Az fsolve-nál erõsebb numerikus egyenlet(rendszer) megoldó képességet a DirectSearch ingyenes Maple csomagban található (SolveEquations parancsa a csomagnak). Érdemes lehet ezzel is próbálkozni. Innen letölthetõ a csomag: http://www.maplesoft.com/applications/view.aspx?SID=101333
megint van egy Mapleben megoldandó problémám. Azt hiszem egyszerûbb lesz, ha leírom a teljes feladatot.
> restart; deg := (1/180)*Pi; rad := 180/Pi; #deg és rad függvények csak a szög átváltására szolgálnak. > x0 := (1/2)*s1-u*sin(alpha); y0 := u*cos(alpha); z0 := 0; #koordináták az S0 rendszerben > phi := (y0-R*(1-cos(psi))/cos(psi))/(r*tan(alpha))-x0/r; > X := r*phi+x0; Y := r-R*(1-cos(psi))+y0*cos(psi)-z0*sin(psi); Z := R*sin(psi)+y0*sin(psi)+z0*cos(psi); #fenti koordináták az Sf központi koordináta rendszerbe áttérve > x1k := X*cos(phi)-Y*sin(phi); y1k := X*sin(phi)+Y*cos(phi); z1k := Z; #újabb áttérés az S1 rendszerbe, melyben a tényleges vizsgálatot végezzük > x1 := 2; y1 := 60; z1 := 0; #az S1 rendszerben az ismert koordináták (egy másik levezetésbõl kapott eredmények) > s1 := 4; r := 60; R := 100; alpha := 20*deg; #ismert adatok megadása > egy1 := x1 = x1k; egy2 := y1 = y1k; egy3 := z1 = z1k; > fsolve({egy1, egy2}, {psi, u}); > assign(%); > egy3;
Mint látható egy levezetés után kapok három egyenletet, melyben összesen két ismeretlen van (u, psi). Ezeket akarom meghatározni két egyenlet segítségével, majd a harmadikat ellenõrzésnek használom fel. A probélám viszont az, hogy a harmadik egyenlet sehogyan sem jön ki (az egyenlet két oldala nem egyforma). Próbáltam sima solve paranccsal is megoldani, ekkor a következõ hibaüzenetet kaptam: "Warning, solutions may have been lost". Fsolve-val kapok valami eredményt, de mint már mondtam, az nem jó.
Bármilyen ötlet, vagy megoldás erre?
Megjegyzés: késõbb a fenti egyenletrendszert többször kell majd több bemenõ adat mellett megoldanom, de addig nem látom értelmét, hogy ezt felállítsam, amíg egy adat esetén sem mûködik az.
Elõre is köszönöm a segítséget. További szép napot!
1. Egy ötlet:lehetne pl. programozottan beállítani a görbék ábrázolási tartományát, a két görbe adott pontjai közti eltérés alapján számítva. De jobb lenne, ha adnál erre egy konkrét példát, milyen görbéket kell ábrázolni.
2. kérdéshez: Az egyik megoldás, ha a változónevekbõl tömböt csinálsz (M[1], M[2]), de a Maple-ben lehetõség van arra is, hogy programozottan új változónevet hozzunk létre pl. szimbólum és szám összerakásával: azaz M1, M2,... nevek jöjjenek létre. Ehhez a cat parancs is használható,pl.
restart; N:=10;# 10 db tömb létrehozása M1, M2, M2... M10 nevekkel. a:=rand(1);a(); for i from 1 to N do cat(`M`,i):=Array(1..5,fill=rand()): end do: M1[1];M2[1..];# hivatkozás a tömbök elemeire.
néhány újabb kérdésem merült fel a Maple-lel kapcsolatban.
1. Egy vizsgálat során kiszámoltam két görbét, majd ezeket egy közös rendszerben ábrázolva vizsgáltam a különbséget köztük. A fõ problémám az volt, hogy a különbség nagyon kicsi, így csak nagy nagyítás után látható az. A gondom az, hogy program futása után mindig az egész görbe látszódik, és nekem manuálisan kell a zoomolást beállítanom. Próbáltam a plot parancsba megadni, hogy csak egy kiemelt részt ábrázoljon, de ezzel sem jutottam elõrébb. Két bajom volt a zommolással: 1. csak a koordináta rendszer egy fix pontjára tudtam ráközelíteni, de ha megváltoztatom a peremfeltételeket, akkor a görbe már nem ott található (ki megy a képbõl)., 2. a kép mindig aránytalan volt, az arányok valahogy mindig elvesztek.
Tudnátok mondani pár ötletet, hogy hogyan tudom beállítani a megjelenítést?
2. A másik gondom egy teljesen másik számítással kapcsolatos. Végig futtatok egy számítást, melyben a végeredményeket array-ekben mentem le (nagy adatmennyiség miatt). Miután megkaptam az eredményeket egy kezdeti értéket léptetve újra számolom azt. Nekem az lenne a legjobb megoldás, ha ezeket külön tömbökben mentené le a program, lehetõleg a nevük léptetésével. Pl: M1, M2, ... ahol M1...Mn mindegyike egy-egy array, ugyan azon számítással kapott eredményekkel.
Remélem érthetõ voltam.
A segítséget elõre is köszi.
Nem világos, mi a feladatod. Ez a kifejezés egy Fourier-sor, illetve annak h darab tagig vett részösszege. A Fourier-sorral közelíthetsz függvényeket (bizonyos feltételek teljesülése esetén). A Fourier-sor kifejezésében szereplõ a és b együtthatókat elõször ki kell számolni a konkrét közelítendõ függvény ismeretében (integrálás). Lásd a wikipédián a Fourier-sor címszót.
Sziasztok! Egy kis segítség kellene. Kapta az egyik ismerõsömtõl egy matematikai feladatot de sajnos nem jutok dûlõre. f := proc (x) options operator, arrow; a[0]+sum(a[n]*cos(n*Pi*x/L)+b[n]*sin(n*Pi*x/L), n = 1 .. h) end proc A solve() nem ad megoldást. Tud valaki segíteni ebben. Ui: Sajnos instrukciókat nem kaptam a feladattal kapcsolatban. Elõre is köszönöm.
Pl. a zip parancs segítségével:
X:=array([1,2,3,4,5]);# Array is lehet, az újabb verziókban. Y:=array([1,4,9,16,25]); XY:=zip((x,y)->[x,y],X,Y); plot(XY);
Egy gyors kérdésem lenne a Maple-lel kapcsolatban. Egy számítás két eredményét (ill. eredményeit) két array-ben mentettem le. Ezeket szeretném egymás függvényében ábrázolni. Gyakorlatilag a két array megfelelõ eleme összetartozó értékpárok. Ezt az ábrázolást egy excel segítségével könnyen meg lehetne csinálni, de nem akarom átírogatni az eredményeket, ha nem muszáj :)
Tudnátok segíteni ebben?
A Segítséget elõre is köszönöm!
A checkboxargs a `student/checkboxargs`() formában továbbra is elérhetõ.
A finduni a grobner csomag része, be lehet tölteni és használni, de már az újabb Groebner csomagot ajánlott használni helyette. A finduni parancs helyett a Groebner csomag UnivariatePolynomial parancsát ajánlja a Maple.
with(grobner); finduni(x,[x^2-y^2-1,x^2*y]);
Warning, grobner[finduni] is deprecated. Please, use Groebner[UnivariatePolynomial].
Sziasztok! Úgy látszik csak én kérdezgetek már megint. A maple korábbi verziójában benne van egy - vagy több - utasítás, ami a pl. a maple 16-ban nincs benne ilyen utasítás a finduni() vagy a student csomag checkboxargs utasítása is. Ezeket hogy lehet helyettesíteni?
A simplify(expr, 'symbolic') formálisan egyszerûsíti a megadott kifejezést, azaz nem ellenõrzi, hogy érvényes-e az egyszerûsítés a kifejezés minden lehetséges értékére. Pl. az sqrt(x^2) kifejezést akkor szabad formálisan x-é egyszerûsíteni, ha x valós, nemnegativ szám, emiatt a sima simplify nem fogja azt x-é alakítani.
simplify(sqrt(x^2));# az eredmény x elõjelétõl függ.
# A simplify a symbolic opcióval elvégzi az formális egyszerûsítést: simplify(sqrt(x^2),'symbolic');
A simplify(expr, size) egyszerûsítõ parancs megpróbálja, olyan módon átalakítani a kifejezést, hogy az minél kisebb méretû, rövidebb legyen:
Sziasztok. Lenne egy kérdésem, bár nem nagyon merem feltenni a kérdést. Azt szeretném tudni, hogy a simplify(expr, 'symbolic') és a simplify(expr, size) utasításokat mikor kell alkalmazni vagyis mi a különbség? Elõre is köszönöm. Ui: Sajnos még mindig nem vagyok nagy maple felhasználó. Üdv Imre
A programkód szerkesztési problémára megoldás még az újabb Maple verziókban megjelent Code Edit region-t használata, amit az Insert - Code Edit Region-nal kell beszúrni a munkalapra, és ebbe a dobozba a szokásos módon lehet gépelni, azaz az enter-re új sort kezd és nem hajtja végre illetve, használható benne a tab is igazításra. Ebbe a dobozba lehet a programkódot megadni. Ahhoz, hogy értelmezze a Code Edit region-ba begépelt kódot a Maple, a a dobozban állva, a jobb egérgombra kattintva végre kell hajtatni (Execute Code) a Code Edit Region-t.
A programozási problémád megoldható, ha külön eljárásba teszed a hosszú számításokat és ezt eljárást újra meghívod a megnövelt értékû változóval. Ugrálni a programban nem "illik" általában, mert átláthatatlanná teszi a mûködését.
Az alábbi programszerkezettel megoldható a feladat: az ismétlõdõ számításokat egy külön eljárásba tenni és ezt meghívni a megnövelt értékekkel egy ciklusban a fõeljáráson belül.
fõeljárás:=proc(valtozók listája)
local valtozo1, valtozo2, eljaras1;
eljaras1:=proc(..) ... end proc;
valtozo1:=kezdõérték;
valtozó2:=eljaras1(valtozo1);
while valtozó2<0 and ... do valtozo1:=valtozo1+1; valtozó2:=eljaras1(valtozo1); end do;
Igen, a shift+enter-t ismerem, viszont az még mindig nem teszi átláthatóbbá a programomat.
Alapvetõ baj: van egy alapadatom, amit gyakorlatilag a felada legelején ki kell számolom. Utána meg jön 10 oldalnyi egyéb, ami szintén ettõl az alapadattól függ. Vagyis ha valami nem jó, akkor ide kell visszatérni, és megnövelni az értékét.
A fõ gondom most az, hogy vagy 10 oldalt teszek be egy darab ciklus alá (ez lényegében teljesen mindegy, hogy for, if vagy proc), vagy pedig minden adat számolását min. 2-szer adok meg.
Lehetõleg mindkettõt me akarom spórolni. Ezért lenne nekem a legjobb valami olyan parancs, ami a számolást automatikusan visszaküldi az elejére. Ilyen nincs semmi?
A shift enter-rel lehet olyan új sort létrehozni, amely nem minõsül külön parancssornak, így a for ciklust is több sorba lehet tagolni.
Az ismétlõdõ programrészekre érdemes külön eljárásokat (proc) létrehozni. Ezek egymásba is ágyazhatóak, azaz egy fõprogramban (eljárásban) lehet több alprogramot (eljárást) definiálni és használni.
Megint lenne pár kérdésem a maple-lel kapcsolatban.
Megpróbáltam egy optimáló programot írni magamnak, amelyben egy iterációs számítást végez el a program. Viszont egy-két elvi kérdésben megakadtam.
A számítás elég sok lépésbõl áll. Úgy vettem észre, hogy egy for vagy if ciklus csak akkor mûködik, ha az egy sorban (egy ">" jel mögött) helyezkedik el. Így viszont baromira átláthatatlan a program. Ezt meg lehet valahogy bontani?
Másik kérdésem, hogy egy ilyen ciklus után meg lehet adni valahogy, hogy korábbra térjen vissza a program? (pl. az if ciklusban kapok egy negatív eredményt, ekkor térjen vissza a program elejére, és kezdje újra a számításokat pl. növelt értékekkel)
Gondolkoztam azon is, hogy esetleg szétszedem a programot több "alcsomagra", vagyis külön-külön megírom a részeket, amiket a fõ program csak behív magának, és a másik részben végzi el a számításokat. Ezt hogyan lehet jól megoldani?
A segítséget elõre is köszönöm.
PS: Bocsi, hogy a programot nem írom le, de elég hosszú.
Köszi a segítséget, viszont egy apró hibát észrevettem a programodban. A párosra kerekítés esetén nekem mindig felfelé kell kerekítenem, és a te esetedben ez nem teljesült. Ráadásul ha már 24.6-ot adok meg 24.5 helyett, akkor 25-öt ad eredményül, ami nekem nem jó.
A párosra történõ kerekítést szerintem kétféleképpen lehet megoldani. Vagy az utolsó, 5-re, vagy 0-ra történõ kerekítést használom fel, csak 2-re:
> kerekparos := proc (x) if is(ceil(x), even) then return ceil(x) else ceil(x+1) end if end proc; > kerekparos(23.8); > kerekparos(24.5);
Gyakorlatilag a te progidat javítottam kicsit. A segítséged nélkül biztos, hogy nem tudtam volna megcsinálni. Még egyszer köszi a segítséget :)
1. A beépített round függvénnyel: round(3.5);
2. A ceil (plafon) függvénnyel: ceil(3.4);
3. Pl. az alábbi függvény definiálásával:
kerekpáros:=proc(x)
if abs(frac(x))=0.5 then if is(ceil(x),even) then return ceil(x) else return floor(x); end if; end if; round(x); end proc;
kerekpáros(23.5); kerekpáros(24.5);
4. Pl az alábbi függvénnyel, amellyel második paramétereben megadott szám egész számú többszörösére kerekíthetünk, ha ez 5, akkor a kérdezett feladatra megoldás:
Lenne megint egy kérdésem a Maple-lel kapcsolatban.
Hogyan lehet megoldani, hogy a program kerekítsen? Ráadásul több féle kerekítést is kellene alkalmaznom.
1. Alap kerekítés, matematikai szabályok szerint (.5-tõl felfelé) 2. Felfelé egészre. 3. Felfelé egészre és párosra 4. Felfelé, egészre, és úgy hogy a szám 5-re vagy 0-ra végzõdjön (pl: 52,3 esetén 55 legyen, vagy 55,6 esetén 60 legyen a szám)
Ötletek?
Igazából egyszerûbb módszer nincs. A szögek átszámításához használhatóak a convert( , degrees) és a convert( , radians), illetve a convert( , 'units', 'radians','degrees') parancsok:
convert(30*degrees,radians);
convert(Pi/6,degrees);
sin(convert(30*degrees,radians));
vagy így is át lehet alakítani:
convert(Pi/2, 'units', 'radians','degrees');
Másik módszer, ha a mértékegységek csomagot betöltjük:
A második kérdésre megtalálta a választ: csak lefelejtettem az if ciklus végérõl az "end if" befejezést :)
Sziasztok,
Két dolgot szeretnék kérdezni. Az egyik, hogy van-e valamilyen beépített modul a Maple-ben, amivel a szögeket át lehet számolni radiánból fokba? Írtam egy kisebb programot, abban én úgy oldottam meg, hogy definiáltam két függvényt:
Így már könnyedén megadható egy szögérték bemenõ pl. bemenõ adatként fokban. Pl:
beta := 30*deg:
Valami egyszerûbb megoldás létezik?
A másik kérdésem szintén ugyan ehhez a programhoz kapcsolódik. Meg kell határozni két szöget, majd ezt a két szöget kell egymáshoz viszonyítani. A végeredményt egy "if" függvénnyel akartam kiíratni, hogy megfelel-e vagy sem. Leírom a program adott részét, hogy érthetõ legyen.
>deg := (1/180)*Pi: rad:= 180/Pi; beta := 30*deg; > `μt` := .2; tenyezo := .4; mu := `μt`*tenyezo; > `μv` := evalf(mu/cos((1/2)*beta)); > `ρv` := arctan(`μv`); `ρvdeg` := evalf(`ρv`*rad); > i := 1; > alpha := arctan(i*P/(d2*Pi)); `αdeg` := evalf(alpha*rad); > a := evalf(`ρvdeg`-`αdeg`); > if rhovdeg>alphadeg then print (megfelel) else print(nem felel meg);
Az utolsó sor után a következõ hibaüzenetet kapom: "Error, unterminated 'if' statement"
Valami megoldás?
Azzal ideiglenesen azzal feloldottam a problémát, hogy a két szöget kivontam egymásból, és figyelem, hogy pozitív, vagy negatív-e, viszont feliratokkal csak elegánsabb lenne :)
PS: remélem érthetõ volt a progi, nem tudom, hogy miért vágta teli ilyen idióta jelekkel, de lusta vagyok, hogy minden kitörölgessek :)
Ez egy egyszerû függvény, az abszolút érték függvénybõl elemi transzformációkkal megkapható az ábrája. És ebbõl megválaszolhatók a kérdések.
De ha mégis Maple-ben kell :
restart; f:=x->-2*abs(x-2)+5;
plot(f);# Elõször érdemes mindig felrajzolni a függvényt.
solve(-2*abs(x-2)+5=0,x);# nullhelyei
fsolve(-2*abs(x-2)+5=0,x=-10..10);# vagy a numerikus gyökkeresovel.
A maximum értéke, helye így is kereshetõ, megadott x tartományban:
maximize(-2*abs(x-2)+5, x=-10..10,location);
Van a Maple-ben beépített függvényvizsgáló tutor is. Ez menübõl is elindítható, vagy az alábbi módon: Meg kell adni a vizgálandó függvényt, és a vizsgált értelmezési tartományt! pl. a=-5 b=5 ebben az esetben. Ezen belül keresi a maximumot, nullhelyeket stb. A számolandó paramétert ki kell választani az ablakban, és a Calculate gombbal indítható a számítás.
Sziasztok. Egy kis segítséget kérnék. Kaptam egy feladatot: f(x)=-2*abs(x-2)+5 Van-e a valós számokon értelmezett f(x) függvénynek minimuma? Melyik ez a szám? maximuma? ------||--------? Hol van a szélsõérték helye x ben? Mennyi ez a szélsõérték? Hol vannak a függvény zérushelyei? Nekem erre a solve() utasítás nem adott választ, sõt a min(), max()-ra sem kaptam választ. Ebben kérném a segítségeteket. Elõre is köszönöm
Az apply command-nál be kell gépelni a kívánt maple parancsot, és ha van a paramétereit is. pl. (x+y)^3; Ha erre a kifejezésre jobb klkkelsz és a "Apply a Command-to választod, akkor a megjelenõ ablakban pl. az expand parancsot begépelve elvégzi az expand mûvelet a fenti kifejezésen.
Szeretnék megint kérdezni valamit. Azt szeretném tudni, hogy hogy kell használni a Jobb klikk és abban lévõ "Apply a Command" és a "Map Command Onto" parancsokat. Elõre is köszönöm
Kedves xDJCx. Megnéztem a GF parancsot. És ezzel tényleg lehet készíteni véges testet. Viszont nem teljesen világos még a használata a help alapján sem. Esetleg tudna errõl mondani pár szót?
Sziasztok Egy olyan kérdésem lenne, hogy Mapleben, hogy lehet béges testeket létrehozni? PL én egy 16 és egy 17 elemû véges testek akarok kreálni. Ezután az összes pontpárt akarok elkészíteni, melyek a véges testbõl a véges síkot képezik. Ezt hogy tudnám megcsinálni? Az a baj, hogy ötletem sincs hogy induljak el. :( Elõre is köszönöm a segítséget.
Köszi a segítséget, így már tényleg megcsinálta a szükséges számításokat. Ha még lesz valami problémám a programmal, akkor írok :)
Úgy tûnik, a Maple-nek az indexelt változónevekkel van itt gondja. Próbáld meg, úgy levezetni F kifejezését, hogy ott ahol nem valódi indexelésre használod az indexes jelölésmódot, ott lecseréled a változó nevét index nélkülire. pl. r[1] helyett r1, vagy v[rel] helyett vrel. Maple megpróbálja igazi indexként értelmezni az indexelt változónevekben szereplõ nem igazi indexeket, és ez valahol zavart okoz.