# Inputfil til gnuplot, Sune Danø, 02.11.01. # # Eksempel der viser et henfald til ligevægt # # køres i gnuplot med kommandoen "load 'ligevaegt.gnu'" efter at # hastighedskonstanten for den fremadgående reaktion kf og # hastighedskonstant for den tilbagegående reaktion kr er definerede: # # gnuplot> kf = 0.01 # gnuplot> kr = 0.02 # gnuplot> load 'ligevaegt.gnu' # K = kf/kr # Find startkoncentrationerne ved at fitte til starten af datafilen # (man er nødt til at fitte til mindst to datapunkter) f(x) = a*x + cc fit [0:0.1] f(x) 'chemdat' u 1:2 via a, cc; A = cc # startkoncentration af A fit [0:0.1] f(x) 'chemdat' u 1:3 via a, cc; B = cc # startkoncentration af B fit [0:0.1] f(x) 'chemdat' u 1:4 via a, cc; C = cc # startkoncentration af C !clear # renser skærmen print "Ligevægtskonstanten beregnes ud fra de indtastede værdier for hastighedskonstanterne kf og kr:\n" print " kf = ", kf print " kr = ", kr print " K = ", K print "\nStartkoncentrationerne fåes ved at fitte til de første punkter i datafilen:\n" print " [a](0) = ", A print " [b](0) = ", B print " [c](0) = ", C set title 'Henfald til ligevægt' set xlabel 'tid' set ylabel 'koncentration' # plot integrationsresultaterne plot [][0:]'chemdat' tit 'a' w l,'' u 1:3 tit 'b' w l, '' u 1:4 tit 'c' w l pause -1 "\nGrafen viser tidsudviklingen af de tre koncentrationer\nTast retur for at fortsætte\n" # udregn ligevægtskoncentrationerne # løs først andengradsligningen: xp = ((1.0+K*(A+B)) + sqrt((-(1.0+K*(A+B)))**2 - 4.0*K*(K*A*B-C)))/(2.0*K) xm = ((1.0+K*(A+B)) - sqrt((-(1.0+K*(A+B)))**2 - 4.0*K*(K*A*B-C)))/(2.0*K) # vælg derefter den rigtige løsning # (dvs. den der ikke giver negative koncentrationer) xx = xp if ( (A-xp)<0.0 || (B-xp)<0.0 || (C+xp)<0.0 ) xx = xm print "Ligevægtskoncentrationerne kan beregnes ved at løse en andengradsligning." print "De forventede ligevægtskoncentrationer er: \n" print " [a] = ", A-xx print " [b] = ", B-xx print " [c] = ", C+xx # plot de tre henfald hver for sig plot [][0:]'chemdat' tit 'a' w l, A-xx tit 'ligevægtskoncentration' pause -1 "\nTast retur for at fortsætte" plot [][0:]'chemdat' u 1:3 tit 'b' w l, B-xx tit 'ligevægtskoncentration' pause -1 plot [][0:]'chemdat' u 1:4 title 'c' w l, xx + C tit 'ligevægtskoncentration' pause -1