625
A Maple egy fejlett matematikai problémamegoldó és programozói szoftver.
-
xDJCx #585
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.
-
Kele85 #584 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. -
Kele85 #583 Valahogyan meg lehet tudni egy programról, hogy várhatóan mennyi ideig fog futni? Van valamilyen parancs, vagy program, ami felméri ezt? -
xDJCx #582 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 csúszka aktuális értékének kiolvasása:
DocumentTools[GetProperty](Slider0,value); -
Kele85 #581 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? -
xDJCx #580
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
-
Kele85 #579 Üdv,
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!
-
xDJCx #578
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. -
xDJCx #577
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.
-
Kele85 #576 Üdv,
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. -
xDJCx #575
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.
-
GImre70 #574 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. -
xDJCx #573
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);
-
Kele85 #572 Üdv,
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! -
xDJCx #571
A checkboxargs a `student/checkboxargs`() formában továbbra is elérhető. -
xDJCx #570
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].
-
GImre70 #569 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?
-
xDJCx #568
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:
e1 := 1/4*exp(-1/4*x^2)*2^(1/4)*x^(3/2) +1/8*exp(1/4*x^2)*2^(3/4)*sqrt(x)*sqrt(Pi)*erf(1/2*sqrt(2)*x) +1/8*exp(1/4*x^2)*2^(3/4)*x^(5/2)*sqrt(Pi)*erf(1/2*sqrt(2)*x):
simplify(e1);
simplify(e1, size);# rövidebb alak
-
GImre70 #567 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 -
xDJCx #566
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;
...
end proc;
-
Kele85 #565 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? -
xDJCx #564
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. -
Kele85 #563 Üdv!
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ú. -
Kele85 #562 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:
Kerekfel50 := proc (x, y)
ceil(x/y)*y end proc;
Kerekfel50(23.5, 2);
Kerekfel50(24.5, 2);
vagy a következő program segítségével:
> 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 :)
-
xDJCx #561
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:
Kerekfel2:=proc(x,y)
ceil(x/y)*y;
end proc;
Kerekfel2(52.3,5);
Kerekfel2(55.6,5);
-
Kele85 #560 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? -
xDJCx #559
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:
restart;
with(Units[Standard]):
sin(30*Unit(degrees));
-
Kele85 #558 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 :) -
Kele85 #557 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:
deg := Pi/180: #rad átszámítása fokba
rad := 180/Pi: #fok átszámítása radiánba
Í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 :)
-
xDJCx #556
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.
Student[Calculus1][CurveAnalysisTutor](-2*abs(x-2)+5);
-
Gimre #555 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 -
xDJCx #554 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. -
Gimre #553 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 -
petinho26 #552 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? -
xDJCx #551 Nem sajnos. Csak kipróbáltam egyszer-kétszer. -
polarka #550 A Mathematica-ban is otthon vagy? -
xDJCx #549
Nem vagyok otthon az absztrakt algebrában, próbáld meg a Maple GF (Galois Field)parancsát.
?GF -
petinho26 #548 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. -
Kele85 #547 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 :) -
xDJCx #546
Ú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.