Til alle dem der savner Gym-pakken.
Læg MichaelPakken.mla
og evt. også MichaelPakken.help
og Integrator8.mw
ind i Maples lib-mappe.
Stien til lib-mappen kan findes ved at skrive libname
i en matboks i Maple.
På Windows kan den f.eks. hedde C:\Program Files\Maple 2020\lib
.
På MacOS kan den hedde /Library/Frameworks/Maple.framework/Versions/2020/lib
.
MichaelPakken.mla
gør det muligt at kalde almindeligt brugte funktioner, se en oversigt nedenfor.
MichaelPakken.help
gør det muligt at søge igennem alle Mapledemoerne med Maples søgefunktion eller ved at skrive ?søgeord
i Maple. Der ligger også dokumentation for nogle af funktionerne i Michael-pakken. Hvis man ikke søger på det præcise navn for Mapledemoen er det meget sandsynligt, at nogle andre hjælpesider åbnes op først. I så fald kan man rulle ned til 'User Help' ude i siden af Maples søgevindue, og se hvilke hjælpefiler, der ligger dér.
Pakken loades ved at skrive with(Michael)
i en matboks.
Hvis du ønsker at pakken skal loades automatisk hver gang Maple startes (og hver gang der køres en restart) kan du tilføje with(Michael)
til Maples initialiserings-fil.
På Windows er den fulde sti til .ini-filen C:\Program Files\Maple 2020\Users\maple.ini
.
På MacOS er den /Library/Frameworks/Maple.framework/Versions/2020/lib/init
(bemærk ingen file extension).
Filen kan oprettes hvis den ikke findes i forvejen. Filen kan redigeres i Notepad el.lign..
Næsten alle vektorfunktioner fungerer også, hvis der passes en liste eller mængde i stedet.
- vop(x): Udtager elementerne fra en vektor (en generalisering af op).
- prik(x,y): Udregn prikprodukt mellem vektorer.
- prikc(x,y): Udregn det standard hermitiske indre produkt mellem vektorer (dvs. prik inkl. konjugering).
- kryds(x,y): Udregn krydsproduktet mellem 3D-vektorer.
- rum(x,y,z): Rumprodukt mellem 3 3D-vektorer.
- længde(x): Beregner alm. Euklidisk længde af en vektor.
- længdec(x): Beregner alm. Euklidisk længde af en vektor med kompleks konjugering.
- grad(expr,variabel_liste): Beregner gradienten af en vektor med hensyn til angivne variable.
- det(A): Kort for LinearAlgebra[Determinant](A).
- div(V): Divergens for vektorfelt (V skal være en funktion, ikke et udtryk, altså f.eks.
V
ikkeV(x,y,z)
). - rot(V): Rotation for vektorfelt.
- Hessematrix(expr, variabel_liste): Beregner Hessematricen.
- GetJacobi(parameterfremstilling, variabel_liste): Beregner Jacobi for en parameterfremstilling. Finder selv ud af, hvilken slags Jacobi-fkt., der er tale om. Intervallerne for de variable kan evt. angives i variabel_liste, og så simplificerer den udtrykket (f.eks.
[u=0..1, v=0..2*Pi]
) - TrappeMetode(V): Beregner kurveintegralet af V fra origo til et vilkårligt punkt (x,y,z). Det kan nemt tjekkes om V er et gradientvektorfelt ved at beregne grad(TrappeMetode(V),variabel_liste), og se, om det er det samme som V.
- Diagonalize(A): Laver unitær diagonalisering af A (returnerer Q og Lambda, så
A=Q.Lambda.Transpose(Q))
. Man kan tilføjeunitarily = false
for at lave ikke-unitær diagonalisering, såA = Q.Lambda.Q^(-1)
, ogpositive = false
for at den ikke nødvendigvis skal returnere en Q med positiv determinant. - Stamvektorfelt(V): Beregner stamvektorfeltet W til V (dvs. et vektorfelt så rot(W)=V) vha. formlen fra Opg 6. store dag uge F13. Hvis stamvektorfeltet ikke faktisk findes (dvs. hvis V ikke er divergensfrit) returnerer den stadig output fra formlen, men gør opmærksom på, at det ikke er et stamvektorfelt.
- vsolve(x=y, other_arguments): Løser en vektorligning, dvs. løser hver koordinatligning samtidigt.
other_arguments
er optional, og er en liste over andre ting, at sende videre tilsolve
f.eks.[{a,b}, explicit]
. - vintegrate(vektor, variabel): Integrerer en vektor, dvs. returnerer en ny vektor, der indeholder integralet af hver koordinat i den originale vektor. Variabel kan evt. være en liste af variable for dobbelt- og trippelintegraler, og kan evt. have intervaller på for bestemte integraler.
- MyConstants("symbol"): Giver hurtig adgang til de mest anvendte fysiske konstanter (mest rettet mod 10022), f.eks.
R := MyConstants("R")
Hvis man gerne vil tilføje noget til sin egen Michael-pakke, skal funktionerne skrives ind i 'MichaelPakken.mpl', laves om til en .mla-fil med Maples savelib
-kommando, og til sidst kopieres ind i lib-mappen. Den mest strømlinede måde at gøre det på er at bruge Maple-filen 'CreateMichaelPakke.mw', men den kræver at man downloader hele dette repository (se 'Til udviklere' nedenfor).
OBS: For at nedenstående virker skal hele repositoriet være gemt et samlet sted på computeren. Man kan passende bare synce med Git, så man også nemt kan hente den nyeste version eller uploade sine egne tilføjelser.
For ikke at behøve at kopiere MichaelPakken.mla og MichaelPakken.help til lib-mappen hver gang de opdateres, har jeg tilføjet flg. til min .ini-fil:
libname := "sti til Michael-pakken-mappe", libname
, dvs. stien til dette repository tilføjes til variablen libname
, som er den liste af mapper, Maple leder efter pakker i.
Når nye funktioner er skrevet gøres følgende
- Nye funktioner tilføjes som tekst i 'MichaelPakken.mpl' i modulet 'Michael'. Navnet på den nye funktion tilføjes til linjen
export
i toppen. - Filen CreateMichaelPakke.mw køres fra start til slut (den flytter den gamle MichaelPakken.mpl til mappen Legacy og gemmer en ny 'MichaelPakken.mla'-fil i hoved-mappen).
- Ændringerne comittes evt. med Git.
Nye hjælpefiler laves på følgende måde
- Skriv hjælpefilen, enten som .mw eller .txt
- Gem filen i MichaelPakken/Kodning/Help Database
- Kør anden sektion i CreateHelpDatabase, som tilføjer nye filer til databasefilen MichaelPakken.help
- Ændringer comittes evt. med Git
'RowOperationator' - laver flere RowOperations på én gang med simpel notation.
'vektorligning' Solve for alle koordinater på 1 gang.
Fra gympakken: Trigonometriske funktioner med grader