在两个分段中绘制抛物线

时间:2018-11-23 16:36:35

标签: matlab plot matlab-figure

我想知道如何绘制由红线定义的以下函数:

我以前已经绘制了一个矩形,这很容易,因为我只是在不同点之间画线,仅此而已,但是在此图中,我不知道如何将极点(1、1,)和(5)连接起来,1)的函数y = sqrt(x)而不是直线。

谢谢。

2 个答案:

答案 0 :(得分:0)

我认为,这就是您想要实现的目标。我想关键是,您不确定如何计算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')

答案 1 :(得分:0)

您可以使用这段简短的代码来做到这一点:

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)