首页 > 解决方案 > Matlab - 如何在函数(x - sqrt(x))/ sqrt(sin(x))中x达到0时绘制极限?

问题描述

在 Matlab 中 - 如何在函数 (x - sqrt(x)) / sqrt(sin(x)) 中 x 达到 0 时绘制极限?

我刚开始编程,所以我对此很陌生。

我一直在尝试以各种方式绘制函数,其中之一是:

y = @(x) (x - sqrt.(x))./ (sqrt.(sin.*x));

fplot(y,[0.1 0.9], 200)

这给出了以下错误代码:动态结构引用的参数必须评估为有效的字段名称。

我也尝试过不使用函数句柄,如下所示:

x = linspace(0.1, pi/2, 200);
y = (x - sqrt.(x))./ (sqrt.(sin.*x));
plot(x, y)

这给出了与前一个相同的错误代码。我试过不带点,尝试不同的间隔,但我不明白错误代码。

标签: matlabfunctionplotlimit

解决方案


可以根据需要通过调整来更改绘图的边界/范围X_Min, X_Max, Y_Min and Y_Max

绘制带限制的函数

方法一:使用匿名函数

y = @(x) (x - sqrt(x))./(sqrt(sin(x)));

X_Min = -5;
X_Max = 20;
Y_Min = -100;
Y_Max = 100;

fplot(y,[X_Min X_Max]);
axis([X_Min X_Max Y_Min Y_Max]);

方法 2:使用数组输入/向量

这种方法高度依赖于绘图间隔/密度。不幸的是,这种方法不像方法 1 那样在极限上显示虚线。

X_Min = -5;
X_Max = 20;
Y_Min = 0;
Y_Max = 100;

Plotting_Density = 1000;
x = linspace(X_Min, X_Max, Plotting_Density);
y = (x - sqrt(x))./(sqrt(sin(x)));

plot(x, y);
axis([X_Min X_Max Y_Min Y_Max]);

扩大:

使用.隐含元素操作。使用 。将函数应用于数组的所有元素。在这种情况下,不必使用该.操作,因为术语 x 用于匿名函数中。

• "./" -> 数组中所有元素的除法

• ".*" -> 数组中所有元素的乘法

使用 MATLAB 版本:R2019b


推荐阅读