ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:97.50KB ,
资源ID:8821572      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8821572.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(python 求一元函数极小值-第7章 函数的极小值.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

python 求一元函数极小值-第7章 函数的极小值.doc

1、 第7章 一元函数极小值 7.1最优化方法简介 一、最优化方法 在给定条件下,尽你尽你力所能及地得出最好的解的方法称为最优化方法。 最优化方法解决问题的一般步骤是: 1. 构造一个数学模型 Q = f ( x1,x2,x3,..... xn) 应确保构造的模型有极小值。 2. 找出使 Q 最小的自变量 x1,x2, ..., xn . 如果 自变量只有一个, 即Q = f( x ) , 则此时称为一元函数的最优化。下面我们只讨论一元函数的最优化问题。 二、求解一元函数最优化问题的求导数方法 如果f(x) 可以写出解析式,并且

2、可以求导数, 设 x* 处是极化小值,则有 f'(x*)=0 f''( x* ) < 0 遗憾的是现实中, 我们导出的数据模型,很难求导数。 三、求解一元函数最优化问题的搜索方法 求解一元函数最优化问题的搜索方法分为全面搜索法和逐步搜索法。 如果要求解 "对于 f(x) 在区间 [a,b] 上的极小点 x* ", 要求相对精度 ε=10E-5 则: | x计算 - x* | < ε ( |x计算|+|x*| ) 我们此处仅介绍全面搜索法。 全面搜索法(也叫迈步法) 全面搜索法的计算方案: (1

3、) 将区间 [a,b] 分成 n 等份,每份长度dx=(b-a)/n在每个分点上计算函数值,可以知道函数在哪个分点上的值最小,设为 Xmin。 (2) 新的求解区间为 [Xm-dx, Xm+dx],记为[ a1, b1 ] (3) 如果 a1与b1很接近,即满足 | a1 - b1 | < ε ( |a1|+|b1| ) 则: 我们要找的最小点是( Xm, f(Xm) ),结束搜索。 否则: 令 a=a1; b = b1 转(1) 在海湾战争中,美军

4、曾使用地毯式轰炸,就是一种二维迈步法,又称网格法,亦称拉网法。 迈步法是搜索法中最基本的方法,它非常有效,缺点是计算量大了一点。在量子化学计算中,Xα计算方法就使用了这种方法( 我是从它的打印计算结果中分析出来的)。 例1 : 求函数 的极小点。 #coding=gbk # 迈步法求函数f(x) 在[a,b]的极小点 #入口 : # f 模型函数 # a,b 待优化参数的起始区间 [a,b] def maibu( f , a , b ): n = 20 while True: dx = (b-a)/n xm

5、in = a fmin = f(xmin) for i in range(1,n+1): xi = a+dx*i fi = f(xi) if fi

6、rn (a+b)/2 def f( x ): return (x-3)**2+10 xp =maibu(f, -1000,1000) print("极小值点:(",xp,",",f(xp),")") 极小值点:( 3.0 , 10.0 ) 7.2 求一元弱酸的pH值 在分析化学中,我们已经学习过一元弱酸溶液的pH值的近似公式。 在这里,我们试着用求极小值的方法去求解“精确”解,即不作近似。 电荷平衡: 根据分布系数知: 所以: 要想直解求解方程(2)有点困难。 我们构造模型函数: 将求解方程(2)的问

7、题转化为求使用Q最小的[H+] ,即问题转化为求一元函数极小值的问题。说明:(2)式中 CHA, k1, kw 均为常数。 例2求0.01M HA( k1=1.8E-5)溶液的pH. #coding=gbk #求0.01M HA( k1=1.8E-5)溶液的pH #---------------------------------- # 迈步法求函数f(x) 在[a,b]的极小点 #入口 : # f 模型函数 # a,b 待优化参数的起始区间 [a,b] def maibu( f , a , b ): n = 20 while Tr

