0

如果我想在 Matlab 中绘制 y=1/x 的图,可以使用以下代码:

X=-10:0.1:10;
Y=1./(X);
plot(X,Y);

但我想使用符号函数来区分它们,所以我有这个代码:

syms x;
f(x) = 1./x;

X=-10:0.1:10;
Y=f(X);
plot(X,Y);

不幸的是,我在这里遇到了一个错误

MuPAD 命令错误:除以零。[_力量]

这是合理的,因为在某些时候它会尝试将 1 除以 0。我怎样才能使它工作,以便Inf在除以零时返回,就像在表格的常规计算中一样a=6/0;

4

1 回答 1

1

ezplot函数可用于直接绘制符号函数和表达式。

syms x;
f(x) = 1/x;
ezplot(f,[-10 10]);

如果要将表达式转换为可以数值计算的值,可以使用matlabFunction将符号函数转换为函数句柄

syms x;
f(x) = 1/x;
X = -10:0.1:10;
F = matlabFunction(f);
plot(X,F(X));

为什么 MuPAD 不infinity返回1/0?在浮点数中,这是明确定义的,但在数学中,被零除是未定义的。如果您想完全在 MuPAD 中评估您的函数,您需要从 Matlab 调用底层函数处理错误

于 2015-09-04T19:08:49.983 回答