PK¬b‹TñB–Hmimetypetext/x-wxmathmlPK¬b‹Të©æRR format.txt This file contains a wxMaxima session in the .wxmx format. .wxmx files are .xml-based files contained in a .zip container like .odt or .docx files. After changing their name to end in .zip the .xml and eventual bitmap files inside them can be extracted using any .zip file viewer. The reason why part of a .wxmx file still might still seem to make sense in a ordinary text viewer is that the text portion of .wxmx by default isn't compressed: The text is typically small and compressing it would mean that changing a single character would (with a high probability) change big parts of the whole contents of the compressed .zip archive. Even if version control tools like git and svn that remember all changes that were ever made to a file can handle binary files compression would make the changed part of the file bigger and therefore seriously reduce the efficiency of version control wxMaxima can be downloaded from https://github.com/wxMaxima-developers/wxmaxima. It also is part of the windows installer for maxima (https://wxmaxima-developers.github.io/wxmaxima/). If a .wxmx file is broken but the content.xml portion of the file can still be viewed using a text editor just save the xml's text as "content.xml" and try to open it using a recent version of wxMaxima. If it is valid XML (the XML header is intact, all opened tags are closed again, the text is saved with the text encoding "UTF8 without BOM" and the few special characters XML requires this for are properly escaped) chances are high that wxMaxima will be able to recover all code and text from the XML file. PK¬b‹T¦á0u~ƒ~ƒ content.xml Ismerkedés a (wx)Maxima-val A következÅ‘ parancs célja, hogy beállítsuk az átmeneti fájlok tárolására használt könyvtár nevét úgy, hogy az ne tartalmazzon ékezetes karaktereket. Vigyázat! Ahogy az más, több operációs rendszeren is futó programoknál szokás, Windows alatt a könyvtárok neveit elválasztó "\" karaktert "/"-lel vagy "\\"-lel kell helyettesíteni! Az alábbi parancs változatlan formában csak a hallgatói kabinet számítógépein működik rendesen. maxima_tempdir : "C:/Users/Public/MaximaTEMP"; BevezetÅ‘ példa Hány gramm kristályvizes nátrium-tioszulfátot kell 100,00 g vízben oldani, hogy a nátrium-tioszulfátra nézve 24,00 tömegszázalékos oldatot kapjunk? Mr(Na2S2O3)=158,11; Mr(H2O)=18,02 Célszerű megoldás Játszani az fpprintprec-cel, a ratprint-tel és a ";" <> "$" cserével. fpprintprec:0;ratprint:true; Mrwater:18.02;Mrsalt:158.11;Mrwatersalt:Mrsalt+5*Mrwater; solve((Mrsalt/Mrwatersalt)*x/(100+x)=0.24,x); float(%[1]); rhs(%); sconcat(string(%)," g kristályvizes nátrium-tioszulfát szükséges."); Rövid megoldás float(rhs(solve(158.11/248.21*x/(100+x)=0.24,x)[1])); AlapvetÅ‘ műveletek fpprintprec:6$ Konvenciók, billentyűzet értelmezése, parancsok, elválasztó jelek A Maxima egy ún. CAS (Computer Algebra System) program, alapvetÅ‘en parancssoros üzemmódra. A wxMaxima egy grafikus felület a Maximához, a kettÅ‘ együtt már nagyon hasonlít a Matematica-hoz. 1-4. parancs(köteg): parancskiadás: ENTER és SHIFT-ENTER különbsége, sortörés jelentõsége, ";" és "$" határolójelek értelme, parancsok és eredmények elÅ‘tti jelek értelmezése. 1+1; 1+1;2+2;3+3; 4+4;5 +5; 1+1;2+2$3+3; 4+4$5 +5; 10*%; 10*%o1; %i1; 5. parancsköteg: Speciális állandók, valamint a float függvény ("%":Ans; "%pi": Ï€=3.14159..., "%e": Euler-szám=2.71828..., "%i": imaginárius egység= (-1)^0.5, "%i+n": pl. "%i34" a 34. kiadott parancs, "%o+n": pl. "%o34" a 34. kiadott parancs eredménye ) /A Maxima csak tizedespontot ismer, tizedesvesszÅ‘t nem!/, függvények, kisbetű/nagybetű érzékenység. %pi;float(%);%e;float(%e);%i;float(%); cos(%pi/4);float(%); cos(%pi/3);float(%); cos(%Pi/3);Cos(%pi/3);Cos(%Pi/3); 6-7. parancs(köteg): matematikailag pontos eredmény vagy közelítés 1/sqrt(2*%pi); 1.0/sqrt(2*%pi); 1.0/sqrt(2.0*%pi); 1.0/sqrt(2*float(%pi)); (9/7)^87;float(%); 8-10. parancsköteg: ":" (értékadás, szóban mondva 'legyen egyenlÅ‘'), "=" (egyenlet vagy logikai hasonlítás, szóban mondva 'egyenlÅ‘') és ":=" (függvény definiálása) jelek használata. a:3.2;b:1.0;a+b; a = b; is(a = b); pcm(nm):=1.0/(nm/1.0e7); pcm(500); 11. parancsköteg: Hasznos példa a 10-es alapú logaritmus definiálására. log(10.0); lg(x):=log(x)/log(10.0); lg(10.0); 12. parancsköteg: A "define" kulcsszó használata a ":=" helyett. (többnyire ajánlott!) expression:integrate(x^3,x); f0(x):=x^4/4; f0(2); f1(x):=expression; f1(2); define(f2(x),expression); f2(2); 13. parancsköteg: Mik vannak a memóriában? values;functions; kill(f0,f1,f2,Mrwater,Mrsalt,Mrwatersalt); values;functions; kill(all); values;functions; Adattípusok 14. parancsköteg: Egész számok, valós számok (konstansokat lásd feljebb). 3;3.3;float(3);float(3.3); 15. parancsköteg: Karaktersorozatok. "abcdefgh";svariable:%; charat(svariable,1); charlist(svariable); charlist(svariable)[2]; charat(svariable,0); 16. parancsköteg: Listák (közelítÅ‘leg vektorok). L1:[2,4,6,8,10]; L1[1];L1[3];L1[0]; 17. parancsköteg: Mátrixok (közelítÅ‘leg lista a listában). L1:[[1,2],[2,4],[3,6],[4,8],[5,10]]; L1[1];L1[3]; L1[1][2];L1[3][2]; 18. parancsköteg: Egyenletek és részeik. eqs:[x^2=3,exp(-a*x)=2.58]; %[2]; rhs(%); 0.1*%; 0.1*rhs(eqs[2]); Egyenletek megoldása Egy példa alkalmazásra a "find_root" függvénnyel 19. parancsköteg: Egy egyszerű példa a fenti jelek megértetéséhez. 20 ml 0,03 M CaCl2 oldatot titrálunk 0,03 M Na2SO4 oldattal. Mekkora fogyásnál válik ki a csapadék, és mekkora fogyásnál oldódik teljesen vissza? A CaSO4 oldhatósági szorzata Ks=[Ca2+][SO42-]=6,1E-5 M^2. Megoldás: Homogén oldatban T(Ca)=20/(20+V)*0,03 és T(SO4)=V/(20+V)*0,03. Ha e kettÅ‘ kifejezés szorzata kisebb Ks-nél, akkor homogén a rendszer; ha nagyobb, akkor csapadék van jelen; egyenlÅ‘ség esetén csapadékkiválás vagy csapadékfelodódás van. V=20-nál a legnagyobb a szorzat értéke a koncentrációk egyenlÅ‘sége miatt. (Házi feladat: otthon bizonyítsák be ez utóbbi állítást!) Ks:6.1e-5$ fnKs(V,V0,c):=V0*V*c^2/(V0+V)^2; V1:find_root(fnKs(V,20,0.03)=Ks,V,0,20); V2:find_root(fnKs(V,20,0.03)=Ks,V,20,1000); 20. parancsköteg: Lehet-e ezt pontosabban? fpprec:50$fpprintprec:50$Ks:6.1e-5$ fnKs(V,V0,c):=V0*V*c^2/(V0+V)^2; V1:bf_find_root(fnKs(V,20,0.03)=Ks,V,0,20); V2:bf_find_root(fnKs(V,20,0.03)=Ks,V,20,1000); float(%pi); bfloat(%pi); fpprintprec:6; V1;V2; 21-27. parancs(köteg): A fenti példában sötét ló: honnan jött az 1000? (A "tanár mondta" válasz még nem elég!) /menü a 16. parancsnál/ values;functions; plot2d([fnKs(V,20,0.03),Ks],[V,0,1000]); wxplot2d([fnKs(V,20,0.03),Ks],[V,0,1000]); plot2d([fnKs(V,20,0.03),Ks],[V,0,300]); plot2d([fnKs(V,20,0.03),Ks],[V,0.1,300],[logx],[ylabel,"fnKs"]); wxplot2d([fnKs(V,20,0.03),Ks],[V,0.1,300],[logx],[ylabel,"fnKs"]); plot2d([fnKs(V,20,0.03),fnKs(V,20,0.02),fnKs(V,20,0.015),Ks], [V,0.1,300],[logx],[ylabel,"fnKs"]); A solve függvény 28. parancs: Példa a solve függvényre. /menübÅ‘l is/ solve(a*x^2+b*x+c=0,x); 29. parancs: Egy egyszerű hígítási példa. Milyen arányban keverjünk 15%-os és 45%-os oldatokat, hogy 32%-osat kapjunk? solve((1*0.15+x*0.45)/(1+x)=0.32,x);float(%); 30. parancsköteg: Kicsit összetettebb oldhatósági példa. Számítsuk ki a SrSO4-ra és CaSO4-ra nézve egyidejűleg telített oldatban a Sr2+, Ca2+ és a SO42- ionok egyensúlyi koncentrációját! L(SrSO4)=1,18E-6 M^2 és L(CaSO4)=6,10E-6 M^2 (tizedesjel!!). egyenletek:[1.18e-6=Sr*SO4,6.10e-6=Ca*SO4,Sr+Ca=SO4]; solve(egyenletek,[Sr,Ca,SO4]); float(%); float(%[1]); Szimbolikus matematika 31-40. parancs(köteg): Példák a matematikai analízisre. limit(f(x),x,a); limit(f(x),x,a,plus); limit(f(x),x,a,minus); wxplot2d(1/x,[x,-3,3],[y,-10,10]); limit(1/x,x,0); limit(1/x,x,0,plus); limit(1/x,x,0,minus); diff(f(x),x); diff(V(p),p); diff(x^n,x); diff(%e^x,x); taylor(%e^x,x,0,5); integrate(f(x),x); integrate(V(p),p); integrate(1/x,x); integrate(1/x,x,1,2); integrate(t^2,t); integrate(t^2,t,0,1);float(%); romberg(t^2,t,0,1); 41-42. parancsköteg: A kinetika elÅ‘adás egyik részlete. Vezessük le az elsÅ‘rendű kinetikát követÅ‘ reakcióban a reaktáns koncentrációjának idÅ‘függését megadó egyenletet! integrate(1/a,a,a0,at)=integrate(-k,tau,0,t); solve(%,at); assume(at>0)$assume(a0>at)$assume(t>0)$ integrate(1/a,a,a0,at)=integrate(-k,tau,0,t); solve(%,at); Kétdimenziós ábrák készítése A http://www.austromath.at/daten/maxima/zusatz/Graphics_with_Maxima.pdf leírás mindkét (plot és draw) csomagot nagyon jól bemutatja Plot csomag: a (wx)plot2d parancsok Cél: A (wx)plot2d parancsok paramétereinek bemutatása lépésenként, az exponenciális és négyzetgyök függvény együttes ábrázolásával. Minimális parancs (csak egy függvény): wxplot2d(exp(x)-1, [x,0.001,1] ); Minimális parancs (csak egy függvény) más aránnyal: wxplot2d(exp(x)-1, [x,0.001,1], [yx_ratio,0.5] ); KettÅ‘ függvény (szögletes zárójelben, vesszÅ‘vel elválasztva): wxplot2d([exp(x)-1,sqrt(x)], [x,0.001,1], [yx_ratio,0.5] ); Y-tengely beállítása: wxplot2d([exp(x)-1,sqrt(x)], [x,0.001,1],[y,0,2], [yx_ratio,0.5] ); Rácsozat: wxplot2d([exp(x)-1,sqrt(x)], [x,0.001,1],[y,0,2], [yx_ratio,0.5], grid2d ); Tengelycímek: wxplot2d([exp(x)-1,sqrt(x)], [x,0.001,1],[y,0,2], [yx_ratio,0.5], grid2d, [xlabel,"X-tengely"],[ylabel,"Y-tengely"] ); Tengelyfeliratok: wxplot2d([exp(x)-1,sqrt(x)], [x,0.001,1],[y,0,2], [yx_ratio,0.5], grid2d, [xlabel,"X-tengely"],[ylabel,"Y-tengely"], [xtics,0.2,0.2,1.0],[ytics,0.0,0.2,2.0] ); Színváltozás: wxplot2d([exp(x)-1,sqrt(x)], [x,0.001,1],[y,0,2], [yx_ratio,0.5], grid2d, [xlabel,"X-tengely"],[ylabel,"Y-tengely"], [xtics,0.2,0.2,1.0],[ytics,0.0,0.2,2.0], [color,red,"#00ff00"] ); Adatsor ábrázolni: adatsor:[ [0.1,0.2], [0.2,0.39], [0.3,0.62], [0.4,0.802], [0.5,0.97], [0.6,1.2], [0.7,1.39], [0.8,1.62] ]; Adatsort rátenni az ábrára, majd változtatni a stílusokat: wxplot2d([exp(x)-1,sqrt(x),[discrete,adatsor]], [x,0.001,1],[y,0,2], [yx_ratio,0.5], grid2d, [xlabel,"X-tengely"],[ylabel,"Y-tengely"], [xtics,0.2,0.2,1.0],[ytics,0.0,0.2,2.0], [color,red,"#00ff00",blue,black], [point_type,bullet], [style,[lines,2.0],[lines,1.0],[linespoints,2,3,blue,bullet]] ); Változtatni a jelmagyarázatot: wxplot2d([exp(x)-1,sqrt(x),[discrete,adatsor]], [x,0.001,1],[y,0,2], [yx_ratio,0.5], grid2d, [xlabel,"X-tengely"],[ylabel,"Y-tengely"], [xtics,0.2,0.2,1.0],[ytics,0.0,0.2,2.0], [color,red,"#00ff00",blue,black], [point_type,bullet], [style,[lines,2.0],[lines,1.0], [linespoints,2,3,blue,bullet]], [legend,"exp(x)","sqrt(x)","adatsor","adatsor"], [gnuplot_preamble,"set key top left"] ); Logaritmikus X-tengely: wxplot2d([exp(x)-1,sqrt(x),[discrete,adatsor]], [x,0.001,1],[y,0,2],logx, [yx_ratio,0.5], grid2d, [xlabel,"logaritmikus X-tengely"],[ylabel,"Y-tengely"], [xtics,0.2,0.2,1.0],[ytics,0.0,0.2,2.0], [color,red,"#00ff00",blue,black], [point_type,bullet], [style,[lines,2.0],[lines,1.0], [linespoints,2,3,blue,bullet]], [legend,"exp(x)","sqrt(x)","adatsor","adatsor"], [gnuplot_preamble,"set key top left"] ); Draw csomag: a (wx)draw2d parancsok A "draw" rajzoló csomag használata (sokak szerint) bonyolultabb, mint a plot-é, de (sokak szerint) szebb ábrákat készít. Cél: A (wx)draw2d parancsok paramétereinek bemutatása lépésenként, az exponenciális és négyzetgyök függvény együttes ábrázolásával. (Néha) kell a következÅ‘ parancs: load(draw); Minimális parancs (csak egy függvény): wxdraw2d(explicit(exp(x)-1,x,0.001,1)); Minimális parancs (csak egy függvény) más aránnyal: wxdraw2d( user_preamble = "set size ratio 0.5", explicit(exp(x)-1,x,0.001,1) ); KettÅ‘ függvény (szögletes zárójelben, vesszÅ‘vel elválasztva): wxdraw2d( user_preamble = "set size ratio 0.5", color = blue, key = "%e^x-1", explicit(exp(x)-1,x,0.001,1), color = red, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1) ); Y-tengely beállítása: wxdraw2d(yrange = [0,2], user_preamble = "set size ratio 0.5", color = blue, key = "%e^x-1", explicit(exp(x)-1,x,0.001,1), color = red, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1) ); Rácsozat: wxdraw2d( user_preamble = "set size ratio 0.5", grid = true, yrange = [0,2], color = blue, key = "%e^x-1", explicit(exp(x)-1,x,0.001,1), color = red, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1) ); Tengelycímek: wxdraw2d( user_preamble = "set size ratio 0.5", grid = true, yrange = [0,2], xlabel = "X-tengely", ylabel = "Y-tengely", color = blue, key = "%e^x-1", explicit(exp(x)-1,x,0.001,1), color = red, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1) ); Tengelyfeliratok: wxdraw2d( user_preamble = "set size ratio 0.5", grid = true, yrange = [0,2], xlabel = "X-tengely", ylabel = "Y-tengely", xtics = {0.2,0.4,0.6,0.8,1.0}, ytics = {0,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0}, color = blue, key = "%e^x-1", explicit(exp(x)-1,x,0.001,1), color = red, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1) ); Színváltozás: wxdraw2d( user_preamble = "set size ratio 0.5", grid = true, yrange = [0,2], xlabel = "X-tengely", ylabel = "Y-tengely", xtics = {0.2,0.4,0.6,0.8,1.0}, ytics = {0,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0}, color = red, key = "%e^x-1", explicit(exp(x)-1,x,0.001,1), color = green, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1) ); Adatsor ábrázolni: adatsor:[ [0.1,0.2], [0.2,0.39], [0.3,0.62], [0.4,0.802], [0.5,0.97], [0.6,1.2], [0.7,1.39], [0.8,1.62] ]; Adatsort rátenni az ábrára, majd változtatni a stílusokat: wxdraw2d( user_preamble = "set size ratio 0.5", grid = true, yrange = [0,2], xlabel = "X-tengely", ylabel = "Y-tengely", xtics = {0.2,0.4,0.6,0.8,1.0}, ytics = {0,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0}, color = red, key = "%e^x-1", explicit(exp(x)-1,x,0.001,1), color = green, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1), color = blue, key = "disrete3", point_type = filled_circle, point_size = 1.5, points_joined = true, line_type = solid, line_width = 2, points(adatsor) ); Változtatni a jelmagyarázatot: wxdraw2d( user_preamble = "set key top left; set size ratio 0.5", grid = true, yrange = [0,2], xlabel = "X-tengely", ylabel = "Y-tengely", xtics = {0.2,0.4,0.6,0.8,1.0}, ytics = {0,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0}, color = red, key = "exp(x)", explicit(exp(x)-1,x,0.001,1), color = green, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1), color = blue, key = "adatsor", point_type = filled_circle, point_size = 1.5, points_joined = true, line_type = solid, line_width = 2, points(adatsor) ); Logaritmikus X-tengely: wxdraw2d( user_preamble = "set key top left; set size ratio 0.5", grid = true, yrange = [0,2], xlabel = "X-tengely", ylabel = "Y-tengely", xtics = {0.2,0.4,0.6,1.0}, ytics = {0,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0}, logx = true, color = red, key = "exp(x)", explicit(exp(x)-1,x,0.001,1), color = green, key = "sqrt(x)", explicit(sqrt(x),x,0.001,1), color = blue, key = "adatsor", point_type = filled_circle, point_size = 1.5, points_joined = true, line_type = solid, line_width = 2, points(adatsor) ); PK¬b‹TñB–HmimetypePK¬b‹Të©æRR 5format.txtPK¬b‹T¦á0u~ƒ~ƒ ¯content.xmlPK§VŠ