8、ue: dx = (b-a)/n xmin = a fmin = f(xmin) for i in range(1,n+1): xi = a+dx*i fi = f(xi) if fi

9、 *(abs(a)+abs(b) ): return (a+b)/2 KW = 1E-14 C = 0.01 K1 = 1.8E-5 def f( pH ): H = 10**(-pH) OH = KW / H A = C *( K1/(H+K1)) return ( H - (OH+A) )**2 XP = maibu( f, 0, 14) print( "0.01M HA的pH=", XP) 0.01M HA的pH= 3.381574 下面我们研究用近似公式和精确解进行比较,依次计算 0.1 、

10、0.01、0.001、0.0001、0.00001M的HA溶液的pH值。 #coding=gbk #求0.1 0.01 0.001 0.0001 0.00001M HA( k1=1.8E-5)溶液的pH #---------------------------------- # 迈步法求函数f(x) 在[a,b]的极小点 #入口 : # f 模型函数 # a,b 待优化参数的起始区间 [a,b] def maibu( f , a , b ): n = 20 while True: dx = (b-a)/n

11、xmin = a fmin = f(xmin) for i in range(1,n+1): xi = a+dx*i fi = f(xi) if fi

12、turn (a+b)/2 KW = 1E-14 C = 1.0 K1 = 1.8E-5 def f( pH ): H = 10**(-pH) OH = KW / H A = C *( K1/(H+K1)) return ( H - (OH+A) )**2 import math for i in range(1,6): C = C/10 XP = maibu( f, 0, 14) XJS = - math.log10(math.sqrt(K1*C))#用近似公式计算的pH H = 10**

13、XP) HJS = 10**(-XJS) re = (HJS-H)/H*100.0 #相对误差 print( "%7.5fM HA的pH =%10.3f 近似计算pH =%10.3f" %(C,XP,XJS)) print( "%7.5fM HA的[H]=%10.2E 近似计算[H]=%10.2E 相对误差=%7.2f%%" %(C,H,HJS,re)) 0.10000M HA的pH = 2.875 近似计算pH = 2.872 0.10000M HA的[H]= 1.33E-03 近似计算[H]= 1.34E

14、03 相对误差= 0.67% 0.01000M HA的pH = 3.382 近似计算pH = 3.372 0.01000M HA的[H]= 4.15E-04 近似计算[H]= 4.24E-04 相对误差= 2.14% 0.00100M HA的pH = 3.901 近似计算pH = 3.872 0.00100M HA的[H]= 1.25E-04 近似计算[H]= 1.34E-04 相对误差= 6.93% 0.00010M HA的pH = 4.464 近似计算pH = 4.372 0.00010M

15、 HA的[H]= 3.44E-05 近似计算[H]= 4.24E-05 相对误差= 23.44% 0.00001M HA的pH = 5.145 近似计算pH = 4.872 0.00001M HA的[H]= 7.16E-06 近似计算[H]= 1.34E-05 相对误差= 87.47% 这个结果告诉我们,当弱酸的浓度比较大时,近似计算公式还是可以用的。 例3 计算0.1M NaHA(草酸氢钠) 溶液的pH值 草酸氢钠的电荷平衡: 上式中: #coding=gbk # 计算0.1M NaHA(草酸氢钠) 溶液的pH值 # 已知

16、 k1=0.0562 k2=5.248e-05 #---------------------------------- # 迈步法求函数f(x) 在[a,b]的极小点 #入口 : # f 模型函数 # a,b 待优化参数的起始区间 [a,b] def maibu( f , a , b ): n = 20 while True: dx = (b-a)/n xmin = a fmin = f(xmin) for i in range(1,n+1):

17、 xi = a+dx*i fi = f(xi) if fi

