【发布时间】:2017-06-20 11:29:31
【问题描述】:
我一直在研究 Scilab 中的一个程序,该程序通过梯形规则对函数进行数值积分(不使用内置函数)。我对集成或绘制函数没有任何问题,但我想将真实函数叠加在梯形图上,并着色。
由于某种原因,当我将边界 a = 0 设置为 b = 3 时,没问题,我得到了我想要的。但是,当我将边界设置为 3 以上时,梯形仍将绘制(按线),但它们不会着色。在下面的代码中,颜色停止在 3。例如,如果我绘制 0 到 6,颜色中途停止。 3到6,完全没有颜色。
以下是相关的代码部分:
deff('[y] = f(x)','y = e^(x^2)'); // Definition of function
a = 0; // Lower bound
b = 4; // Upper bound
n = 20; // Number of intervals
h = ((b - a)/n); // Interval spacing
x = a:h:b; // Array of positions for division
和
for i = 1:n+1
y(i) = f(x(i));
end
和
for i = 1:n // Plot colored trapezoids
x_start = a+(h*(i-1));
x_end = a+(h*(i));
y_start = y(i);
y_end = y(i+1);
xpts = [x_start, x_end, x_end, x_start];
ypts = [y_start, y_end, 0, 0];
xfpoly(xpts,ypts,3);
end
【问题讨论】:
-
对于初学者来说,在 xfpoly 中关闭 3 不是合法值
-
@awiebe 不,这是合法的:必须是整数,用于填充多边形的颜色(请参阅 Scilab 帮助了解更多详细信息)。
标签: plot polygon scilab numerical-integration