关于matlab求离散点重叠面积及解相应方程
图中棕色部分是poly1与poly2的重叠面积,poly1是离散点的面积,poly2是y=p与x轴的矩形面积,重叠部分面积用polyshape函数求解得到polyout1.area,求解当改变p值时,'polyout1.area=2p'方程p的解,因为重叠面积和p变量有关,解方程不能直接用'polyout1.area'来算,求】指点一下(p值代码里设置了4400),%%后面的部分是行不通的代码

clear all
clc
filename = 'C:\Users\64117\Desktop\测试.xlsx';
sheet1 = 1;
sheet2 = 2;
z = xlsread(filename,sheet2,'B10:B11');
a = xlsread(filename,sheet1);
i = numel(a(:,1))
c(:,1) = repmat(4400,[1 i]);
xl = xlsread(filename,sheet2,'B1');
cl = xlsread(filename,sheet2,'B2:B9');
for j=1:1:i
if a(j,1)==cl(1);
m=j;
elseif a(j,1)==cl(2);
n=j;
end
end
a1 = [a(m:n,1)',a(n,1),a(m,1)];
b1 = [a(m:n,2)',0,0];
c1 = [c(m:n,1)',0,0];
%%问题部分 求p的值
syms p
d(:,1) = repmat(p,[1 i]);
d1 = [d(m:n,1)',0,0];
poly3 = polyshape(a1,b1);
plot(poly3)
poly4 = polyshape(a1,d1);
hold on
plot(poly4)
polyout2 = intersect(poly3,poly4);
eqns=(num2str(polyout2.area)==2*p)
p=solve(eqn,p)