永发信息网

matlab牛顿迭代动画演示求一个程序,能用动画演示出牛顿迭代,必须是要用matlab写的,

答案:2  悬赏:0  手机版
解决时间 2021-02-16 06:06
  • 提问者网友:听门外雪花风
  • 2021-02-15 06:48
matlab牛顿迭代动画演示求一个程序,能用动画演示出牛顿迭代,必须是要用matlab写的,
最佳答案
  • 五星知识达人网友:举杯邀酒敬孤独
  • 2021-02-15 07:47
% 牛顿环演示的MATLAB程序close all;clear;clc;figure('Position',[90 164 873 483]);L=632.8;R=5;H=5;a1=axes('Position',[0.83,0.3,0.15,0.4]);hold on;axis([0,1,0,1]);plot([0.25,0.25],[0.5,0.8],'k');plot([0.5,0.5],[0.5,0.8],'k');plot([0.75,0.75],[0.5,0.8],'k');fill([0.22,0.25,0.27],[0.5,0.44,0.5],'k');fill([0.47,0.5,0.52],[0.5,0.44,0.5],'k');fill([0.72,0.75,0.77],[0.5,0.44,0.5],'k');z=1.8*exp(i*(linspace(-0.21,0.21,30)-pi/2))+2.1*i+0.5;fill(real(z),imag(z),'w');rectangle('Position',[0.1,0.18,0.8,0.12]);set(gca,'xtick',[],'ytick',[],'box','on');% \copyright: zjliu% Author's email: [email protected]a2=axes('Position',[0.4,0.16,0.4,0.7]);[x,y]=meshgrid(linspace(-0.005,0.005,200));r2=(x.^2+y.^2);Di=[2*H+2*(R-sqrt(R^2-r2))*1e9]/L;In=abs(cos(Di*pi*2));cr=abs(L-560)/200;cg=1-cr;cb=abs(L-600)/240;Ik(:,:,1)=In*cr;Ik(:,:,2)=In*cg;Ik(:,:,3)=In*cb;Pc=imshow(Ik,[]);title('the pattern of Newton''s rings','fontsize',18);Lt=uicontrol(gcf,'style','text',... 'unit','normalized','position',[0.06,0.86,0.21,0.06],... 'BackgroundColor',0.7*[1,1,1],'ForegroundColor',[0.8,0.1,0.9],... 'string','波长: 632.8nm','fontsize',16,'fontname','times new roman');s1=uicontrol(gcf,'style','slider',... 'unit','normalized','position',[0.06,0.76,0.21,0.04],... 'BackgroundColor',0.7*[1,1,1],'ForegroundColor',[0.1,0.1,0.9],... 'SliderStep',[0.01,0.01],'value',(632.8-360)/400,... 'callback',['L=get(s1,''value'')*400+360;',... 'set(Lt,''string'',[''波长: '',num2str(L/10),''nm'']);',... 'Di=[2*H+2*(R-sqrt(R^2-r2))*1e9]/L;',... 'In=abs(cos(Di*pi*2));cr=abs(L-560)/200;cg=1-cr;',... 'cb=abs(L-600)/240;Ik(:,:,1)=In*cr;Ik(:,:,2)=In*cg;',... 'Ik(:,:,3)=In*cb;set(Pc,''CData'',Ik);']);uicontrol(gcf,'
全部回答
  • 1楼网友:罪歌
  • 2021-02-15 08:23
这个问题的回答的对
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