一元弱酸pH值的计算机数值求解 化学系1班 殷乃宁.

Slides:



Advertisements
Similar presentations
简单迭代法的概念与结论 简单迭代法又称逐次迭代法,基本思想是构造不动点 方程,以求得近似根。即由方程 f(x)=0 变换为 x=  (x), 然后建立迭代格式, 返回下一页 则称迭代格式 收敛, 否则称为发散 上一页.
Advertisements

“ 十五 ” 国家级规划教材 新世纪全国高等中医院校规划教材 中 医 妇 科 学 总 论 主讲人 李朝平.
一、 一阶线性微分方程及其解法 二、 一阶线性微分方程的简单应用 三、 小结及作业 §6.2 一阶线性微分方程.
第八章 第四节 机动 目录 上页 下页 返回 结束 一个方程所确定的隐函数 及其导数 隐函数的微分法.
2.5 微分及其应用. 三、可微的条件 一、问题的提出 二、微分的定义 六、微分的形式不变性 四、微分的几何意义 五、微分的求法 八、小结 七、微分在近似计算中的应用.
全微分 教学目的:全微分的有关概念和意义 教学重点:全微分的计算和应用 教学难点:全微分应用于近似计算.
While 迴圈 - 不知重複執行次數
XX啤酒营销及广告策略.
第四章:长期股权投资 长期股权投资效果 1、控制:50%以上 有权决定对方财务和经营.
专利技术交底书的撰写方法 ——公司知识产权讲座
资阳南车电力机车有限责任公司 期待您的加盟.
中枢兴奋药-黄嘌呤生物碱类.
工職數學 第三冊 第二章 不等式與線性規劃 ‧2-1 一元二次不等式 ‧2-2 絕對值不等式 ‧2-3 二元一次不等式的圖形
22.3 实际问题与一元二次方程(1).
“八皇后”问题 崔萌萌 吕金华.
程序设计实习 3月份练习解答
字母可表示: 人名 字母可表示: 地方 字母可表示: 数 (1)阿Q和小D看《阿P的故事》, Q 、D、P各表示什么?
第一章 C语言概述 计算机公共教学部.
初中语文总复习 说明文 阅读专题 西安市第六十七中学 潘敏.
第四节 第四章 函数的单调性与 曲线的凹凸性 一、函数单调性的判定法 二、曲线的凹凸与拐点 机动 目录 上页 下页 返回 结束.
授课内容:适用范围、上岗条件安全规程、操作准备、操作顺序、正常操作、特殊操作、收尾工作。 授课时教:8课时 重点难点:上岗条件;岗位责任制
四种命题 班级:C274 指导教师:钟志勤 任课教师:颜小娟.
1.1.2 四 种 命 题.
第五章 水能计算及水电站在电 力系统中的运行方式
第五章 定积分及其应用.
北师大版七年级数学 5.5 应用一元一次方程 ——“希望工程”义演 枣庄市第三十四中学 曹馨.
海洋存亡 匹夫有责 ——让我们都来做环保小卫士 XX小学三(3)班.
第8章 回归分析 本章教学目标: 了解回归分析在经济与管理中的广泛应用; 掌握回归分析的基本概念、基本原理及其分析应用的基本步骤;
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Object-Oriented Programming in C++ 第一章 C++的初步知识
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
第四章 小技巧.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
导数的应用 ——函数的单调性与极值.
强酸(碱)溶液 一元弱酸(碱)溶液 多元弱酸(碱)溶液 两性物质 混合酸碱溶液 各种体系[H+]浓度的计算
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
程式結構&語法.
3.8.1 代数法计算终点误差 终点误差公式和终点误差图及其应用 3.8 酸碱滴定的终点误差
第三章 C++的语句和简单的程序设计 主要内容:
第 二 章 数据类型、运算符与表达式.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
第七章  事业单位支出的核算      §第一节  支出概述     §第二节  拨出款项     §第三节  各项支出     §第四节  成本费用.
第一講 函數之圖形與極限 內容: 函數的定義。 函數的表示法。 函數的運算。 函數的圖形。 函數極限的定義。 函數單邊極限的定義。
保留字與識別字.
物件導向程式設計 CH2.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
新课标人教版课件系列 《高中数学》 必修5.
九年级 上册 22.3 实际问题与二次函数 (第1课时).
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
本校中三及中四級學生 沒有 好好利用課室的電力能源.
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
第五节 缓冲溶液pH值的计算 两种物质的性质 浓度 pH值 共轭酸碱对间的质子传递平衡 可用通式表示如下: HB+H2O ⇌ H3O++B-
台南市政府 節約能源成效簡報.
挑戰C++程式語言 ──第9章 函數.
#include <iostream.h>
第10章 发动机起动系 10.1 概述 10.2 起动机.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
活度系数γ=1,离子积Kw、任意n元酸HnA第m级电离常数Kam、分析浓度CHnA已知且为真值的情况下酸的水溶液[H+]近似计算的误差分析
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
第二章 数据类型、运算符和表达式 §2.1 数据与数据类型 §2.2 常量、变量和标准函数 §2.3 基本运算符及其表达式 目 录 上一章
Chapter 1 函數 1.1 函數的定義 1.2 基本函數 1.3 函數的運算 1.4 函數的圖形.
第三节 水溶液的酸碱性及pH计算 一、水的质子自递反应 水的质子自递反应: 水分子是一种两性物质,它既可 给出质子,又可接受质子。于是在水
用字母表示数.
1200: A DP problem ★★☆☆☆ 題組:Problem Set Archive with Online Judge
Presentation transcript:

