【发布时间】:2016-02-27 16:06:30
【问题描述】:
我希望计算 matlab 中具有不同 x 范围的两条曲线之间的面积。有两种情况。当一条曲线(图中的红色)高于另一条曲线时,我希望该区域为正,而当该曲线低于蓝色曲线时,该区域为负。我意识到这通常是一个简单的问题,通常会找到两条曲线之间的所有交点,但在我的情况下,交点的数量可能非常大。我的困难是,根据所讨论的数据集,两条曲线将相交任意次数或根本不相交。
例子:
n=4
x = n*pi*rand(100,1);
x=[0;x;pi];
x=sort(x);
y=.5+exp(-.5*x).*sin(x);
x2 = n*pi*rand(1000,1);
x2=[0;x2;pi];
x2=sort(x2);
y2=.5+exp(-.5*x2).*0.6.*sin(x2/1.2);
figure,hold on
plot(x,y,'r-')
plot(x2,y2,'b-')
Area1 = trapz(x, y);
Area2 = trapz(x2, y2);
【问题讨论】: