Построение графиков функций и объемных геометрических фигур в octave

Продолжаю серию заметок с примерами работы в octave. Надеюсь, это окажется кому-то полезным.

set (0, 'defaulttextfontname', 'Terminus,16');

%% Maclaurin's trisectrix
figure(1)

phi = -3*pi/2 : .2 : 3*pi/2;
alpha = pi;
r = alpha ./ cos(phi/3);


subplot(1,2,1)
plot(phi,r,'-r')
title('rectangular coordinates')
axis([-2*pi 2*pi 0 10*pi])
xlabel('\phi')
ylabel('r')
grid on

subplot(1,2,2)
polar(phi,r,'-b')
title('polar coordinates')
axis([-5*pi 5*pi -5*pi 5*pi])
xlabel('\phi')
ylabel('r')
grid on

%% nonlinear equations

figure(2)

% 3x^5 - 8x^3 - 18x^2 + 2 = 0
subplot(3,1,1)
x = -3:0.1:3;
y = 3*x.^5 - 8*x.^3 - 18*x.^2 + 2;
plot(x,y,"-r;3x^5 - 8x^3 - 18x^2 + 2 = 0;")
axis([-3 3 -3 3])

Y = [3 0 -8 -18 0 2]
roots(Y)

hold on
plot(roots(Y), '*b')
hold off

grid on

% 5^x = 2 + e^{-2x}
subplot(3,1,2)
x = -8:0.01:10;
y = 5.^x - 2 - exp(-2*x);
plot(x,y,"-b;5^x = 2 + e^{-2x};")
axis([-4 5 -10 10])
grid on

% x^3+y^3=8 y=1+x^{3/2}
subplot(3,1,3)
x = -5:0.001:5;
y1 = (8-x.^3).^(1/3);
y2 = 1+x.^(3/2);
plot(x,y1,"-b;x^3+y^3=8;", x, y2, "-r;y=1+x^{3/2};")
axis([-2 5 0 10])
grid on

%% elliptic paraboloid

% \frac{y^2}p + \frac{z^2}q = 2x
figure

a=4;
b=20;
u = (0:0.05:5)';
v = [0:0.05*pi:2*pi];
X = a*sqrt(u)*cos(v);
Y = b*sqrt(u)*sin(v);
Z = u*ones(size(v));
surf(X,Y,Z);

shading interp
colormap pink

~ от aleos на 7 Май 2008.

Ответить