一元弱酸pH值的计算机数值求解 化学系1班 殷乃宁

一、问题的提出: 一元弱酸溶液质子条件式: [H+] = [A-] + [OH-] 利用平衡常数式将各项变为[H+]的函数,即

代入[HA]的型体公式: 得到一元三次方程 [H+]3+Ka[H+]2- (Kac + Kw)[H+]-Ka Kw = 0 二元弱酸,精确式为四次方程。 三元弱酸,精确式为五次方程。

二、问题的分析: 利用计算机编程来解决这个问题,主要有以下几种方法:二分法,迭代法,牛顿法。 二分法: 牛顿法:

二分法: 函数f(x)在某个区间(a,b)内连续且仅有一个根x* 取中点x0 = 1/2(a+b) 如果f(x0)=0,则1/2(a+b)即为根,否则将区间分为两半,进行扫描,检查f(x0)与f(a)是否同号。

BACK 如果同号,说明所求的根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)即为满足精度要求的方程的根。 BACK

牛顿法: 已知方程f(x) = 0的一个近似根x0 泰勒展开f(x)=f(x0)+f’(x0)(x- x0)+f’’(x0)(xx0)2+… 迭代公式为:f(xk)+f’(xk)(xk+1- xk) = 0, xk+1是一个 近似根。

下面将以某一元弱酸(设pKa=5,c=0.10mol/L,精度:0.01.)求pH值为例,使用C++语言说明两种方法的应用。

二分法 #include <iostream.h> #include <iomanip.h> #include <math.h> double Fx(double,double,double); const double Kw = 1.0E-14; int main() { double k,c,r,x0,A,B,PH; double pka; cout<<"pKa="; cin>>pka;

cout<<"Ka="<<endl; cin>>k; cout<<"c="; cin>>c; cout<<"精度:"; cin>>r; 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; }

PH=-log10(B); cout<<"该一元酸的pH=" <<setprecision(2) <<setiosflags(ios::fixed|ios::showpoint)<<P<<endl; return 0; } //function definition double Fx(double s,double K,double C) { return(((s+K)*s)*s)-(K*C+Kw)*s-K*Kw);

牛顿法 #include <iostream.h> #include <iomanip.h> #include <math.h> 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;

cout<<"pKa="; cin>>pka; cout<<"c="; cin>>c; cout<<"精度:"; cin>>r; k=pow(10,-pka); x0 = sqrt(k*c); x1 = x0-Fx(x0,k,c)/DFx(x0,k,c); while (fabs((x1-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)<<PH<<endl; 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值 方法简单,快捷,准确。 为学习和研究相关问题提供方便。

谢谢