您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 迭代法及matlab实现方法一
四.迭代法及其MATLAB程序例:求方程的一个正根.2210fxxx构造迭代函数,x21(10)/2,xxx21(10)/2,kkxx迭代公式基本思想:由初始值,代入迭代公式,经过一定的迭代次数k,得到迭代序列{xk},以及相邻两次迭代的偏差piancha=|xk-xk-1|和它的相对误差xdpiancha=|xk-xk-1|/|xk|的值.当piancha1,xdpiancha0.5,k3时,迭代序列发散,重新输入新的迭代公式;当piancha0.001,xdpiancha0.0000005,k3时,迭代序列收敛.迭代法的MATLAB主程序1输入的量:初始值x0,迭代次数k和迭代公式1(),0,1,2,kkxxk运行后输出的量:迭代序列{xk},迭代k次得到的迭代值xk,相邻两次迭代的偏差piancha=|xk-xk-1|和它的偏差的相对误差xdpiancha=|xk-xk-1|/|xk|的值.迭代法的MATLAB主程序1function[k,piancha,xdpiancha,xk]=diedai1(x0,k)%输入的量--x0是初始值,k是迭代次数x(1)=x0;fori=1:kx(i+1)=fun1(x(i));%程序中调用的fun1.m为函数y=φ(x)piancha=abs(x(i+1)-x(i));xdpiancha=piancha/(abs(x(i+1))+eps);i=i+1;xk=x(i);[(i-1)pianchaxdpianchaxk]endif(piancha1)&(xdpiancha0.5)&(k3)disp('请用户注意:此迭代序列发散,请重新输入新的迭代公式')return;endif(piancha0.001)&(xdpiancha0.0000005)&(k3)disp('祝贺您!此迭代序列收敛,且收敛速度较快')return;endp=[(i-1)pianchaxdpianchaxk]';例:求方程的一个正根.2210fxxx构造迭代函数,x三种迭代函数21(10)/2,xxx21(10)/2,kkxx迭代公式210/2,xxx110/2,kkxx迭代公式23(210)/(22),xxxxxx21(210)/(22),kkkkkxxxxx迭代公式3.用迭代法求解方程f(x)=0在(a,b)内的近似根的步骤步骤1.建立名为fun1.m的M文件如:步骤2.步骤3.在matlab工作窗口输入程序:functiony1=fun1(x)y1=f(x);将迭代法的主程序保存名为diedai1.m的M文件;[k,piancha,xdpiancha,xk]=diedai1(x0,k)输入的量:初始值x0,迭代次数k运行后输出的量:迭代k次得到的迭代值xk,相邻两次迭代的偏差piancha=|xk-xk-1|和偏差的相对误差xdpiancha=|xk-xk-1|/|xk|的值.迭代法的几何解释:迭代法的几何解释3.用迭代法求解方程f(x)=0在(a,b)内的近似根的步骤步骤1.建立名为fun1.m的M文件如:步骤2.步骤3.在matlab工作窗口输入程序:functiony1=fun1(x)y1=f(x);将迭代法的主程序保存名为diedai1.m的M文件;[k,piancha,xdpiancha,xk]=diedai1(x0,k)练习:用迭代法求方程xex=1在0.5附近的近似根和它们的迭代次数,精确到.510
本文标题:迭代法及matlab实现方法一
链接地址:https://www.777doc.com/doc-6356390 .html