18、 2[A] -[OH]) ^ 2 # k1=0.0562 k2=5.248e-05 C = 0.1 # H2Ac的分析浓度 (草酸氢钠) CNa = C # [Na+] K1 = 0.0562 K2 = 5.248e-05 KW = 1E-14 #水的离子积 #构造模型函数 def f ( pH ): H = 10**(-pH ) OH = KW/H HA = C * K1*H/( H*H + K1*H + K2*K1) A = C * K1*K2/( H*H + K1*H + K2*K1)

19、 return ( H +CNa - HA - OH - 2*A ) ** 2 XP = maibu( f, 0, 14) print( "计算0.1M NaHA(草酸氢钠) 溶液的pH值") print( "已k1=0.0562 k2=5.248e-05") print( "pH=", "%7.3f" % XP) 计算0.1M NaHA(草酸氢钠) 溶液的pH值 已k1=0.0562 k2=5.248e-05 pH= 2.867 例4 计算10ml 0.1M NaHA(草酸氢钠) 溶液+ 2ml 0.01 M NaOH 溶

20、液的pH值 分析: 混合前草酸氢钠 C1 =0.1 M , V1 = 10 ml NaOH C2 =0.01 M , V2 = 2 ml 混合后的分析浓度 电荷平衡: 式中 我们发现例4与例3的电荷平衡式是一样的,唯一不同的是 [Na+]的计算式略有不同。 #coding=gbk #迈步法求10ml 0.2M草酸氢钠+2ml 0.02M NaOH溶液的pH # 计算求10ml 0.1M草酸氢钠+2ml 0.01M NaOH溶液的pH # 已知 k1=0.0562 k2=5.248e-05 #

21、三分法求函数f的极小点的x值 #入口 : # f 模型函数 # a,b 待优化参数的起始区间 [a,b] def maibu( f , a , b ): n = 20 while True: dx = (b-a)/n xmin = a fmin = f(xmin) for i in range(1,n+1): xi = a+dx*i fi = f(xi) if fi

22、 fmin = fi xmin = xi a= xmin - dx b= xmin + dx if abs(b-a)<= 1E-5 *(abs(a)+abs(b) ): return (a+b)/2 # 模型函数 Q = ([H] + [Na] - [HA] - 2[A] -[OH]) ^ 2 # k1=0.0562 k2=5.248e-05 C1 = 0.1 # 草酸氢钠的初始浓度 V1 = 10 C2 = 0.01 # NaO

23、H的初始浓度 V2 = 2 #混合后 CNaHA = C1*V1/(V1+V2) CNaOH = C2*V2/(V1+V2) CNa = CNaHA + CNaOH # [Na+] K1 = 0.0562 K2 = 5.248e-05 KW = 1E-14 #水的离子积 #构造模型函数 def f ( pH ): H = 10**(-pH ) OH = KW/H HA = CNaHA * K1*H/( H*H + K1*H + K2*K1) A = CNaHA * K1*K2/( H*H + K1*H

24、 K2*K1) return ( H +CNa - HA - OH - 2*A ) ** 2 XP = maibu( f, 0, 14) print( "计算10ml 0.1M草酸氢钠+2ml 0.01M NaOH溶液的pH") print( "已k1=0.0562 k2=5.248e-05") print( "pH=", "%7.3f" % XP) 计算10ml 0.1M草酸氢钠+2ml 0.01M NaOH溶液的pH 已k1=0.0562 k2=5.248e-05 pH= 2.998 例5:求10ml 0.1M草酸

25、氢钠+10ml 0.1M 醋酸 + 2ml 0.02M NaOH溶液的pH 已知 草酸的电离常数 k1=0.0562 k2=5.248e-05 醋酸电离常数 k1-HAC = 1.8e-5 #coding=gbk #迈步法求10ml 0.1M草酸氢钠+10ml 0.1M 醋酸 + 2ml 0.02M NaOH溶液的pH # 已知 草酸的电离常数 # k1=0.0562 k2=5.248e-05 # 醋酸电离常数 # k1-HAC = 1.8e-5 #-----------

