d56fac5f-8ced-40ea-b5b5-135e3c54c.pptVIP

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
d56fac5f-8ced-40ea-b5b5-135e3c54c.ppt

【例5-20】用二分迭代法求方程2x3-4x2+3x-6=0在(-10,10)之间的根。 用二分法求方程根的前提是方程f(x)=0有两个粗略的解x1 和x0 ,这就是初值,对初值要求: (1)f(x1)和f(x0)符号相反; (2)f(x) 在(x1,x0)内单调升或单调降。 【算法描述】 (1)取两点区间的中点:x=(x1+x0)/2,这就是迭代公式。 (2)测试中点的函数值f(x)是否满足精度要求,这是迭代条件,若满足则用x作为方程的近似根,迭代过程结束; (3)如果不满足精度,则用x与 x1 和x0 中的一个组成新的区间,重复过程(2)不断地缩小区间。 在组成新区间时,如果中点的函数值与x1 点的函数值同号,则新区间为(x,x0),否则为(x1,x)。 【源程序】 #includecmath #includeiostream using namespace std; //function f(x) double fun(double x) { return ((2*x-4)*x+3)*x-6; } // find the root using bisection method double bisection(double x0,double x1,double eps=1.0E-3) { double x,f,f0; x=(x0+x1)/2; //[ x0, x1 ], [ x0, x, x1 ] f0=fun(x0); //左端点的函数值 f=fun(x); while (fabs(f) eps) // 循环执行(即迭代)的条件 { if(f0*f0) // 判断x0的函数值与中点的函数值是否同号 { x1=x; } else { x0=x; f0=f; } x=(x0+x1)/2; f=fun(x); } return x; } function main int main() { double a=-10,b=10,eps=1.0e-8; double x; x=bisection(a,b); coutroot=xendl;; x=bisection(a,b,eps); coutroot=xendl;; return 1; } 求非线性方程的根 牛顿法、弦割法 【例5-22】找出2~200之间的所有孪生素数。 孪生素数 指间隔为 2 的相邻素数,例如3和5,5和7,其中最小的孪生素数是3和5。 解决方法 编写一个函数用来判断某个整数是否为素数,该函数的类型为bool型,如果判断结果为素数则返回true,否则返回false 在主函数中调用该函数,判断某个整数i和i+2是否同时为素数。 【源程序】 #include iostream using namespace std; bool isprime(int n) // 判断某个整数是否为素数的函数 { int i; for(i=2;in;i++) if(n%i==0) return false; // 找到n的某个因子后返回false值 return true; // 没有找到n的因子时返回true值 } int main() { int i; cout2~200之间的孪生素数如下:endl; for(i=2;i200;i++) { if(isprime(i) isprime(i+2)) //同时判断i和i+2是否同时为素数 couti,i+2endl; } return 1; } 【例5-23】使用200以内的偶数验证哥德巴赫猜想。 哥德巴赫猜想的内容: 一个不小于4的偶数可以表示为两个素数之和,如4=2+2,8=3+5,10=3+7等。 方法: 对200以内的大于4的每个偶数进行验证,即找出每个偶数的两个素数之和的分解方法即可。 【源程序】 #include iostream using namespace std; bool isprime(int n) // 判断素数的函数 { int i; for(i=2;in;i++) if(n%i==0) return false; return true; } int main() { int i,j; cout使用200以内的偶数验证哥德巴赫猜想:endl; for(i=4;i=200;i=i+2) // 产生4~200之间的每个偶数 {

文档评论(0)

fa159yd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档