当前位置: 首页 > 知识库问答 >
问题:

MATLAB:闭曲线与直线之间的面积

凤棋
2023-03-14
alpha = [0:pi/360:2*pi];
x = 2.*(1-cos(alpha)).*cos(alpha);
y = 2.*(1-cos(alpha)).*sin(alpha);
w = [-4:0.1:0.5];
z = 0.5*w;
plot(x,y);
hold on;
grid on;
plot(w,z);

共有1个答案

陶宏浚
2023-03-14

您只需要使用interp1来计算所需范围的面积。首先,计算曲线和x轴之间的面积(over):

a1 = abs(trapz(x,y)/2);

然后,从交点到零时,直线和x轴之间的面积(下):

x3 = [-3.38 0];
r1 = interp1(x2,y2,x3);
a2 = abs(trapz(x3,r1));

然后在x轴下的曲线的其余部分也是这样:

x4 = [-3.99 -3.38];
r2 = interp1(x,y,x4);
a3 = abs(trapz(x4,r2))/2;
at = a1 + a2 + a3;
clear all;
clc;

z = 0:0.01:2*pi;

x = 2.*(1-cos(z)).*cos(z);
y = 2.*(1-cos(z)).*sin(z);

plot(x,y);
hold on;
grid on;

x2 = -4:0.01:0.5;
y2 = 0.5*x2;

plot(x2,y2);

a1 = abs(trapz(x,y)/2);

x3 = [-3.38 0];
r1 = interp1(x2,y2,x3);
a2 = abs(trapz(x3,r1));

x4 = [-3.99 -3.38];
r2 = interp1(x,y,x4);
a3 = abs(trapz(x4,r2))/2;

at = a1 + a2 + a3;
 类似资料:
  • 我想计算橙色线和蓝色线之间的面积。我设法遮蔽了这个地区。但是我不知道如何应用函数来获取区域。在这篇文章中:两条曲线之间的表面下的面积,我得到了一些解,但我没有一个具体的曲线方程,只是图本身。 橙色线条的代码是: 蓝色曲线是横坐标长度为(10000x1)、纵坐标长度为(1x10000)的数组图。 如何在我的问题上轻松地应用我的函数?

  • 我想确定红线和蓝线之间的区域,但只能确定y值4.559。我怎样才能做到这一点?

  • 我需要得到一条三次(2D)bezier曲线B(t)的点Q,其中从点Q到另一个给定点P的直线与bezier曲线垂直相交。 我知道:P,B(t) 我寻找:Q(基本上我想要g的斜率,但当我知道Q时,我可以很容易地计算出来,但g的斜率已经足够了) 注意,我认为这个ansatz是错误的。这只是为了完整性而包括的。 其中B(x)是笛卡尔坐标系下的bezier曲线,B'(x)是(笛卡尔坐标系下的)导数,k是与y

  • TweenLite中包含基础时间曲线:Power0、Power1、Power2、Power3、Power4 TweenMax中包含拓展时间曲线:Back、Bounce、Circ、Elastic、Expo、ExpoScaleEase、Sine、RoughEase、SlowMo、SteppedEase GreenSock 可以使用时间曲线对动画的过渡效果进行调整,类似于CSS的ease。时间曲线关键词

  • 匀速 不对动画应用任何缓动时间曲线。 对于opacity和colors过渡很有用。 easing: 'linear' anime({ targets: '.linear-easing-demo .el', translateX: 250, direction: 'alternate', loop: true, easing: 'linear' }); 不匀速 基于Robert

  • 问题内容: 我在x轴上有3个数据点,在y轴上有3个数据点: 我想要一条从(1,0)开始,到(3,5)到最高点,然后在(5,0)结束的曲线 我想我需要使用插值,但是不确定如何使用。如果我像这样从scipy使用样条线: 问题答案: 问题是由于没有多余的自变量是阶数为3的。这意味着您没有足够的点/等式来获得样条曲线(这本身就表示对状态不佳的矩阵的警告)。您需要应用较低阶的样条,例如三次样条,其阶数为2: