怎么在MATLAB中画一个比较复杂的函数?

来源:百度知道 编辑:UC知道 时间:2024/06/06 10:47:01
plot(x,(exp(-x)*((-1/6)*27.2*x*x-13.6x-2/3x+1/x-13.6)))
我一点都不会用网上随便搜了个plot命令,但是总是显示missing matlab operator?有谁知道怎么画图啊?

首先,你不清楚一个问题,matlab中认为所有的数据都是矩阵,因此在你进行操作的时候,也必须清楚这个概念,画图的时候,x是一个向量,因此后边的表达式应该是向量表达式,也就是说使用的是很向量操作,那么你就不能使用这种操作方式,向量的乘法分为点乘和矩阵乘法,你需要的是点乘,运算的时候必须使用'.',加以说明,因此正常的操作应该是:
>> x=0:0.1:100;%创建向量;
>> plot(x,(exp(-x).*((-1/6)*27.2*x.*x-13.6*x-2/3.*x+1./x-13.6)));%画图
>>

可以使用ezplot来画隐函数的图形,类似的函数都可以使用它来画

使用格式如下:
ezplot(fun)
ezplot(fun,[min,max])

其中fun必须为字符串的形式,正如1楼所写的那样,同时[min,max]用来指定坐标的范围,默认一般都是x,你可以改为如下:
ezplot('exp(-x).*((-1/6)*27.2*x.*x-13.6*x-2./(3*x)+1./x-13.6)',[0 10])

运行结果:
>>ezplot('exp(-x).*((-1/6)*27.2*x.*x-13.6*x-2./(3*x)+1./x-13.6)')

下面就是图形了!

ezplot('(exp(-x)*((-1/6)*27.2*x*x-13.6*x-2/3/x+1/x-13.6))')

试一下这样子?
x = -1:.01:1;
y = exp(-x).*((-1/6)*27.2*x.*x-13.6*x-2./(3*x)+1./x-13.6);
figure;
plot(x, y);