2022年非线性方程的数值解法 .pdf

上传人:Q****o 文档编号:31704871 上传时间:2022-08-08 格式:PDF 页数:7 大小:257.56KB
返回 下载 相关 举报
2022年非线性方程的数值解法 .pdf_第1页
第1页 / 共7页
2022年非线性方程的数值解法 .pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《2022年非线性方程的数值解法 .pdf》由会员分享,可在线阅读,更多相关《2022年非线性方程的数值解法 .pdf(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、南昌航空大学数学与信息科学学院实 验 报 告课程名称:计 算 方 法实验名称:非线性方程的数值解法实验类型:验证性综合性 设计性实验室名称: D 504 班 级 学 号 : 08061115 学 生 姓 名 :杨朝峰任 课 教 师 ( 教 师 签 名 ) :成绩 :实 验 日 期 : 2009-10-16 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 南昌航空大学数学与信息科学学院实验报告1 一、实验目的通过本实验的学习,应掌

2、握非线性方程的数值解法的基本思想和原理,深刻认识现实中非线性方程数值的意义;明确代数精度的概念;熟悉几种基本的常用的解非线性方程的数值的方法,如二分法、迭代法等,了解它们各自的优缺点及适用范围,并能用来解决其他实际问题;熟悉非线性方程的数值的程序编制。二、实验题目试计算方程发f(x)=x4+2x3-x+1=0于-2,1的所有实根,要求10-6。1.运用非线性方程数值解法的二分法解题。2.运用非线性方程数值解法的迭代法解题三、实验原理(包括所使用方法的原理、公式和程序框图) 1. 原理 :对于连续的函数f(x) ,由罗尔中值定理广泛地推出利用含根区间a,b 逐步分半,检查函数值符号的变化,以便确

3、定含根的充分小区间而得到二分法;用函数 f(x) 构造出一个x=g(x), 再选取方程根的一个初始近似值x0, 按xk+1=g(xk)逐次代入法。2. 公式 :利用非线性方程的其中两种方法二分法以及迭代法。3. 程序框图 :利用二分法的程序框图如框图1:利用迭代法的程序框图如框图2:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 南昌航空大学数学与信息科学学院实验报告2 框图 1 二分法框图 2 迭代法输入区间 a,b的值输出

4、x 的值调用函数 function ()调用函数 cmit()调用函数 root()输出没有达到精度要求信息10-6输入初始值 x K=1,2, ,N0计算xk+1输出 x X1x 输出没有数值信息10-6k100 是否成立名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 南昌航空大学数学与信息科学学院实验报告3 3. 源程序代码 :利用二分法的源程序如下:#include #include float function(floa

5、t x); /*函数f(x)的申明 */ main() float root1(float x1,float x2); /*解得近似值函数的申明 */ float root2(float x1,float x2); /*解得近似值函数的申明 */ float a=-2,b=1,c1,c2; c1=root1(a,b); /*解得-2,0近似值函数的调用 */ c2=root2(a,b); /*解得0,1 近似值函数的调用 */ printf(root is %10.6fn%10.6fn,c1,c2); /*输出结果 */ float function(float x) /*函数f(x)的定义

6、*/ float y; y=pow(x,4)+2*pow(x,3)-x-1; return y; float cmid(float x1,float x2) /*计算两个数的中值 */ float c; c=(x1+x2)/2; return (c); float root1(float x1,float x2) /*解得-2,0近似值函数的定义 */ float cmid(float x1,float x2); float x,y,y1; do x=cmid(x1,x2); y1=function(x1); y=function(x); if(y*y1=1e-6); return (x);

7、float root2(float x1,float x2) /*解得0,1 近似值函数的定义 */ float cmid(float x1,float x2); float x,y,y2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 南昌航空大学数学与信息科学学院实验报告4 do x=cmid(x1,x2); y2=function(x2); y=function(x); if(y*y2=1e-6);/*用精度来作为循环结

8、束的条件*/ return (x); 利用迭代法的源程序如下:#include #include main() float function(float x); float x1,x; int k; x1=0.7; /*初值的选定 */ for(k=1;k1000;k+) x= function(x1); if(fabs(x-x1)1e-6) / *用精度来作为循环结束的条件*/ printf(%10.6fn,x); break; else x1=x; float function(float x) /*利用牛顿法公式作为迭代函数的定义*/ float y; y=x-(pow(x,4)+2*p

9、ow(x,3)-x-1)/(4*pow(x,3)+6*pow(x,2)-1); return y; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 南昌航空大学数学与信息科学学院实验报告5 四、实验过程中需要记录的数据:1. 实验中要记录迭代的次数N0和 k 的数值。2. 在运行程序结束后要显示记录的两个实验的计算结果。五、 实验数据处理及结果分析1. 在实验进行之前, 通过简单的计算知道实验1 中的区间 -2,1有两个实根,其

10、中一个为负实根,另一个为正实根。 但是运用二分法是无法之间求出两个不同的实根的,因此在编程的时候把区间化为-2,0和0,1 分别计算结果。2. 运用迭代法时,方程的真实根是无法确定的,即使知道精度也难以算出迭代的次数N数值,因此认为的将 N定义为 100 或者更大,只是运行时效率问题而已。3 运行程序的结果如下:3. 实验的结果是存在一定的误差。六、 实验中存在的问题及解决方案1. 在开始时,运用循环for(k=1;k(log(b-a)-log(0.000001)/log(2.0);k+) c=(a+b)/2; if(fabs(function(c)0.000001) printf(k=%dx

11、=%9.5f,k,c); else if(function(a)*function(c)0) d=c;c=b;b=d; else d=c;c=a;a=d;得到的结果是:经过分析知道程序的顺序有误,而且编程的思想错误,它的f(a)*f(b)不小于 0,因此我改变思想运用上述的源程序编译得到结果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 南昌航空大学数学与信息科学学院实验报告6 2. 运用迭代法解该方程时总会在DOS 环境下报

12、以下的错误:其实运用迭代法时是有一定的局限性的,即迭代法的局限收敛性。 如果初值选的不恰当是得不到结果的,因此要在真实值附近取值。3. 在做迭代时开始选取g(x)=x4+2x3+1为迭代函数时出现结果为因此就选取牛顿雷福生方法的公式作为迭代函数。4. 在做迭代法时一次无法同时输出两个值,所以选x=0.7 和 x=-1.8 为初值。七、 心得体会通过本次编程, 在一定程度下了解并能基本掌握非线性方程的基本思想和方法,了解到计算方法这门课程能解决很多现实中难以解决的问题。通过编程电脑实现很多现实理论不能解决的问题。更加增加了学习的兴趣和动力。但在开始的时候因为自己对非线性方程的思想不是十分清楚导致程序得不到答案甚至无法运行程序,其实实验也是可以检查我们对知识点的掌握程度。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com