Lab 1 – przykładowe rozwiązania M. Głowacki, L-10, PK
1
Laboratorium komputerowe 1 – przykładowe rozwiązania
zad. 1.
clear clc
x0 = 1;
y0 = 2;
r = 2;
x = -r:0.01:r;
y1 = sqrt(r^2 - x.^2); % górna połowa
y2 = -y1; % dolna połowa
x = x + x0;
y1 = y1 + y0;
y2 = y2 + y0;
p1 = plot(x, y1, 'g', 'LineWidth', 2);
hold on;
p2 = plot(x, y2, 'g', 'LineWidth', 2);
grid on;
axis([x0-r-0.5*r, x0+r+0.5*r, y0-r-0.5*r, y0+r+0.5*r]) axis equal
Uwaga:
Fragment w ramce można zastąpić poniższym, wykorzystującym równanie parametryczne okręgu:
fi = 0:0.01:2*pi;
x = r*cos(fi) + x0;
y = r*sin(fi) + y0;
p1 = plot(x, y, 'g', 'LineWidth', 2);
Lab 1 – przykładowe rozwiązania M. Głowacki, L-10, PK
2 zad. 2.
clear clc
s = 0.01;
x1 = -2*pi:s:-pi/2;
x2 = -pi/2:s:pi/6;
x3 = pi/6:s:2*pi;
y1 = x1*0 - 2;
y2 = 2*sin(x2);
y3 = (7*x3)./(x3+pi);
plot(x1,y1, 'r', 'LineWidth', 2);
hold on;
plot(x2,y2, 'g', 'LineWidth', 2);
plot(x3,y3, 'b', 'LineWidth', 2);
grid on;
zad. 3.
clear clc
a = -1;
b = 3;
s = 0.001;
x = a:s:b;
y = x.*sin(x)+cos(x);
p1 = plot(x, y, 'k', 'LineWidth', 2);
hold on;
grid on;
xmax = x(1);
ymax = y(1);
for i=2:length(x)
if y(i) > ymax ymax = y(i);
xmax = x(i);
end end
plot(xmax,ymax, 'go', 'LineWidth', 2)
Lab 1 – przykładowe rozwiązania M. Głowacki, L-10, PK
3 Uwaga:
Fragment w ramce traktujemy jako przypomnienie używania pętli i instrukcji warunkowej.
Można go zastąpić poniższymi instrukcjami, wykorzystującymi funkcję max():
[ymax, imax] = max(y); % imax – indeks elementu
% najwiekszego xmax = x(imax);