1

我有一个用 ezplot 绘制的符号函数:

  ezplot(f, [0,1]);

我找不到指定 y 值(坐标)来绘制此函数的方法。但是,我也希望为 [0,1] 中的 x 和 [0,1] 中的 y 绘制 f。默认 ezplot 在 [0,20] 或类似的地方绘制我的函数 y。如何指定 y 范围?

这是我的函数(在 q 中):

 ((490*q^3 - 1300*q^2 + 1080*q - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (655*q^3 - 1570*q^2 + 1160*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)))/((10*q^2 - 7*q^3)/(480*q - 600*q^2 + 180*q^3) - (1080*q - 1300*q^2 + 490*q^3 - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + (((10*q^2 - 7*q^3)/(480*q - 600*q^2 + 180*q^3) - (1080*q - 1300*q^2 + 490*q^3 - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + ((1080*q - 1300*q^2 + 490*q^3 - 240)*(1160*q - 1570*q^2 + 655*q^3 - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^2 - ((1080*q - 1300*q^2 + 490*q^3 - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (1160*q - 1570*q^2 + 655*q^3 - 240)/(720*q - 900*q^2 + 270*q^3))^3)^(1/2) + ((1080*q - 1300*q^2 + 490*q^3 - 240)*(1160*q - 1570*q^2 + 655*q^3 - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^(1/3) - (490*q^3 - 1300*q^2 + 1080*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)) + ((10*q^2 - 7*q^3)/(2*(90*q^3 - 300*q^2 + 240*q)) - (490*q^3 - 1300*q^2 + 1080*q - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + (((10*q^2 - 7*q^3)/(2*(90*q^3 - 300*q^2 + 240*q)) - (490*q^3 - 1300*q^2 + 1080*q - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + ((490*q^3 - 1300*q^2 + 1080*q - 240)*(655*q^3 - 1570*q^2 + 1160*q - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^2 - ((490*q^3 - 1300*q^2 + 1080*q - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (655*q^3 - 1570*q^2 + 1160*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)))^3)^(1/2) + ((490*q^3 - 1300*q^2 + 1080*q - 240)*(655*q^3 - 1570*q^2 + 1160*q - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^(1/3)
4

2 回答 2

1

q可以使用 评估以字符串形式编写的函数ezplot,但使用该函数可以更好地控制绘图属性plot。例如,您可以设置XlimYLim属性。

这是一段代码

%evaluate function and plot
f = ' ((490*q^3 - 1300*q^2 + 1080*q - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (655*q^3 - 1570*q^2 + 1160*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)))/((10*q^2 - 7*q^3)/(480*q - 600*q^2 + 180*q^3) - (1080*q - 1300*q^2 + 490*q^3 - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + (((10*q^2 - 7*q^3)/(480*q - 600*q^2 + 180*q^3) - (1080*q - 1300*q^2 + 490*q^3 - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + ((1080*q - 1300*q^2 + 490*q^3 - 240)*(1160*q - 1570*q^2 + 655*q^3 - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^2 - ((1080*q - 1300*q^2 + 490*q^3 - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (1160*q - 1570*q^2 + 655*q^3 - 240)/(720*q - 900*q^2 + 270*q^3))^3)^(1/2) + ((1080*q - 1300*q^2 + 490*q^3 - 240)*(1160*q - 1570*q^2 + 655*q^3 - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^(1/3) - (490*q^3 - 1300*q^2 + 1080*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)) + ((10*q^2 - 7*q^3)/(2*(90*q^3 - 300*q^2 + 240*q)) - (490*q^3 - 1300*q^2 + 1080*q - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + (((10*q^2 - 7*q^3)/(2*(90*q^3 - 300*q^2 + 240*q)) - (490*q^3 - 1300*q^2 + 1080*q - 240)^3/(27*(240*q - 300*q^2 + 90*q^3)^3) + ((490*q^3 - 1300*q^2 + 1080*q - 240)*(655*q^3 - 1570*q^2 + 1160*q - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^2 - ((490*q^3 - 1300*q^2 + 1080*q - 240)^2/(9*(240*q - 300*q^2 + 90*q^3)^2) - (655*q^3 - 1570*q^2 + 1160*q - 240)/(3*(90*q^3 - 300*q^2 + 240*q)))^3)^(1/2) + ((490*q^3 - 1300*q^2 + 1080*q - 240)*(655*q^3 - 1570*q^2 + 1160*q - 240))/(6*(240*q - 300*q^2 + 90*q^3)^2))^(1/3)';
h=ezplot(f,[0 1]);

%get X and Y data
X = get(h,'XData');
Y = get(h,'YData');

%plot X and Y over the ezplot
plot(X,Y)
set(gca, 'XLim', [0 1], 'YLim', [0 2.5]);
于 2013-08-07T10:55:33.237 回答
1

文档

ezplot(fun2,[xmin,xmax,ymin,ymax])

所以我猜你的情况很简单

ezplot(f, [0,1,0,1])

但这假设f是一个隐式函数。所以你必须这样写。例如,将显式函数编写f = @(x) x为隐式函数并将其绘制在 0 和 1 之间:

f = @(x,y) y - x;
ezplot(f, [0,1,0,1])

所以基本上只是将它重写为y- 在假设你f是明确的之前你所拥有的。如果它是隐式的,那么您可以从字面上指定 y 轴限制。

对于您的示例,将注释中的显式函数编写为隐式函数:

f = @(x,y) = y - (x^2-x^(3/2)+...)
于 2013-08-07T08:49:12.280 回答