《牛顿迭代法与KOCH分形曲线实验.doc》由会员分享,可在线阅读,更多相关《牛顿迭代法与KOCH分形曲线实验.doc(5页珍藏版)》请在金锄头文库上搜索。
1、牛顿迭代法与KOCH分形曲线实验学号:200921070432姓名:何传燕专业:检测技术与自动化装置一、牛顿迭代法收敛区域问题牛顿迭代法又称为牛顿-拉夫逊方法(Newton-Raphson method),是一种在实数域和复数域上通过迭代计算求出非线性方程的数值解方法。将方程中函数线性化,以线性方程的解逼近非线性方程的解,是牛顿迭代法的基本思想。为了研究牛顿迭代法的收敛区域问题,可以用于求解复数方程z n + 1 = 0,例如对z6 + 1 = 0,该方程在复平面上六个根分别是,选择中心位于坐标原点,边长为4的正方形内的任意点作初始值,进行迭代,将不收敛的点定义为第一类,给它们标一种颜色;再把
2、收敛到六个根的初值分为六类,并分别标上不同颜色。对充分多的初始点进行实验,绘出牛顿迭代法对该方程的收敛域彩色图。前三个根的收敛域彩色图:后三个根的收敛域彩色图:1MATLAB相关命令介绍绘伪彩色图命令pcolor()该命令主要用于绘制矩阵色图,根据矩阵中元素数据的大小不同绘不同颜色。常常与命令shading interp结合使用效果会更好。在MATLAB命令窗口中键入help pcolor,可获得英文帮助信息。2.相关程序如下:t1=-sqrt(3)/2+i*.5;t2=-sqrt(3)/2-i*.5;t3=i;t4=-i;t5=sqrt(3)/2+.5i;t6=sqrt(3)/2-.5i;h
3、=0.02;N=1+4/h; z0(N,N)=0;z1=z0;z2=z0;z3=z0;z4=z0;z5=z0;z6=z0t=(-2:h:2)+eps;x,y=meshgrid(t); z=x+y*i; for k1=1:Nfor k2=1:Np0=z(k1,k2);for k=1:10p0=p0-(p06+1)/(6*p05);endif abs(p0-t1)0.01z1(k1,k2)=1;elseif abs(p0-t2)0.01z2(k1,k2)=1;elseif abs(p0-t3)0.01z3(k1,k2)=1;elseif abs(p0-t4)0.01z4(k1,k2)=1;else
4、if abs(p0-t5)0.01z5(k1,k2)=1;elseif abs(p0-t6)0.01z6(k1,k2)=1;elsez0(k1,k2)=1;endendendzz=z0+2*z1+3*z2+4*z3;ss=z0+2*z4+3*z5+4*z6;figure(1)pcolor(x,y,zz),shading interpfigure(2)pcolor(x,y,ss),shading interp二、KOCH分形曲线实验1、提出问题 由Figure1中两个基本生成元生成的KOCH曲线 Figure 1(a) (b)2、程序设计 (a)function kochsqur(ax,ay,b
5、x,by,n)%定义函数,其中ax为起始点横坐标,ay为起始点纵坐标,bx为终点横坐标,by为终点纵坐标,n为迭代次数clf;p=ax ay;bx by;m=1%将输入转为矩阵a=cos(pi/2) -sin(pi/2);sin(pi/2) cos(pi/2);for k=1:n j=0; for i=1:m q1=p(i,:); q2=p(i+1,:); d=(q2-q1)/3; j=j+1;r(j,:)=q1;%共需设置四个点 j=j+1;r(j,:)=q1+d; j=j+1;r(j,:)=q1+d+d*a; j=j+1;r(j,:)=q1+d+d*a+d; j=j+1;r(j,:)=q1
6、+2*d; end m=5*m; clear p p=r;q2;endplot(p(:,1),p(:,2)(b)function kochsqur(ax,ay,bx,by,n)%定义函数,其中ax为起始点横坐标,ay为起始点纵坐标,bx为终点横坐标,by为终点纵坐标,n为迭代次数clf;p=ax ay;bx by;m=2;a=cos(pi/4) -sin(pi/4);sin(pi/4) cos(pi/4);for k=1:n j=0; for i=1:2:m%取一个线段 q1=p(i,:); q2=p(i+1,:); d=(q2-q1)/3; j=j+1;r(j,:)=q1;%共需设置10个点
7、 j=j+1;r(j,:)=q1+d; j=j+1;r(j,:)=q1+d; j=j+1;r(j,:)=q1+d+d*a; j=j+1;r(j,:)=q1+d; j=j+1;r(j,:)=q1+2*d; j=j+1;r(j,:)=q1+2*d; j=j+1;r(j,:)=q1+2*d+d*a; j=j+1;r(j,:)=q1+2*d; j=j+1;r(j,:)=q1+3*d; end clear p; p=r;%重置p m=5*m;endplot(p(:,1),p(:,2) 3、运行图形(a) 输入:kochsqur(0,0,120,0,6) (b)输入:kochtree(0,0,120,0,6)