一元弱酸pH值的计算机数值求解

上传人:cl****1 文档编号:571150886 上传时间:2024-08-09 格式:PPT 页数:16 大小:627.50KB
返回 下载 相关 举报
一元弱酸pH值的计算机数值求解_第1页
第1页 / 共16页
一元弱酸pH值的计算机数值求解_第2页
第2页 / 共16页
一元弱酸pH值的计算机数值求解_第3页
第3页 / 共16页
一元弱酸pH值的计算机数值求解_第4页
第4页 / 共16页
一元弱酸pH值的计算机数值求解_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《一元弱酸pH值的计算机数值求解》由会员分享,可在线阅读,更多相关《一元弱酸pH值的计算机数值求解(16页珍藏版)》请在金锄头文库上搜索。

1、一元弱酸一元弱酸pH值的计算值的计算机数值求解机数值求解一、问题的提出:一、问题的提出:n一元弱酸溶液质子条件式: H+ = A- + OH- 利用平衡常数式将各项变为H+的函数,即 这就是一元弱酸H+的精确表达式 n代入HA的型体公式: 得到一元三次方程 H+3+KaH+2- (Kac + Kw)H+-Ka Kw = 0 二元弱酸,精确式为四次方程。三元弱酸,精确式为五次方程。二、问题的分析: 利用计算机编程来解决这个问题,主要有以下几种方法:二分法,迭代法,牛顿法。 二分法二分法: 牛顿法牛顿法: 二分法二分法: 函数f(x)在某个区间(a,b)内连续且仅有一个根x* 取中点x0 = 1/

2、2(a+b) 如果f(x0)=0,则1/2(a+b)即为根,否则将区间分为两半,进行扫描,检查f(x0)与f(a)是否同号。 如果同号,说明所求的根x*在x0右侧区间(x0,b),此时令a1 = x0, b1 = b。 如果异号,则x*在x0左侧区间(a,x0),则取 a1 = a, b1 = x0,得到一个新的根区间(a1,b1)。 有根区间(ak,bk)的长度小于给定的精度,则xk = 1/2(ak+bk)即为满足精度要求的方程的根。牛顿法牛顿法: 已知方程f(x) = 0的一个近似根x0 泰勒展开f(x)=f(x0)+f(x0)(x- x0)+f(x0)(xx0)2+舍去高级项,得f(x

3、0)+f(x0)(x- x0) = 0 若f(x0) 0,取x作为原方程的新近似根x1。迭代公式为:f(xk)+f(xk)(xk+1- xk) = 0, xk+1是一个近似根。 下面将以某一元弱酸(设pKa=5,c=0.10mol/L,精度:0.01.)求pH值为例,使用C+语言说明两种方法的应用。#include #include #include double Fx(double,double,double); const double Kw = 1.0E-14; int main() double k,c,r,x0,A,B,PH; double pka; coutpka; 二分法 cou

4、tKa=k; coutc; coutr; k=pow(10,-pka); A=1.0E-14.0; B=1; /确定扫描范围 x0 = 0.5(A+B); while (abs(B-A)r) if (f(x0)*f(A)0 A = x0; else B=x0; x0 = 0.5(A+B); PH=-log10(B); cout该一元酸的pH= setprecision(2) setiosflags(ios:fixed|ios:showpoint)Pendl; return 0; /function definition double Fx(double s,double K,double C)

5、 return(s+K)*s)*s)-(K*C+Kw)*s-K*Kw); 牛顿法#include #include #include float Fx(float,float,float); float DFx(float,float,float); const double Kw = 1.0E-14; int main() float k,c,x0,x1,r,PH; double pka; coutpka; coutc; coutr; k=pow(10,-pka); x0 = sqrt(k*c); x1 = x0-Fx(x0,k,c)/DFx(x0,k,c); while (fabs(x1-

6、x0)/x1)r) x0=x1; x1=x0-Fx(x0,k,c)/DFx(x0,k,c); PH=-log10(x1); cout该一元酸的pH= setprecision(2) setiosflags(ios:fixed|ios:showpoint)PHendl; return 0; /function definition float Fx(float s,float K,float C) return(s+K)*s)*s-(K*C+Kw)*s-K*Kw); float DFx(float t,float K,float C) return(3*t+2*K)*t-(K*C+Kw); 三、讨论: 利用计算机程序可以精确求算出多元酸的pH值方法简单,快捷,准确。为学习和研究相关问题提供方便。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号