无法使用梯形规则正确计算总面积

时间:2017-09-19 12:21:39

标签: matlab

假设我们有以下等式

dt = 0.1                       % Time interval [min]
t =  [0:dt:9]                      % Time vector [min]
v =  -300*t.^2+2700*t      % Velocity [km/min]

我想解决下面的问题。似乎要求梯形规则。这些问题由我的教授助理发布。请注意,trapz是不允许的,我们必须使用三行代码。

  

(III)。使用速度估算位置的总变化   方程。        为此,您可以使用梯形规则(查找)        长度间隔dt。 (注意:你可以在一行中完成        码。如果你把它分开并做了90次,那就需要了       一会儿。想想这样:找到一个梯形区域,你        需要3个值,两个基数和高度。我们可以调用高度dt。        这两个碱基是由dt分离的值。所以第一个        计算时,这两个值将是v(1)和v(2)。使用此以及如何使用        计算一个梯形的面积,你应该得到一个非常接近的数字        地震同步卫星的实际高度(很酷吧?)        (提示:你可以在一行中执行此操作的方法是使用行向量创建        两个长度为90的向量,每个向量包含不同的v)值        (Double Hint:使用sum()命令获取标量值        最大)

答案说明如下:

....         %The first 90 values of v
.....          %The last 90 values of v
.....        %Scalar value of the total distance traveled

我的第一个解决方案是

v1 =  v(1:end-1)                  %The first 90 values of v
 v2 =  v(2:end)                   %The last 90 values of v
 x_total = 0.5*sum(v1+v2)*dt %Scalar value of the total distance traveled

计算机将此注册为不正确。

我尝试了下一个解决方案

v1 =  v(1:end-1)                  %The first 90 values of v
 v2 =  v(2:end)                   %The last 90 values of v
 x_total = 0.5*(sum(v1*dt)+sum(v2*dt)) %Scalar value of the total distance traveled

计算机将此注册为不正确。

我给教授发了电子邮件,他说x_total错了,总和有问题。我不明白总和是怎么回事,所以我再次给他发了电子邮件。他没有回复两天。

为什么我的回答不正确?什么是正确的解决方案?

1 个答案:

答案 0 :(得分:1)

我认为你正确地计算了梯形数值积分,即它返回与trapz(t, v)相同的结果。

请注意,您实现的方法与trapz文档中提到的方法相同:

  

enter image description here

此外,trapz的实现非常类似(但更通用):

z = diff(x,1,1).' * (y(1:m-1,:) + y(2:m,:))/2;