Построение параболы в два отрезка - PullRequest
0 голосов
/ 23 ноября 2018

Я хотел бы знать, как построить следующую функцию, определяемую красными линиями:

Ранее я нарисовал прямоугольник, что проще, потому что япросто нарисуйте линии между различными точками, и все, но в этом я не знаю, как соединить крайние точки (1, 1) и (5, 1) с функцией y = sqrt (x) вместо прямойлиния.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Вы можете сделать это с помощью этого короткого кода:

y = @(x) sqrt(x);
fplot(y,[0 6])% draw the function between x=0 to x=6
hold on
fplot(y,[1 5],'r') % draw the red part of the function
plot([1 5;5 5],[1 1;1 y(5)],'r') % draw the straight lines
hold off
grid on
xlim([-2 6])
ylim([-1 3])

sqrt (x)

0 голосов
/ 23 ноября 2018

Я думаю, это то, чего вы хотите достичь.Я полагаю, что ключевым моментом было то, что вы не были уверены, как рассчитать значение y-координаты.То есть, когда я строю вертикальную красную линию, для координаты y я ввожу sqrt (5).Это вы видите в 9-й строке фрагмента кода ниже.

clear;
clc;
figure(1);
clf;
x=0:0.01:6;
y=sqrt(x);
plot(x,y, 'LineWidth',2);
hold on;
plot([1 5], [1 1], 'r', 'LineWidth',2);
plot([5 5], [sqrt(5) 1], 'r', 'LineWidth',2);
grid on;
xlim([-2 6]);
ylim([-1 3]);
xlabel('x');
ylabel('y');
title('y=sqrt(x)');

text(1.01, 0.85,'(1; 1)', 'HorizontalAlignment','left', 'FontSize', 12, ...
'FontWeight', 'bold')
text(5.01, 0.85,'(5; 1)', 'HorizontalAlignment','left', 'FontSize', 12, ...
    'FontWeight', 'bold')


text(2,0.5+sqrt(2),'\downarrow y=\surd x', 'HorizontalAlignment','left' ...
, 'FontSize', 12, 'FontWeight', 'bold')
...