用符号函数除零

时间:2015-09-04 17:02:51

标签: matlab symbolic-math mupad

如果我想在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;

1 个答案:

答案 0 :(得分:1)

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

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

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

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

为什么MuPAD不为1/0返回infinity?在浮点数中,这是明确定义的,但在数学中,divison by zero未定义。如果您想完全在MuPAD中评估您的功能,则需要call underlying functions from Matlabhandle errors