【问题标题】:Matlab - how do I plot the limit when x reaches 0 in the function (x - sqrt(x)) / sqrt(sin(x))?Matlab - 如何在函数(x - sqrt(x))/ sqrt(sin(x))中x达到0时绘制极限?
【发布时间】:2020-10-14 06:16:01
【问题描述】:

在 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)

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

【问题讨论】:

  • sqrt.(x) 在 MATLAB 中是非法语法。只需写sqrt(x)。平方根函数始终是逐元素的。 (实际上,如果sqrt 是一个结构并且x 计算结果为该结构中的一个字段的名称,则它是合法的语法,这解释了您收到的错误消息。)
  • @CrisLuengo:“平方根函数总是逐元素”是不正确的。 sqrt 是逐元素的,sqrtm 是矩阵平方根。
  • @Ben:是的。 “平方根函数”是指sqrt。我已经经常输入该函数名称来发表评论...:p

标签: matlab function plot limit


【解决方案1】:

可以根据需要调整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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 2017-07-14
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    相关资源
    最近更新 更多