【问题标题】:Area between line and curve (no function)直线和曲线之间的面积(无功能)
【发布时间】:2016-11-20 03:49:17
【问题描述】:

我想计算橙色线和蓝色线之间的面积。我设法遮蔽了该区域。但我不知道如何应用trapz 函数来获取该区域。在这篇文章中:Area under surface between two curves 我得到了一些解决方案,但我没有曲线的特定方程,只是曲线本身。

橙色线的代码是:

x_1 = [0,M1_1];
y_1 = [c1,c1];
v = plot(x_1,y_1,'LineWidth',2)

蓝色曲线是长度为 (10000x1)-横坐标和 (1x10000)-纵坐标的数组的图。

如果我使用

%c0_1: Intersection blue curve with y-axis
%c1_1: Intersection orange curve with y-axis
A = trapz(ab1(0:c1_1),ab_y1(c1_1:c0_1))

我收到以下错误:

警告:冒号运算符需要整数操作数作为 index 警告:冒号运算符需要整数操作数 用作索引 Error using trapz(第 58 行) LENGTH(X) 必须等于 Y 的长度,以 2 为单位。

如何轻松地将trapz 函数应用于我的问题?

【问题讨论】:

  • 是的,我修改了情节以便更好地理解我的问题。如果我修改旧问题,人们会看到吗?
  • 是的,人们可以看到它,因为它会将问题推到主页上活动列表的顶部。请参阅help center 中的this 元帖子和this 页面,其中写道:“编辑帖子也会将问题推到主页顶部。[...]”。请注意,不鼓励两次问同一个问题,而且大多数情况下都不会受到社区的欢迎。
  • 感谢@Matt 的提示!对此感到抱歉。在以后的问题中会记住这一点。
  • 如果蓝线是 x->0 的渐近线,那么你将得到 area = infinity,除非你也从顶部绑定它。

标签: matlab plot matlab-figure area curve


【解决方案1】:

这是一个答案,虽然我不确定这里的情况和here 有什么区别,因此我不确定它是否真的回答了你的问题...

不管怎样,你不需要明确知道y1函数,只需要知道它的'系列数据。

x = 0:0.1:12;       % x data
y1 = 3*exp(-0.5*x); % y data
y2 = 0.5;
lineStart = find(x>=0,1);
lineEnd = find(y1<=y2,1);
f = plot(x,y1,'b',x,ones(1,length(x))*y2,'r','LineWidth',2);
ylim([0 4])
hold on
area(x(lineStart:lineEnd),y1(lineStart:lineEnd), y2,...
    'EdgeColor', 'none', 'FaceColor', [0.5 0.5 1],'ShowBaseLine','off')
hold off
A = trapz(x(lineStart:lineEnd),y1(lineStart:lineEnd));

我还添加了集成区域的插图:

告诉我这解决了问题;)

【讨论】:

  • 非常感谢!我看到我没有正确设置交叉口的条件!现在很明显,特别感谢您的代码!非常感谢队友! :)
  • y 轴的单位,因为您整合了 x
  • 最后一个问题。我试图为该函数获得相同的结果,但只是转身。 s31.postimg.org/mc3ym1omz/Zwischenablage01.jpg 但我得到一个错误或者更好的说法是 StartLine 和 EndLine 在工作区中都是 1。你知道我可能犯了什么错误吗?非常感谢您的帮助!
  • 代码lineEnd = find(y1&lt;=y2,1) 假定y1 开始于y2,因此它正在寻找它们的第一个交点。如果y2 已经在y1 之上开始,那么你会得到lineEnd = 1,并且积分长度是0 - 这就是你得到错误的原因。
  • 感谢您说清楚。我试图修改这些行,以便 lineStart = find(x&lt;=100,1);(因为 100 是我的情况下的最大 x 值)和 lineEnd = find(y1&gt;=y2,1);,我认为这是错误的。但从逻辑上讲,我只是告诉 Matlab 找出 y1 大于 y2 的位置。但不幸的是,它不起作用。有任何想法吗?谢谢!
猜你喜欢
  • 2019-02-07
  • 2017-10-07
  • 2019-08-15
  • 2017-10-12
  • 2014-12-28
  • 2016-04-20
  • 2017-10-12
相关资源
最近更新 更多