欢迎来到天天文库
浏览记录
ID:57084044
大小:87.50 KB
页数:12页
时间:2020-08-01
《二分法、简单迭代法的matlab代码实现教学文案.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、二分法、简单迭代法的matlab代码实现精品文档实验一非线性方程的数值解法(一)信息与计算科学金融崔振威201002034031一、实验目的:熟悉二分法和简单迭代法的算法实现。二、实验内容:教材P402.1.5三、实验要求1根据实验内容编写二分法和简单迭代法的算法实现2简单比较分析两种算法的误差3试构造不同的迭代格式,分析比较其收敛性(一)、二分法程序:functionef=bisect(fx,xa,xb,n,delta)%fx是由方程转化的关于x的函数,有fx=0。%xa解区间上限%xb解区间下限%n最多循环步数,防止死循环。%delta为允许误差x=xa;fa=eval(fx);x=
2、xb;fb=eval(fx);disp('[nxaxbxcfc]');fori=1:nxc=(xa+xb)/2;x=xc;fc=eval(fx);X=[i,xa,xb,xc,fc];disp(X),iffc*fa<0xb=xc;elsexa=xc;endif(xb-xa)3、)>eps&k>fplot('[x^5-3*x^3-2*x^2+2]',[-3,3]);grid得下图:收集于网络,如有侵权请联系管理员删除精品文档由上图可得知:方程在[-3,3]区间有根。(2)、二分法输出结果>>f='x^5-3*x^3-2*x^2+2'f=x^5-3*x^3-2*x^2+2>>bisect(f,-3,3,20,10^(-12))2.0000-3.00000-1.50000.0314、33.0000-3.0000-1.5000-2.2500-31.61824.0000-2.2500-1.5000-1.8750-8.43015.0000-1.8750-1.5000-1.6875-2.96326.0000-1.6875-1.5000-1.5938-1.21817.0000-1.5938-1.5000-1.5469-0.53828.0000-1.5469-1.5000-1.5234-0.24059.0000-1.5234-1.5000-1.5117-0.101510.0000-1.5117-1.5000-1.5059-0.034311.0000-1.5059-1.5000-5、1.5029-0.001412.0000-1.5029-1.5000-1.50150.015013.0000-1.5029-1.5015-1.50220.006814.0000-1.5029-1.5022-1.50260.002715.0000-1.5029-1.5026-1.50270.0007收集于网络,如有侵权请联系管理员删除精品文档16.0000-1.5029-1.5027-1.5028-0.000317.0000-1.5028-1.5027-1.50280.000218.0000-1.5028-1.5028-1.5028-0.000119.0000-1.5028-1.5028-6、1.50280.000120.0000-1.5028-1.5028-1.5028-0.00002、迭代法求方程:迭代法输出结果:>>f=inline('x^5-3*x^3-2*x^2+2');>>[x0,k]=iterate(fun1,2)x0=2k=1>>[x0,k]=iterate(fun1,1.5)x0=NaNk=6>>[x0,k]=iterate(fun1,2.5)x0=NaNk=5(3)、误差分析:由二分法和迭代法输出结果可知,通过定点迭代法得出方程的解误差比二分法大,而利用二分法求出的结果中,可以清楚看出方程等于零时的解,其误差比迭代法小。b、g(x)=cos(sin(x))7、二分法求方程:(1)、在matlab的命令窗口中输入命令:>>fplot('[cos(sin(x))]',[-4,4]);grid得下图:收集于网络,如有侵权请联系管理员删除精品文档由上图可得知:方程在[-4,4]区间无根。(2)、二分法输出结果>>f='cos(sin(x))'f=cos(sin(x))>>bisect(f,-4,4,20,10^(-12))2.000004.00002.00000.61433.00002.0000
3、)>eps&k>fplot('[x^5-3*x^3-2*x^2+2]',[-3,3]);grid得下图:收集于网络,如有侵权请联系管理员删除精品文档由上图可得知:方程在[-3,3]区间有根。(2)、二分法输出结果>>f='x^5-3*x^3-2*x^2+2'f=x^5-3*x^3-2*x^2+2>>bisect(f,-3,3,20,10^(-12))2.0000-3.00000-1.50000.031
4、33.0000-3.0000-1.5000-2.2500-31.61824.0000-2.2500-1.5000-1.8750-8.43015.0000-1.8750-1.5000-1.6875-2.96326.0000-1.6875-1.5000-1.5938-1.21817.0000-1.5938-1.5000-1.5469-0.53828.0000-1.5469-1.5000-1.5234-0.24059.0000-1.5234-1.5000-1.5117-0.101510.0000-1.5117-1.5000-1.5059-0.034311.0000-1.5059-1.5000-
5、1.5029-0.001412.0000-1.5029-1.5000-1.50150.015013.0000-1.5029-1.5015-1.50220.006814.0000-1.5029-1.5022-1.50260.002715.0000-1.5029-1.5026-1.50270.0007收集于网络,如有侵权请联系管理员删除精品文档16.0000-1.5029-1.5027-1.5028-0.000317.0000-1.5028-1.5027-1.50280.000218.0000-1.5028-1.5028-1.5028-0.000119.0000-1.5028-1.5028-
6、1.50280.000120.0000-1.5028-1.5028-1.5028-0.00002、迭代法求方程:迭代法输出结果:>>f=inline('x^5-3*x^3-2*x^2+2');>>[x0,k]=iterate(fun1,2)x0=2k=1>>[x0,k]=iterate(fun1,1.5)x0=NaNk=6>>[x0,k]=iterate(fun1,2.5)x0=NaNk=5(3)、误差分析:由二分法和迭代法输出结果可知,通过定点迭代法得出方程的解误差比二分法大,而利用二分法求出的结果中,可以清楚看出方程等于零时的解,其误差比迭代法小。b、g(x)=cos(sin(x))
7、二分法求方程:(1)、在matlab的命令窗口中输入命令:>>fplot('[cos(sin(x))]',[-4,4]);grid得下图:收集于网络,如有侵权请联系管理员删除精品文档由上图可得知:方程在[-4,4]区间无根。(2)、二分法输出结果>>f='cos(sin(x))'f=cos(sin(x))>>bisect(f,-4,4,20,10^(-12))2.000004.00002.00000.61433.00002.0000
此文档下载收益归作者所有