Last active
December 26, 2016 04:35
-
-
Save santiago-salas-v/a3048520231d2a1e18e52ad889184b57 to your computer and use it in GitHub Desktop.
CO2 Equilibria
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0 H2O | |
1 H3O(+) | |
2 HO(-) | |
3 HCO3(-) | |
4 Na(+) | |
5 CO3(2-) | |
6 CO2(ac) | |
7 H2CO3 | |
8 CO2(g) | |
eqs := { | |
0 = 1670.0*100*C6/(C0+C1+C2+C3+C4+C5+C6+C7+C8) - C8*8.314*298.15, | |
0 = 10^-0.005080863*C6 - C7, | |
0 = 10^-6.361590742*C7 - C1*C3, | |
0 = 10^-10.32991986*C3 - C1*C5, | |
0 = 10^-13.99602524 - C1*C2, | |
0 = C0 - 5.55555555555555500291e+01 - (- x0 - x1 - x2 - x3 - 2*x4), | |
0 = C1 - 1.00458659795015482946e-07 - (+ x2 + x3 + x4), | |
0 = C2 - 1.00458659795015496181e-07 - (+ x4), | |
0 = C3 - 1.19166786264420579422e-02 - (+ x2 - x3), | |
0 = C4 - 1.19166786264420579422e-02 - (0), | |
0 = C5 - 0.0 - (+ x3), | |
0 = C6 - 0.0 - (- x0 - x1), | |
0 = C7 - 0.0 - (+ x1 - x2), | |
0 = C8 - 0.0 - (+ x0) | |
}; | |
numeric::solve(eqs, {C0,C1,C2,C3,C4,C5,C6,C7,C8,x0,x1,x2,x3,x4}); | |
solve(eqs, {C0,C1,C2,C3,C5,C4,C6,C7,C8,x0,x1,x2,x3,x4}) | |
{0 = C1 - x2 - x3 - x4 - 0.0000001004586598, 0 = (167000.0*C6)/(C0 + C1 + C2 + C3 + C4 + C5 + C6 + C7 + C8) - 2478.8191*C8, 0 = C0 + x0 + x1 + x2 + x3 + 2*x4 - 55.55555556, 0 = C7 - x1 + x2, 0 = C2 - x4 - 0.0000001004586598, 0 = 0.9883690492*C6 - C7, 0 = C4 - 0.01191667863, 0 = 1.009194233*10^(-14) - C1*C2, 0 = 0.0000004349198785*C7 - C1*C3, 0 = C5 - x3, 0 = C8 - x0, 0 = C3 - x2 + x3 - 0.01191667863, 0 = 4.6782146*10^(-11)*C3 - C1*C5, 0 = C6 + x0 + x1} | |
Warning: the solution [C0 = 55.55395508, C1 = 0.0000001266598701, C2 = 0.000003988812187, C3 = 0.01148800552, C4 = 0.01191667863, C5 = 0.0002124164193, C6 = -0.003662109375, C7 = -0.004150390625, C8 = 0.001953125, x0 = 0.001953125, x1 = -0.002197265625, x2 = -0.0002165958285, x3 = 0.0002124164193, x4 = 0.... [numeric::polysysroots::checkstability] | |
Warning: the solution [C0 = 55.57119751, C1 = -0.01191681297, C2 = -8.468658843e-13, C3 = -0.000000134576112, C4 = 0.01191667863, C5 = 5.272765538e-16, C6 = 0.003726959229, C7 = 0.003681182861, C8 = 0.004524230957, x0 = 0.004524230957, x1 = -0.008232116699, x2 = -0.01191681286, x3 = 5.272765538e-16, x4 = ... [numeric::polysysroots::checkstability] | |
Warning: the solution [C0 = 55.56347656, C1 = -0.0000002533197403, C2 = -0.000003991460732, C3 = 0.01237848401, C4 = 0.01191667863, C5 = -0.0002290414307, C6 = 0.006103515625, C7 = 0.0009765625, C8 = -0.00390625, x0 = -0.00390625, x1 = 0.005126953125, x2 = 0.0002328753471, x3 = -0.0002290414307, x4 = -0.0... [numeric::polysysroots::checkstability] | |
Warning: the solution [C0 = 0.0, C1 = 0.0, C2 = -0.0001078610401, C3 = 255213.0, C4 = 0.01191667863, C5 = -127606.4317, C6 = 4096.0, C7 = 2048.0, C8 = -131072.0, x0 = -131072.0, x1 = 129024.0, x2 = 127606.25, x3 = -127606.4317, x4 = -0.0001079614988] seems to be marred by some numerical instability. Inser... [numeric::polysysroots::checkstability] | |
Warning: the solution [C0 = 2.858730232e13, C1 = -654311424.0, C2 = -0.01213239807, C3 = -620756992.0, C4 = 0.01191667863, C5 = 0.006881952286, C6 = 2.913705814e13, C7 = 3.848290697e13, C8 = 2.199023256e12, x0 = 2.199023256e12, x1 = 3.95824186e13, x2 = -2785017856.0, x3 = 0.006881952286, x4 = -0.012132498... [numeric::polysysroots::checkstability] | |
{[C0 = 55.55395508, C1 = 0.0000001266598701, C2 = 0.000003988812187, C3 = 0.01148800552, C4 = 0.01191667863, C5 = 0.0002124164193, C6 = -0.003662109375, C7 = -0.004150390625, C8 = 0.001953125, x0 = 0.001953125, x1 = -0.002197265625, x2 = -0.0002165958285, x3 = 0.0002124164193, x4 = 0.000003888353527], [C0 = 55.56347656, C1 = -0.0000002533197403, C2 = -0.000003991460732, C3 = 0.01237848401, C4 = 0.01191667863, C5 = -0.0002290414307, C6 = 0.006103515625, C7 = 0.0009765625, C8 = -0.00390625, x0 = -0.00390625, x1 = 0.005126953125, x2 = 0.0002328753471, x3 = -0.0002290414307, x4 = -0.000004091919391], [C0 = 55.57119751, C1 = -0.01191681297, C2 = -8.468658843*10^(-13), C3 = -0.000000134576112, C4 = 0.01191667863, C5 = 5.272765538*10^(-16), C6 = 0.003726959229, C7 = 0.003681182861, C8 = 0.004524230957, x0 = 0.004524230957, x1 = -0.008232116699, x2 = -0.01191681286, x3 = 5.272765538*10^(-16), x4 = -0.0000001004595067], [C0 = - 33.89917755 + 0.002046041827*I, C1 = - 0.005958380178 + (- 0.001718687111*I), C2 = - 1.563640209*10^(-12) + 4.510300085*10^(-13)*I, C3 = 0.00595829857 + (- 0.001718687162*I), C4 = 0.01191667863, C5 = - 3.959471937*10^(-11) + 2.491529619*10^(-11)*I, C6 = - 89.46068954 + 0.0003273547199*I, C7 = - 88.42017746 + 0.0003235473005*I, C8 = 177.8868332 + 0.001067785085*I, x0 = 177.8868332 + 0.001067785085*I, x1 = - 88.4261322 + (- 0.001395139863*I), x2 = - 0.005958380178 + (- 0.001718687137*I), x3 = - 3.959471937*10^(-11) + 2.491529619*10^(-11)*I, x4 = - 0.0000001004602234 + 4.510300085*10^(-13)*I], [C0 = 0.0, C1 = 0.0, C2 = -0.0001078610401, C3 = 255213.0, C4 = 0.01191667863, C5 = -127606.4317, C6 = 4096.0, C7 = 2048.0, C8 = -131072.0, x0 = -131072.0, x1 = 129024.0, x2 = 127606.25, x3 = -127606.4317, x4 = -0.0001079614988], [C0 = 2.858730232*10^13, C1 = -654311424.0, C2 = -0.01213239807, C3 = -620756992.0, C4 = 0.01191667863, C5 = 0.006881952286, C6 = 2.913705814*10^13, C7 = 3.848290697*10^13, C8 = 2.199023256*10^12, x0 = 2.199023256*10^12, x1 = 3.95824186*10^13, x2 = -2785017856.0, x3 = 0.006881952286, x4 = -0.01213249853], [C0 = - 33.89917755 + (- 0.002046041827*I), C1 = - 0.005958380178 + 0.001718687111*I, C2 = - 1.563640209*10^(-12) + (- 4.510300085*10^(-13)*I), C3 = 0.00595829857 + 0.001718687162*I, C4 = 0.01191667863, C5 = - 3.959471937*10^(-11) + (- 2.491529619*10^(-11)*I), C6 = - 89.46068954 + (- 0.0003273547199*I), C7 = - 88.42017746 + (- 0.0003235473005*I), C8 = 177.8868332 + (- 0.001067785085*I), x0 = 177.8868332 + (- 0.001067785085*I), x1 = - 88.4261322 + 0.001395139863*I, x2 = - 0.005958380178 + 0.001718687137*I, x3 = - 3.959471937*10^(-11) + (- 2.491529619*10^(-11)*I), x4 = - 0.0000001004602234 + (- 4.510300085*10^(-13)*I)]} | |
matrix([[C0], [C1], [C2], [C3], [C4], [C5], [C6], [C7], [C8], [x0], [x1], [x2], [x3], [x4]]) in Dom::ImageSet(matrix([[- 5.987429602*10^42*z1^6 - 7.329131454*10^40*z1^5 - 7.872140498*10^36*z1^4 - 2.009851769*10^30*z1^3 + 1.24616353*10^26*z1^2 + 2.506693716*10^19*z1 + 1.259333237*10^12], [2.159683152*10^38*z1^6 + 2.643638886*10^36*z1^5 + 2.839503839*10^32*z1^4 + 7.249617408*10^25*z1^3 - 4.49494781*10^21*z1^2 - 9.041754741*10^14*z1 - 45424896.55], [z1 + 0.0000001004586598], [2.159683152*10^38*z1^6 + 2.643638886*10^36*z1^5 + 2.839503839*10^32*z1^4 + 7.249617408*10^25*z1^3 - 4.49494781*10^21*z1^2 - 9.041754741*10^14*z1 - 45424896.53], [0.01191667863], [7.279248332*10^26*z1^6 + 8.831914525*10^24*z1^5 + 4.447893031*10^18*z1^4 - 1.397067299*10^14*z1^3 - 42801383.95*z1^2 + 50.88461943*z1 + 0.000005401796013], [- 5.987213634*10^42*z1^6 - 7.32886709*10^40*z1^5 - 7.871856548*10^36*z1^4 - 2.009779273*10^30*z1^3 + 1.24611858*10^26*z1^2 + 2.506603298*10^19*z1 + 1.259287812*10^12], [- 5.917576646*10^42*z1^6 - 7.243625397*10^40*z1^5 - 7.780299372*10^36*z1^4 - 1.986403629*10^30*z1^3 + 1.231625036*10^26*z1^2 + 2.477449118*10^19*z1 + 1.244641098*10^12], [1.190457431*10^43*z1^6 + 1.457222812*10^41*z1^5 + 1.565187197*10^37*z1^4 + 3.996110405*10^30*z1^3 - 2.477698667*10^26*z1^2 - 4.983961999*10^19*z1 - 2.503883485*10^12], [1.190457431*10^43*z1^6 + 1.457222812*10^41*z1^5 + 1.565187197*10^37*z1^4 + 3.996110405*10^30*z1^3 - 2.477698667*10^26*z1^2 - 4.983961999*10^19*z1 - 2.503883485*10^12], [- 5.917360678*10^42*z1^6 - 7.243361033*10^40*z1^5 - 7.780015421*10^36*z1^4 - 1.986331133*10^30*z1^3 + 1.231580087*10^26*z1^2 + 2.477358701*10^19*z1 + 1.244595673*10^12], [2.159683152*10^38*z1^6 + 2.643638886*10^36*z1^5 + 2.839503839*10^32*z1^4 + 7.249617408*10^25*z1^3 - 4.49494781*10^21*z1^2 - 9.041754741*10^14*z1 - 45424896.55], [7.279248332*10^26*z1^6 + 8.831914525*10^24*z1^5 + 4.447893031*10^18*z1^4 - 1.397067299*10^14*z1^3 - 42801383.95*z1^2 + 50.88461943*z1 + 0.000005401796013], [z1]]), z1, RootOf(z^7 + (3288854257908087952623227863194376641217053483675868772953977*z^6)/268676061519215510599283100254114319489836879945000000000000000 + (2050134592226248730134824256713854736228400666906115319201897296308956154738386104552131437*z^5)/1557843948512929939169698043870198415364424558737555735391792292425000000000000000000000000000000 + (6023827913122314278109268292139954914316831247067391446756236788761598164895936283191047475179790509107195265489595577*z^4)/12878017264464141415647653185706324823133814701346600775997442666727707967291802614725000000000000000000000000000000000000000000000 - (1337979289618648321625397786703665133379116515552518649126090379866479124961511411714573635366139681808386840387385300578983431477*z^3)/64390086322320707078238265928531624115669073506733003879987213333638539836459013073625000000000000000000000000000000000000000000000000000000000000 - (10105150659376346296921576118615232529285931060237289209074775758508362339723127187001429846811738303273458103633738862619824685022919607869*z^2)/1609752158058017676955956648213290602891726837668325096999680333340963495911475326840625000000000000000000000000000000000000000000000000000000000000000000000000000 - (725437914676416108172794804095353677574908830094399178427691869302779102452150472371102437895997799952034908439047265878428016000550985113681527611*z)/1149822970041441197825683320152350430636947741191660783571200238100688211365339519171875000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - 17353785743537659610508901962077068706625995923427835674781174126323437441132917007276490488608203757911635354942744855996997797103239378808854711658699361/821302121458172284161202371537393164740676957994043416836571598643348722403813942265625000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, z) minus RootOf(z^6 + (1470930349923710945719980829141033235794033720994127290292853072865039583091607582948054745344027621521521042109959146040663895447282467433*z^5)/120165560888786716335676939886413629510322660569448141597223816369210085273463450836153904529429370349017781022381043618207222500000000000000 + (366426946763980973975369759844966511288043893144467031043608210352605348478727464787218043674194701505737448773522925224117938166682262075615854625679119481256060775591*z^4)/278698728560705889328577424933245864636130541947036502962048723997915799126001112574017033376018494242038069447845996989798195532231935916726985000000000000000000000000000000 + (966704321358337826679775393362083521875211638768065080864011679391930193294593701928623467992089549912339949537152535498839586470224592225152814351279153255444467193414555842230094362619286754611*z^3)/2879851221150077613444171302794542896486514506584218974806059389945280782564477547426710989615374327555375442404904194199947929718921508490874059813423420150446806250000000000000000000000000000000000000000000 - (1198766683356958588513758074308229090602888042249179788211820513910926757397662249790037278137376160912405439134503824119166122899325958347814739231183829712157447310734118830779060952737455600771940605829933*z^2)/57597024423001552268883426055890857929730290131684379496121187798905615651289550948534219792307486551107508848098083883998958594378430169817481196268468403008936125000000000000000000000000000000000000000000000000000000000000 - (274017454331546479027153473298348796037217508156117565744240081861403276457629426111079961869594805475138474496207812442122737067876120373495498061093809764099647728430013083276815386507349064055017359696840233293997*z)/65451164117047218487367529608966884011057147876914067609228622498756381421919944259697977036713052898985805509202368049998816584520943374792592268486895912510154687500000000000000000000000000000000000000000000000000000000000000000000000000 - 216327766279637425531785296940907490552624393498128115988956836195471884446342622820699789663981899215083167914168548727471566675647528811469265775096384894844224092740660492750276065595153971331698872550706819073484851098673/1028518293267884861944346893855193891602326609494363919573592639266171708058741981223825353434062259841205515144608640785695689185329110175312164219079792910873859375000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, z)) | |
subs(eqs, | |
{ | |
C0=5.55556010750400801612e+01, | |
C1=3.46561148691701824919e-09, | |
C2=2.86202585956707773146e-06, | |
C3=1.16111088945490704277e-02, | |
C4=1.19166786267409195721e-02, | |
C5=1.51355586271531528889e-04, | |
C6=4.81840577796665813230e-05, | |
C7=4.76236316774989850635e-05, | |
C8=5.84064570612180726061e-05, | |
x0=5.84064568807210029500e-05, | |
x1=-1.06590514733496258336e-04, | |
x2=-1.54214146182733708021e-04, | |
x3=1.51355585977442909330e-04, | |
x4=2.76156690306190568131e-06 | |
}) | |
{0 = 2.282615354*10^(-13), 0 = 2.539207943*10^(-13), 0 = 2.671891029*10^(-13), 0 = 2.781108677*10^(-13), 0 = 2.940886196*10^(-13), 0 = 2.967101566*10^(-13), 0 = 2.988616299*10^(-13), 0 = 1.73272633*10^(-16), 0 = 1.804970697*10^(-13), 0 = 1.865293317*10^(-14), 0 = -1.952712826*10^(-11), 0 = -7.310867406*10^(-14), 0 = -3.033297159*10^(-13), 0 = -4.412648632*10^(-12)} | |
eqs[8]; | |
subs(eqs[8], { | |
C0=5.55556010750400801612e+01, | |
C1=3.46561148691701824919e-09, | |
C2=2.86202585956707773146e-06, | |
C3=1.16111088945490704277e-02, | |
C4=1.19166786267409195721e-02, | |
C5=1.51355586271531528889e-04, | |
C6=4.81840577796665813230e-05, | |
C7=4.76236316774989850635e-05, | |
C8=5.84064570612180726061e-05, | |
x0=5.84064568807210029500e-05, | |
x1=-1.06590514733496258336e-04, | |
x2=-1.54214146182733708021e-04, | |
x3=1.51355585977442909330e-04, | |
x4=2.76156690306190568131e-06 | |
}) | |
0 = 4.6782146*10^(-11)*C3 - C1*C5 | |
0 = 1.865293317*10^(-14) | |
{0 = C1 - x2 - x3 - x4 - 0.0000001004586598, 0 = (167000.0*C6)/(C0 + C1 + C2 + C3 + C4 + C5 + C6 + C7 + C8) - 2478.8191*C8, 0 = C0 + x0 + x1 + x2 + x3 + 2*x4 - 55.55555556, 0 = C7 - x1 + x2, 0 = C2 - x4 - 0.0000001004586598, 0 = 0.9883690492*C6 - C7, 0 = C4 - 0.01191667863, 0 = 1.009194233*10^(-14) - C1*C2, 0 = 0.0000004349198785*C7 - C1*C3, 0 = C5 - x3, 0 = C8 - x0, 0 = C3 - x2 + x3 - 0.01191667863, 0 = 4.6782146*10^(-11)*C3 - C1*C5, 0 = C6 + x0 + x1} | |
eqs2 := { | |
0 = 1670.0*100*C6/(C0+C1+C2+C3+C4+C5+C6+C7+C8) - C8*8.314*298.15, | |
0 = -0.005080863 + log10(C6) - log10(C7), | |
0 = -6.361590742 + log10(C7) - log10(C1) - log10(C3), | |
0 = -10.32991986 + log10(C3) - log10(C1) - log10(C5), | |
0 = -13.99602524 - log10(C1) - log10(C2), | |
0 = C0 - 5.55555555555555500291e+01 - (- x0 - x1 - x2 - x3 - 2*x4), | |
0 = C1 - 1.00458659795015482946e-07 - (+ x2 + x3 + x4), | |
0 = C2 - 1.00458659795015496181e-07 - (+ x4), | |
0 = C3 - 1.19166786264420579422e-02 - (+ x2 - x3), | |
0 = C4 - 1.19166786264420579422e-02 - (0), | |
0 = C5 - 0.0 - (+ x3), | |
0 = C6 - 0.0 - (- x0 - x1), | |
0 = C7 - 0.0 - (+ x1 - x2), | |
0 = C8 - 0.0 - (+ x0) | |
}; | |
numeric::solve(eqs2, {C0,C1,C2,C3,C4,C5,C6,C7,C8,x0,x1,x2,x3,x4}); | |
solve(eqs2, {C0,C1,C2,C3,C5,C4,C6,C7,C8,x0,x1,x2,x3,x4}) | |
{0 = - ln(C1)/ln(10) - ln(C2)/ln(10) - 13.99602524, 0 = C1 - x2 - x3 - x4 - 0.0000001004586598, 0 = (167000.0*C6)/(C0 + C1 + C2 + C3 + C4 + C5 + C6 + C7 + C8) - 2478.8191*C8, 0 = C0 + x0 + x1 + x2 + x3 + 2*x4 - 55.55555556, 0 = C7 - x1 + x2, 0 = C2 - x4 - 0.0000001004586598, 0 = ln(C7)/ln(10) - ln(C3)/ln(10) - ln(C1)/ln(10) - 6.361590742, 0 = ln(C3)/ln(10) - ln(C1)/ln(10) - ln(C5)/ln(10) - 10.32991986, 0 = C4 - 0.01191667863, 0 = ln(C6)/ln(10) - ln(C7)/ln(10) - 0.005080863, 0 = C5 - x3, 0 = C8 - x0, 0 = C3 - x2 + x3 - 0.01191667863, 0 = C6 + x0 + x1} | |
{} | |
{} | |
simplify(subs(eqs2, | |
{ | |
C0=5.55556010750400801612e+01, | |
C1=3.46561148691701824919e-09, | |
C2=2.86202585956707773146e-06, | |
C3=1.16111088945490704277e-02, | |
C4=1.19166786267409195721e-02, | |
C5=1.51355586271531528889e-04, | |
C6=4.81840577796665813230e-05, | |
C7=4.76236316774989850635e-05, | |
C8=5.84064570612180726061e-05, | |
x0=5.84064568807210029500e-05, | |
x1=-1.06590514733496258336e-04, | |
x2=-1.54214146182733708021e-04, | |
x3=1.51355585977442909330e-04, | |
x4=2.76156690306190568131e-06 | |
})) | |
{0 = -0.000000002758601001, 0 = -0.2884218038, 0 = 2.282615354*10^(-13), 0 = 2.539207943*10^(-13), 0 = 2.671891029*10^(-13), 0 = 2.781108677*10^(-13), 0 = 2.940886196*10^(-13), 0 = 2.967101566*10^(-13), 0 = 2.988616299*10^(-13), 0 = 1.804970697*10^(-13), 0 = -7.310867406*10^(-14), 0 = -4.412648632*10^(-12), 0 = 0.007521332093, 0 = 0.01517550905} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment