Opdateret 19. marts 2025
Indsæt følgende Maple-kode i starten af dit Maple-dokument. Så skulle det kunne regne med `kemiske' enheder´ – dvs. basalt set SI-enheder, men masse i gram, volumen i liter og koncentration i mol pr. liter. Desuden vil Maple forstå 'mpl' som 'mol/L' og man vil kunne vælge ᴍ som symbol.
Bemærk, at det ikke er muligt at bruge 'M' (almindeligt M) som enhed i input.
Units[AddSystem](chemistry, g, L, mol/L, g/L, bar, L/mol, L*bar/(mol*K), check = true);
Units[AddUnit](molar, symbol = `ᴍ`, spelling = mpl, conversion = mol/L, default = false, check = true)
Har man tillige brug for at bruge en enhed afledt af ᴍ – mᴍ og µᴍ – kan man indsætte følgede
Units[AddUnit](millimolar, symbol = `mᴍ`, spelling = mmpl, conversion = 1e-3*mol/L, default = false);
Units[AddUnit](micromolar, symbol = `μᴍ`, spelling = mumpl, conversion = 1e-6*mol/L, default = false);
Man kan nu bruge enhederne 'mmpl' (millimolær, 10-3 ᴍ, 10-3 mol/L) og 'mumpl' (mikromolær, µᴍ10-6 ᴍ, 10-6 mol/L).
Det er muligt at få Maple til at indlæse naturkonstanter. Først må man finde den ønskede naturkonstant på http://www.maplesoft.com/support/help/Maple/view.aspx?path=ScientificConstants%2fPhysicalConstants, og derefter tilordne det til en variabel i Maple.
Herunder er der vist, hvordan man kan få defineret hhv. Boltzmanns konstant, Avogadros konstant og gaskonstanten:
k__B := evalf(ScientificConstants[Constant](Boltzmann_constant, units)): ## Boltzmanns konstant
N__A := evalf(ScientificConstants[Constant](Avogadro_constant, units)): ## Avogadros konstant
R := evalf(ScientificConstants[Constant](molar_gas_constant, units)): ## Gaskonstant
Herefter kan man bruge NA eller N__A for Avogadros konstant.
Herunder findes nogle flere. PJ udbygger løbende listen.
c := evalf(ScientificConstants[Constant](speed_of_light_in_vacuum, units)): ## Lysets fart i vakuum
h := evalf(ScientificConstants[Constant](Planck_constant, units)): ## Plancks konstant
epsilon__0 := evalf(ScientificConstants[Constant](permittivity_of_vacuum, units)): ## Vakuum-permitiviteten
k__c := 1/(4*Pi*epsilon__0): ## Coulomb-konstanten (afhænger af ovenstående)
G := evalf(ScientificConstants[Constant](Newtonian_constant_of_gravitation, units)): ## Newtons grav. konst.
e := evalf(ScientificConstants[Constant](elementary_charge, units)): ## Elementarladningen
m__p := evalf(ScientificConstants[Constant](proton_mass, units)): ## Protonens masse
m__n := evalf(ScientificConstants[Constant](neutron_mass, units)): ## Neutronens masse
m__e := evalf(ScientificConstants[Constant](electron_mass, units)): ## Elektronens masse
R__J := evalf(ScientificConstants[Constant](radius_of_Earth, units)): ## Jordens radius
M__J := evalf(ScientificConstants[Constant](mass_of_Earth, units)): ## Jordens masse
M__S := evalf(ScientificConstants[Constant](mass_of_Sun, units)): ## Solens masse
a__0 := evalf(ScientificConstants[Constant](Bohr_radius, units)): ## Bohr-radius
sigma := evalf(ScientificConstants[Constant](Stefan_Boltzmann_constant, units)): ## Stefan-Boltzmanns konstant
Er du træt af at skulle skrive
pH:=log10(0.025)
når du hellere vil kunne nøjes med at skrive
pH:=log(0.025)
(men det kan man jo ikke, så beregner man pH:=ln(0.025), og det er jo ikke rigtigt) så kan du starte med at skrive
Log := proc (x) simplify(evalf(log10(x))) end proc: #
Du kan nu skrive
pH:=-Log(0.025)
i stedet for. Det er da (en lille smule) lettere.
Man kan også omdefinere log til at betyde det sædvanlige
local(log):
log := proc (x) log10(x) end proc: #
men det er vist at gøre vold på systemet...
... kan du skrive
lg := proc (x) Log(x/Unit('mpl')) end proc: #
Nu kan du bruge Log til almindelige tal og lg til koncentrationer med enhed; dvs. du kan nu skrive
pH:=-lg(0.025ᴍ)
forudsat man har anvendt og defineret enhederne korrekt (Se ovenfor).
Har man set, at 'solve' giver et meningsfyldt svar, kan man erstatte 'solve' med 'psolve', der kun returnerer ikke-negative løsninger.
'psolve' er defineret som følger:
psolve := proc(e, v) (solve(e, v, useassumptions) assuming '0 <= v'); end proc: #
### Følgende er hentet på
### https://sites.google.com/a/apps.odder-gym.dk/kemi-paa-odder-gymnasium/materialer/maple
## Nyt enhedssystem og nye basisenheder
Units[AddSystem](chemistry, g, L, mol/L, g/L, bar, L/mol, L*bar/(mol*K), check = true);
Units[AddUnit](molar, symbol = `ᴍ`, spelling = mpl, conversion = mol/L, default = false, check = true);
Units[AddUnit](millimolar, symbol = `mᴍ`, spelling = mmpl, conversion = 1e-3*mol/L, default = false);
Units[AddUnit](micromolar, symbol = `μᴍ`, spelling = mumpl, conversion = 1e-6*mol/L, default = false);
## Nye logaritmer
Log := proc (x) simplify(evalf(log10(x))) end proc: #
lg := proc (x) Log(x/Unit('mpl')) end proc: #
## Variant af 'solve' med kun ikke-negative løsninger
psolve := proc(e, v) (solve(e, v, useassumptions) assuming '0 <= v'); end proc: #
Undertiden kan det være irriterende, at Maple konstant vil regne med π symbolsk, når det man gerne vil have er et tal. Følgende introducerer pi som et decimaltal
pi:=evalf(Pi):
... eller på den helt hårde måde, hvis ovenstående ikke giver det ønskede...
pi:=3.14159265359:
Undertiden driller Maple, når man vil indsætte en ny linje. Dette kan især være, når man gerne vil have en ny linje i begyndelsen af sit dokument. Man kan da taste Ctrl-Shift-k. Det giver en blank (matematik-)linje over den linje, som man pt. arbejder på.
Ctrl-Shift-j giver en ny linje under den linje, som man pt. arbejder på.
Kan findes i paletten “Operators”.