不动点迭代法非线性方程求解.pdf
不动点迭代法非线性方程求解不动点迭代法非线性方程求解MATLAB 程序设计实践课程考核1、编程实现以下科学计算算法,并举一例应用之。(参考书籍精通 MATLAB科学计算,王正林等著,电子工业出版社,2009 年)“不动点迭代法非线性方程求解”2、编程解决以下科学计算问题。7.某工厂 2005 年度各季度产值(单位:万元)分别为:450.6、395.9、410.2、450.9,试绘制折线图和饼图,并说明图形的实际意义。22xy 8.根据绘制平面曲线,并分析参数对其形状的影响。,,1a22a25,a2.按要求对指定函数进行插值和拟合。0(1)按表 6.4 用 3 次样条方法插值计算范围内整数点的正弦值和 0900 范围内整数点的正切值,然后用 5 次多项式拟合方法计算相同的函数值,075并将两种计算结果进行比较。表 6.4 特殊角的正弦与正切值表(度)0 15 30 45 60 75 90 asina 0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000 tana 0 0.26790.5774 1.0000 1.7320 3.7320(2)按表 6.5 用 3 次多项式方法插值计算 1100 之间整数的平方根。表 6.5 1100 内特殊值的平方根表 N 1 4 9 16 25 36 49 64 81 1001 2 3 4 5 6 7 8 9 10 N1、不动点迭代非线性方程求解解:算法说明:在 Matlab 中编程实现不动点迭代法的函数为 StablePoint功能:用不动点迭代法求函数的一个零点。调用格式:root,n=StablePoint(f,x0,eps)。其中,f 为函数名;x0 为初始迭代向量;eps 为根的精度;root 为求出的函数零点;n 为迭代步数。流程图:输入参数 f,x0,eps迭代算根否比较精度是否符合要求是输出根值和迭代步数不动点迭代法的 MATLAB 程序代码:functionroot,n=StablePoint(f,x0,eps)%用不动点迭代法求函数 f 的一个零点%初始迭代量:x0%根的精度:eps%求出的函数零点:root%迭代步数:nif(nargin=2)eps=1.0e-4;endtol=1;root=x0;n=0;while(toleps)n=n+1;r1=root;root=subs(sym(f),findsym(sym(f),r1)+r1;%迭代的核心公式tol=abs(root-r1);end实例:1 采用不动点迭代法求方程的一个根。,,x20 x流程图:开始确定函数和参数代入公式输出结果解:在 MATLAB 命令窗口中输入程序代码:r,n=StablePoint(1/sqrt(x)+x-2,0.5)结果输出:r=0.3820n=4从计算结果可以看出,经过四步迭代,得出方程的一个根为 0.38202.编程解决以下科学计算问题7、某工厂 2005 年度各季度产值(单位:万元)分别为 450.6,395.9,410.2,450.9,试绘制折线图和饼图,并说明图像的实际意义。解:流程图:用 subplot 首先对对作图区域分区根据图线类型选择函数:折线图用 plot饼状图用 pie输入数据;图像用 title 标注输出图像源程序代码:%折线图subplot(1,2,1)plot(450.6,395.9,410.2,450.9)title(2005 年度各季度产值-折线图);%饼状图subplot(1,2,2)pie(450.6,395.9,410.2,450.9,1:4,第一季度,第二季度,第三季度,第四季度)title(2005 年度各季度产值-饼图)从折线图可以看出该工厂效益变化趋势,效益在第二季度最低随后逐渐提高,并在第四季度恢复到第一季度的水平;从饼状图可以看出各个季度该工厂效益的比例关系。从这两个图可以合理安排工厂的生产计划。22xy,,18.根据绘制平面曲线,并分析参数对其形状的影响。a22a25,a流程图:定义符号变量 a x y和函数 eq;设置变参量aa(实数矩阵)n 为矩阵的列数;for i=1:neq1=subs(eq,a,aa(i);并用 ezplot 绘制隐函数图形设置图像坐标范围和间隔时间依次作图syms a x yeq=1/a2*x2+y2/(25-a2)-1;aa=0.5:0.5:3.5,5/sqrt(2),3.6:0.5:6.6;m,n=size(aa);for i=1:neq1=subs(eq,a,aa(i);ezplot(eq1,-20 20)drawnowaxis(-20 20-10 10)pause(0.5)end时,随着 a 增大曲线形状由长轴在 y 轴的椭圆逐渐转变为圆(此 0.55/2,a时);时 a 继续增大曲线形状由圆转变为长轴在 x 轴 5/25,aa,5/2的椭圆;a5 时曲线变为双曲线。2.按要求对指定函数进行插值和拟合。0(1)按表 6.4 用 3 次样条方法插值计算范围内整数点的正弦值和 0900 范围内整数点的正切值,然后用 5 次多项式拟合方法计算相同的函数值,075并将两种计算结果进行比较。表 6.4 特殊角的正弦与正切值表(度)0 15 30 45 60 75 90 asina 0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000 tana 0 0.26790.5774 1.0000 1.7320 3.7320流程图:开始输入已知的数据表作为样本;设置插值节点针对不同的方法选用相应的函数及格式将已知数据和插值节点代入求得插值节点处的函数值A(正弦值算法:x=0:pi/12:pi/2;y=0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000;xi=0:pi/180:pi/2;%三次样条差值yi=interp1(x,y,xi,spline)%五次多项式拟合A=polyfit(x,y,5);yj=polyval(A,xi)运行结果:yi=Columns 1 through 110 0.0175 0.0349 0.0524 0.0698 0.0872 0.1045 0.1219 0.1392 0.15640.1737Columns 12 through 220.1908 0.2079 0.2249 0.2419 0.2588 0.2756 0.2923 0.3090 0.32550.3420 0.3583Columns 23 through 330.3746 0.3907 0.4067 0.4226 0.4384 0.4540 0.4695 0.4848 0.50000.5150 0.5299Columns 34 through 440.5446 0.5592 0.5736 0.5878 0.6018 0.6157 0.6293 0.6428 0.65610.6691 0.6820Columns 45 through 550.6947 0.7071 0.7193 0.7313 0.7431 0.7547 0.7660 0.7771 0.78800.7986 0.8090Columns 56 through 660.8191 0.8290 0.8387 0.8480 0.8571 0.8660 0.8746 0.8829 0.89100.8987 0.9062Columns 67 through 770.9135 0.9204 0.9271 0.9335 0.9396 0.9454 0.9510 0.9563 0.96120.9659 0.9703Columns 78 through 880.9744 0.9782 0.9817 0.9849 0.9878 0.9904 0.9927 0.9946 0.99630.9977 0.9987Columns 89 through 910.9995 0.9999 1.0000yj=Columns 1 through 110.0000 0.0174 0.0349 0.0523 0.0697 0.0871 0.1045 0.1218 0.13910.1564 0.1736Columns 12 through 220.1908 0.2079 0.2249 0.2419 0.2588 0.2756 0.2924 0.3090 0.32560.3420 0.3584Columns 23 through 330.3746 0.3907 0.4067 0.4226 0.4384 0.4540 0.4695 0.4848 0.50000.5150 0.5299Columns 34 through 440.5446 0.5592 0.5736 0.5878 0.6018 0.6157 0.6293 0.6428 0.65610.6691 0.6820Columns 45 through 550.6946 0.7071 0.7193 0.7313 0.7431 0.7547 0.7660 0.7771 0.78800.7986 0.8090Columns 56 through 660.8191 0.8290 0.8386 0.8480 0.8571 0.8660 0.8746 0.8829 0.89100.8988 0.9063Columns 67 through 770.9135 0.9205 0.9272 0.9336 0.9397 0.9455 0.9510 0.9563 0.96120.9659 0.9703Columns 78 through 880.9743 0.9781 0.9816 0.9848 0.9877 0.9902 0.9925 0.9945 0.99620.9975 0.9986Columns 89 through 910.9994 0.9998 1.0000通过比较,两种方法得到的结果近似相等。B(正切值算法:x=0:pi/12:5*pi/12;y=0 0.2679 0.5774 1.0000 1.7320 3.7320;xi=0:pi/180:5*pi/12;%三次样条差值yi=interp1(x,y,xi,spline)%五次多项式拟合A=polyfit(x,y,5);yj=polyval(A,xi)运行结果:yi=Columns 1 through 110 0.0184 0.0365 0.0545 0.0724 0.0902 0.1079 0.1255 0.1431 0.16070.1784Columns 12 through 220.1961 0.2138 0.2317 0.2497 0.2679 0.2863 0.3048 0.3236 0.34270.3620 0.3817Columns 23 through 330.4017 0.4221 0.4429 0.4641 0.4858 0.5079 0.5305 0.5537 0.57740.6017 0.6266Columns 34 through 440.6520 0.6780 0.7046 0.7317 0.7593 0.7876 0.8163 0.8456 0.87540.9058 0.9367Columns 45 through 550.9681 1.0000 1.0325 1.0658 1.1003 1.1364 1.1743 1.2145 1.25721.3028 1.3516Columns 56 through 661.4041 1.4604 1.5211 1.5863 1.6565 1.7320 1.81311.9002 1.9936 2.0937 2.2008Columns 67 through 762.3152 2.4374 2.5675 2.7060 2.8532 3.0095 3.1752 3.3506 3.53613.7320yj=Columns 1 through 11-0.0000 0.0235 0.0454 0.0658 0.0850 0.1032 0.1206 0.1375 0.15400.1701 0.1862Columns 12 through 220.2022 0.2183 0.2345 0.2511 0.2679 0.2851 0.3028 0.3208 0.33940.3585 0.3781Columns 23 through 330.3982 0.4188 0.4400 0.4616 0.4838 0.5065 0.5297 0.5533 0.57740.6020 0.6270Columns 34 through 440.6524 0.6783 0.7047 0.7315 0.7588 0.7867 0.8150 0.8440 0.87360.9039 0.9351Columns 45 through 550.9670 1.0000 1.0341 1.0693 1.1060 1.1442 1.1841 1.2259 1.26991.3162 1.3652Columns 56 through 661.4171 1.4723 1.5310 1.5935 1.6604 1.7320 1.8087 1.8910 1.97932.0742 2.1762Columns 67 through 762.2860 2.4040 2.5310 2.6677 2.8147 2.9727 3.1427 3.3253 3.52143.7320通过比较知,角度较小时五次多项式算得的值较大,角度增大则两种方法得到的结果近似相等。2)按表 6.5 用 3 次多项式方法插值计算 1100 之间整数的平方根。(表 6.5 1100 内特殊值的平方根表N 1 4 9 16 25 36 49 64 81 1001 2 3 4 5 6 7 8 9 10 Nx=1 4 9 16 25 36 49 64 81 100;y=1 2 3 4 5 6 7 8 9 10;xi=1:100;f=interp1(x,y,xi,cubic)结果:f=Columns 1 through 111.0000 1.3729 1.7125 2.0000 2.2405 2.4551 2.64942.8292 3.0000 3.1636 3.3186Columns 12 through 223.4661 3.6069 3.7422 3.8729 4.0000 4.1237 4.24354.3599 4.4730 4.5832 4.6907Columns 23 through 334.7958 4.8988 5.0000 5.0993 5.1966 5.2921 5.38575.4777 5.5681 5.6570 5.7446Columns 34 through 445.8309 5.9160 6.0000 6.0829 6.1647 6.2454 6.32496.4035 6.4810 6.5577 6.6334Columns 45 through 556.7082 6.7823 6.8556 6.9281 7.0000 7.0712 7.1416 7.2113 7.28047.3487 7.4164Columns 56 through 667.4835 7.5500 7.6159 7.6812 7.7459 7.8102 7.8739 7.9372 8.00008.0623 8.1242Columns 67 through 778.1855 8.2464 8.3068 8.3668 8.4263 8.4854 8.5441 8.6024 8.66038.7178 8.7749Columns 78 through 888.8317 8.8881 8.9442 9.0000 9.0555 9.1107 9.1655 9.2201 9.27449.3284 9.3821Columns 89 through 999.4354 9.4884 9.5412 9.5935 9.6456 9.6973 9.7486 9.7996 9.85029.9005 9.9505Column 10010.0000