计算方法实验报告0001.docxVIP

  • 1
  • 0
  • 约1.15万字
  • 约 22页
  • 2021-03-20 发布于天津
  • 举报
实验报告 一、求方程 f(x)=xA3-sinx-12x+1 的全部根,€=le-6 1、用一般迭代法; 2、用牛顿迭代法; 并比较两种迭代的收敛速度。 一、首先,由题可求得:/W =3x2-cosx-12 . 其次,分析得到苴根所在的区间。 令 f(x)- 0,可得到%3 -12x4-1 = sinx. 用一阶导数分析得到x3-12x+ 1和sinx两个函数的增减区间:再用二阶导数分析得到 两个函数的拐点以及凹凸区间. 在直角坐标轴上描墓出x3-12x+1= 0和sinx = 0的图,在图上可以看到他们的交点, 然后估计交点所在的区间,即是所要求的根的区间。经过估计,得到根所在的区间为 [-4-3], [0,1]和[3,4]. 1、一般迭代法 算法步骤: 设e为给定的允许精度,迭代法的计算步骤为: 选定初值A().|h /(a) = 0确定函数g(x),得等价形式x = g(x). 计算gg).由迭代公式得X|=g(x。). 如果|x,-x0|^,则迭代结束,取“为解的近似值;否则,用“代替儿,重 复步骤②和步骤③. 程丿了:代码: 在区间[-4,-3]内, 代码:clc x0=-3?5; $初值心 iter_max=100; $迭代的最大次数 ep=le-6; $允许精度£ k=0; while k=iter_max $]从0开始至ljiter_max循坯; xl=(sin(x0)+12*x0-l) .(1/3); 貂弋入儿,算出旺的值 if abs (xl-xO) ep %|x, -x0\与允许精度作比较 break; 匕条件卜|一对5£成立,跳出循环 end xO=xl; 务条件|Xj -Xq\ £不成立,用“代替兀0 k=k+l; %kini end x_star=xl, iter=k 为解的近似值,iter为迭代次数 运行结果:x_star = -3.4101 : iter =14 在区间[0,1]内, 代码: clc xO=O . 5; $初值旺 iter_max=100; $迭代的最大次数 ep=le-6; $允许精度g k=0; while k=iter_max $1从0开始至ljiter_max循坯; xl=(l/12) * (x0.^3-sin(x0) +1); 貂弋入心,算岀“的值 if abs (xl-xO) ep %|xj -x0|与允许精度作比较 break; 务条件\x{ -x()| s成立,跳出循环 end xO=xl;匕条件|x, -xq\£不成立,用“代替儿 k=k+l; Ek 力 m end x_star=xl, iter=k 为解的近似值,iter为迭代次数 结果:x_star = 0.07696 ; iter =6 在区间[3,4]内, 代码: clc x0=3.5; 初值心 iter_max=100; $迭代的最大次数 ep=le-6; $允许精度£ k=0; while k=iter_max 靱从0开始至ljiter_max循环 xl=(sin(x0)+12*x0-l) (1/3); 訂弋入心,算出“的值 if abs(xl-xO)ep 引召-对与允许精度作比较 break; 匕条件-x()| £?成立,跳岀循环 end xO=xl; $条件|Xj -x0| £不成立,用X]代替X。 k=k+l; 力 m end x_star=xl, iter=k 为解的近似值,iter为迭代次数 运行结果:x_star =3.4101 ; iter =10 2、牛顿迭代法 (1)算法步骤: 选泄初值计算/(“),/ (%())? 按公式心+|=兀一丄¥2迭代,得新的近似值兀+「并计算/(林+J,/(A\.+l). f\xk) 对于给立的允许精度S 如果卜阳一兀卜£,则终止迭代,取“ SJ;否则, k = k + \,在转回步骤②计算. (2)程丿了代码: 在区间[-4-3]内, clc xl=-3.5; $初值“ k=0; while k=100 %k从0开始到100循环 x0=xl; $将初值勺赋给儿 f0=x0 . Zv3-sin(x0)-12*x0 + l; 计?算/(心) fl=3*x0.2-cos (x0) -12; 务计算/ (x0) xl=xO-fO/fl; $计算得到新的近似值“ if abs (xl-xO) 1. Oe-6 %|^ -x0|与允许精度作比较 break; 匕条件\x{ -x0\£成立,跳出循环 end k=k+l; 务条件1%, -xq\£不成立,k加1 end x_star=xl, iter=k %坷为解的近似值,iter为迭代次数 运行结果:x_star =-3.4911 ; iter =2 在区间[0,1]内, clc xl=0.5; %初值X]

文档评论(0)

1亿VIP精品文档

相关文档