|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00)
Types: TextFile
Names: »øv2«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »øv2«
Ostwalds fortyndingslov (KAJ p.435)
Begin
real alfa,c,KA,pKA;
c:=readr(<:concentration:>);
alfa:=readr(<:ionisationsgrad:>);
KA:=c*alfa**2/(1-alfa);
pKA:=-ln(KA)/ln10;
write(out,pKA);
end
opl selighed (KAJ p.413)
begin
real L,s;
integer in,,ip;
L=readr(<:opl. produkt:>);
ip:=readi(<:antal positive ioner pr. molekyle:>);
in:=readi(<:antal negative ioner pr. molekyle:>);
s:=(L/ip*ip/in**in)**(1/(pi+in);
write(out,S);
end
program for fitting of solubility against ionic strength
including a run test of the residuals.
begin
integer n,i,ip,ia,cp,cn,np,nn,nr,br,d0,d1,d2;
real q,r,sr,fa,fb;
READC:
cp:=readi(<:charge of cation:>);
cn:=readi(<:charge of anion:>);
if cn<0 then cn:=-cn;
if cp<=0 or cn=0 then
begin
write(out,<:illegal charge:>);
goto READC
end;
d1:=cp;
d2:=cn;
for d0:=d1 mod d2 while d0>0 do
begin
d1:=d2;
d2:=d0
end;
d0:=cn*cp//d2;
ip:=d0//cp;
ia:=d0//cn;
n:=readi(<:number of datapoints:>);
begin
integer r;
real array X,Y(1:n),C,S(0:r);
r:=readi(<:degree of approx. pol.:>);
write(out,<:<10>added ionic strength, concentration of cation:>);
outend(10);
for i:= 1 step 1 until n do
read(in,X(i),Y(i));
for i:=1 step 1 until n do
begin
X(i):=sqrt(X(i)+.5*(cp*cp*ip+cn*cn*ia)*Y(i)/ip);
Y(i):=ln(Y(i)/ip)
end;
q:=polfitw(X,Y,n,C,S,r);
if q>0 then q:=sqrt(q);
np:= nn:= br:= 0; nr:= 1;
for i:= 1 step 1 until n do
begin
if Y(i))>0 then
begin
np:= np+1; if br=-1 then nr:= nr+1; br:= 1;
end
else
begin
nn:= nn+1; if br=1 then nr:= nr+1; br:= -1
end
end;
r:= 2*np*nn/n+1;
sr:= sqrt(2*np*nn*(2*np*nn-n)/n/n/(n-1));
fb:=(ip+ia)/ln10;
fa:=fb(ip*cp*cp+ia*cn*cn);
write(out,<:<10> log L = :>,
<<-ddd.dd>,C(0*fb+ln(ip**ip+ia**ia)/ln10,
<: +-:>,<<ddd.dd>,S(0)*fb));
for i:=1 step1 until m do
write(out,
<:<10> c(:>,<<d>,i,<:) = :>,<<-dd.ddd>,C(i)*fa,
<: +-:>,<<dd.ddd>,S(i)*fa);
write(out,<:<10> s.t.d on log s :>.<<dd.ddd>,q/ln10);
if q>0 then
write(out,<:<10><10> r = :>,<<dd.d>,r,
<: +- :>,<<dd.d>,sr,
<:<10>nr = :>,<<dd>,nr);
end
end
1
1
5
2
.00490, .001930
.01257, .002025
.02565, .002158
.04081, .002266
.05422, .002359
▶EOF◀