Компьютерное моделирование. Занятие 1. Двухмерная графика t0%pi20 2%pi ysin(t) plot (t,y) (3 строчки) Занятие 2
Скачать 2.18 Mb.
|
Занятие №9. f=figure(); f.background=-2; screensize= get(0,"screensize_px") set(f,'position',[0,0,screensize(3),screensize(4)]); set(f,'figure_name','Grafik'); c_metok=[0.8 0.8 0.8]; c_text=[0.87 0.868 0.87]; c_knopok=[0.62 0.62 0.62]; c_with_points=[0.67 0.67 0.658]; lab_a=uicontrol(f,'style','edit','string','knopka:','HorizontalAlignment','center','units','normalized','position',[0.03, 0.45, 0.03, 0.04]); Button_B3=uicontrol('Style','pushbutton','String','Red', 'units','normalized','Position',[0.65,0.45,0.09, 0.05],'BackgroundColor',[1 0 0],'CallBack','gr_B_rd'); Button_B3=uicontrol('Style','pushbutton','String','Green', 'units','normalized','Position',[0.45,0.45,0.09, 0.07],'BackgroundColor',[0 1 0],'CallBack','gr_B_gr'); Button_B3=uicontrol('Style','pushbutton','String','Blue', 'units','normalized','Position',[0.25,0.45,0.09, 0.02],'BackgroundColor',[0 0 1],'CallBack','gr_B_b'); Button_B3=uicontrol('Style','pushbutton','String','Sin', 'units','normalized','Position',[0.85,0.45,0.09, 0.04],'BackgroundColor',[1 0 1],'CallBack','sin_B_sin'); Button_B3=uicontrol('Style','pushbutton','String','Cos', 'units','normalized','Position',[0.105,0.45,0.09, 0.06],'BackgroundColor',[1 0 1],'CallBack','cos_B_cos'); function gr_B_b() AAA=get("current_figure"); AAA.background=2; endfunction; function gr_B_gr() AAA=get("current_figure"); AAA.background=14; endfunction; function gr_B_rd() AAA=get("current_figure"); AAA.background=20; endfunction; function sin_B_sin() t=0:%pi/20:2*%pi; y=sin(t); plot (t,y,’y’); endfunction; function cos_B_cos() t=0:%pi/20:2*%pi; y=cos(t); plot (t,y,’r’); endfunction; Занятие №10. Обработка экспериментальных данных линейным МНК 1) X=[0.4 0.8 0.3 0.4 0.5]; Y=[1.1 1.2 1.45 1.3 1.6]; n=5; yi=0; xyi=0; xxi=0; for i=1:n; yi=yi+Y(i); xyi=xyi+X(i)*Y(i); xxi=xxi+X(i)*X(i); end; b=yi/n; a=xyi/xxi; x1(1)=X(1)-(X(n)- X(1))/50; y1(1)=b; x1(2)=X(n)+(X(n)- X(1))/50; y1(2)=b; y2(1)= a*x1(1); y2(2)= a*x1(2); plot(X,Y,x1,y1,x1,y2); 2) X=[0.2 0.25 0.3 0.6 0.5]; Y=[1.1 1.5 1.25 1.3 1.4]; n=5; yi=0; for i=1:n; yi=yi+Y(i); end; b=yi/n; x1(1)=X(1) -(X(n)- X(1))/50;; y1(1)=b; x1(2)=X(n)+ (X(n)- X(1))/50;; y1(2)=b; plot(X,Y,x1,y1); 3) X=[0.1 0.2 0.3 0.4 0.5]; Y=[1.1 1.2 1.25 1.3 1.4]; n=5; xi=0; yi=0; xyi=0; xxi=0; for i=1:n; xi=xi+X(i); yi=yi+Y(i); xyi=xyi+X(i)*Y(i); xxi=xxi+X(i)*X(i); end; a=(n*xyi- xi* yi)/(n*xxi-xi*xi) b=(yi-a*xi)/n x1(1)=X(1)-(X(n)- X(1))/50; y1(1)=a*x1(1)+b; x1(2)=X(n)+(X(n)- X(1))/50; y1(2)= a*x1(2)+b; plot(X,Y,’*’,x1,y1); 4) x1(1)=X(1)-(X(n)- X(1))/50; y1(1)=a*x1(1)+b; x1(2)=X(n)+(X(n)- X(1))/50; y1(2)= a*x1(2)+b; plot(X,Y,x1,y1); X=[0.1 0.2 0.3 0.4 0.5]; Y=[1.1 1.2 1.25 1.3 1.4]; n=5; xi=0; yi=0; xyi=0; xxi=0; for i=1:n; xi=xi+X(i); yi=yi+Y(i); xyi=xyi+X(i)*Y(i); xxi=xxi+X(i)*X(i); end; a=(n*xyi- xi* yi)/(n*xxi-xi*xi) a = 0.7 b=(yi-a*xi)/n b = 1.04 sy=0; for i=1:n; sy=sy+(Y(i)-a*X(i)-b)^2; end; sy=sqrt(sy/(n-2)); sa=sqrt(n*sy^2/(n*xxi-xi*xi)); sb=sa*sqrt(xxi/n); Cb=3.18*sb Cb = 0.0608924 Ca=3.18*sa Ca = 0.1835974 yz=1.25 Занятие №11. Будем считать условие 1 задачи градуировочным графиком. Определить значение параметра х и границы доверительного интервала (0.95), если измеренная величина y(задача) составляет 1.25. Из уравнения y(задача)=a*x+b получаем Границы доверительного интервала: X=[0.1 0.2 0.3 0.4 0.5]; Y=[1.1 1.2 1.25 1.3 1.4]; n=5; xi=0; yi=0; xyi=0; xxi=0; a=get("current_axes"); t=a.title; t.font_size=5; t.font_style=6; t.text="Доверительный интервал"; x_label=a.x_label; x_label.text=" ось икс" x_label.font_size=6; x_label.font_style= 3; y_label=a.y_label; y_label.text=" ось игрик" y_label.font_size=6; y_label.font_style= 3; for i=1:n; xi=xi+X(i); yi=yi+Y(i); xyi=xyi+X(i)*Y(i); xxi=xxi+X(i)*X(i); end; a=(n*xyi- xi* yi)/(n*xxi-xi*xi) b=(yi-a*xi)/n sy=0; for i=1:n; sy=sy+(Y(i)-a*X(i)-b)^2; end; sy=sqrt(sy/(n-2)); sa=sqrt(n*sy^2/(n*xxi-xi*xi)); sb=sa*sqrt(xxi/n); Cb=3.18*sb Ca=3.18*sa yz=1.25 xz=(yz-b)/a cx=3.18*sy/n*sqrt(1+1/n+n*(yz-yi/n)^2/a/a/(n*xxi-xi*xi)) x1(1)=X(1)-(X(n)- X(1))/50; y1(1)=a*x1(1)+b; x1(2)=X(n)+(X(n)- X(1))/50; y1(2)= a*x1(2)+b; x1(1)=X(1)-(X(n)- X(1))/50; y2(1)=(a+Ca)*x1(1)+b+Cb; y2(2)=(a+Ca)*x1(2)+b+Cb; y3(1)=(a-Ca)*x1(1)+b-Cb; y3(2)=(a-Ca)*x1(2)+b-Cb; plot(X,Y,'+k', x1,y1,'k', x1,y2,'k', x1,y3,'k') Вывод: доверительный интервал расширяется. Занятие №12. Кинетика химических реакций. 1) function dy = sixx(t,y), dy = 0.01, endfunction a=get("current_axes"); t=a.title; t.font_size=3; t.font_style=4; t.text="Зависимость концентрации от времени при G=0.01"; x_label=a.x_label; x_label.text=" t, сек " x_label.font_size=6; x_label.font_style= 3; y_label=a.y_label; y_label.text=" С,моль/л " y_label.font_size=6; y_label.font_style= 3; RTol = 1e-9; ATol = 1e-7; t_Rang = 0:1e-4:5; y_Init=0; y = ode(y_Init,0,t_Rang,RTol,ATol,sixx); plot (t_Rang,y); 2) function dy = sixx(t,y), dy = 1, endfunction a=get("current_axes"); t=a.title; t.font_size=3; t.font_style=4; t.text="Зависимость концентрации от времени при G=1"; x_label=a.x_label; x_label.text=" t, сек " x_label.font_size=6; x_label.font_style= 3; y_label=a.y_label; y_label.text=" С,моль/л " y_label.font_size=6; y_label.font_style= 3; RTol = 1e-9; ATol = 1e-7; t_Rang = 0:1e-4:5; y_Init=0; y = ode(y_Init,0,t_Rang,RTol,ATol,sixx); plot (t_Rang,y); 3) function dy = sixx(t,y), dy =1000, endfunction a=get("current_axes"); t=a.title; t.font_size=3; t.font_style=4; t.text="Зависимость концентрации от времени при G=1000"; x_label=a.x_label; x_label.text=" t, сек " x_label.font_size=6; x_label.font_style= 3; y_label=a.y_label; y_label.text=" С,моль/л " y_label.font_size=6; y_label.font_style= 3; RTol = 1e-9; ATol = 1e-7; t_Rang = 0:1e-4:5; y_Init=0; y = ode(y_Init,0,t_Rang,RTol,ATol,sixx); plot (t_Rang,y); Вывод: Занятие №13. 1) a=get("current_axes"); t=a.title; t.font_size=5; t.font_style=6; t.text="Доверительный интервал"; x_label=a.x_label; x_label.text=" ось икс" x_label.font_size=6; x_label.font_style= 3; y_label=a.y_label; y_label.text=" ось игрик" y_label.font_size=6; y_label.font_style= 3; 2) function dy = sixx(t,y), dy = 1-1*y(1), endfunction a=get("current_axes"); t=a.title; t.font_size=3; t.font_style=4; t.text="Зависимость концентрации от времени при G=1"; x_label=a.x_label; x_label.text=" t, сек " x_label.font_size=6; x_label.font_style= 3; y_label=a.y_label; y_label.text=" С,моль/л " y_label.font_size=6; y_label.font_style= 3; RTol = 1e-9; ATol = 1e-7; t_Rang = 0:1e-4:5; y_Init=0; y = ode(y_Init,0,t_Rang,RTol,ATol,sixx); plot (t_Rang,y); |