26、 #入口 : # f 模型函数 # a,b 待优化参数的起始区间 [a,b] def maibu( f , a , b ): n = 20 while True: dx = (b-a)/n xmin = a fmin = f(xmin) for i in range(1,n+1): xi = a+dx*i fi = f(xi)

27、 if fi

28、 草酸氢钠的初始浓度 V1 = 10 C2 = 0.01 # NaOH的初始浓度 V2 = 2 C3 = 0.1 # 醋酸的初始浓度 V3 = 10 #混合后 CNaHA = C1*V1/(V1+V2+V3) CNaOH = C2*V2/(V1+V2+V3) CHAc = C3*V3/(V1+V2+V3) CNa = CNaHA + CNaOH # [Na+] K1 = 0.0562 K2 = 5.248e-05 K_HAc = 1.8E-5 KW = 1E-14 #水的离子积 #构造模型函数 def f

29、 pH ): H = 10**(-pH ) OH = KW/H HA = CNaHA * K1*H/( H*H + K1*H + K2*K1) A = CNaHA * K1*K2/( H*H + K1*H + K2*K1) Ac = CHAc * ( K_HAc/( H + K_HAc) ) return ( H +CNa - HA - OH - 2*A - Ac ) ** 2 XP = maibu( f, 0, 14) print( "计算10ml 0.1M草酸氢钠+10ml 0.1M 醋酸 + 2ml

30、0.02M NaOH溶液的pH") print( "已知k1=0.0562 k2=5.248e-05") print( "已知k_HAc=1.8E-5") print( "pH=", "%7.3f" % XP) 计算10ml 0.1M草酸氢钠+10ml 0.1M 醋酸 + 2ml 0.02M NaOH溶液的pH 已知k1=0.0562 k2=5.248e-05 已知k_HAc=1.8E-5 pH= 2.966 例6:计算10ml 0.1M草酸氢钠+10ml 蒸馏水 + 2ml 0.02M NaOH溶液的pH。 为了与例对比,我们用蒸馏水代替醋酸试一下

31、结果会怎样? #coding=gbk #迈步法求10ml 0.1M草酸氢钠+10ml 蒸馏水 + 2ml 0.02M NaOH溶液的pH # 已知 草酸的电离常数 # k1=0.0562 k2=5.248e-05 #------------------------------------------------------------ #入口 : # f 模型函数 # a,b 待优化参数的起始区间 [a,b] def maibu( f , a , b ): n = 20 while True: d

32、x = (b-a)/n xmin = a fmin = f(xmin) for i in range(1,n+1): xi = a+dx*i fi = f(xi) if fi

33、b) ): return (a+b)/2 # 模型函数 Q = ([H] + [Na] - [HA] - 2[A] -[OH]) ^ 2 # k1=0.0562 k2=5.248e-05 C1 = 0.1 # 草酸氢钠的初始浓度 V1 = 10 C2 = 0.01 # NaOH的初始浓度 V2 = 2 V3 = 10 #混合后 CNaHA = C1*V1/(V1+V2+V3) CNaOH = C2*V2/(V1+V2+V3) CNa = CNaHA + CNaOH # [Na+] K1 = 0.

34、0562 K2 = 5.248e-05 KW = 1E-14 #水的离子积 #构造模型函数 def f ( pH ): H = 10**(-pH ) OH = KW/H HA = CNaHA * K1*H/( H*H + K1*H + K2*K1) A = CNaHA * K1*K2/( H*H + K1*H + K2*K1) return ( H +CNa - HA - OH - 2*A ) ** 2 XP = maibu( f, 0, 14) print( "计算10ml 0.1M草酸氢钠+10ml 蒸馏水 + 2ml 0.02M NaOH溶液的pH") print( "已知 k1=0.0562 k2=5.248e-05") print( "pH=", "%7.3f" % XP) 计算10ml 0.1M草酸氢钠+10ml 蒸馏水 + 2ml 0.02M NaOH溶液的pH 已知 k1=0.0562 k2=5.248e-05 pH= 3.048

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服