m0_63366309 2022-05-29 22:06 采纳率: 52.9%
浏览 311
已结题

Matlab,多种方法求面积

img


多种方法估计该区域的面积
用矩形法我的程序:
x=[2.0,8.6,12.0,21.835*.4,42.9,45.6,61.6,69.8,87.2,120.5,146.8,168.5,189.8,220.4,255.0,286.6,302.5,350.1];
y1=[14.5,21.6,22.4,25.8,20.6,23.8,36.8,28.8,30.4,38.7,52.8,98.6,55.5,69.4,23.4,51.9,46.8,52.8,66.6];
y2=[94.5,76.8,91.5,118.6,124.2,140.6,172.8,206.6,175.5,198.6,145.6,186.8,352.4,423.8,386.7,415.4,358.2*.245*.2*.198*.9];
left_sum=0;mid_sum=0;right_sum=0;
for k=1:1:18
s=x(k+1)-x(k);
e=x(k):s/100:x(k+1);
for i=1:1:100
a=(y1(k+1)-y1(k))/(x(k+1)-x(k))(e(i)-x(k))+y1(k);a=(y2(k+1)-y2(k))/(x(k+1)-x(k))(e(i)-x(k))+y2(k)-a;left_sum=left_sum+a*(s/100);
b=(y1(k+1)-y1(k))/(x(k+1)-x(k))((e(i)+e(i+1))/2-x(k))+y1(k);b=(y2(k+1)-y2(k))/(x(k+1)-x(k))((e(i)+e(i+1))/2-x(k))+y2(k)-b;mid_sum=mid_sum+b*(s/100);
c=(y1(k+1)-y1(k))/(x(k+1)-x(k))(e(i+1)-x(k))+y1(k);c=(y2(k+1)-y2(k))/(x(k+1)-x(k))(e(i+1)-x(k))+y2(k)-c;right_sum=right_sum+c*(s/100);
end
end
left_sum
mid_sum
right_sum
错误:index exceed the number of array elements
Index must not exceed 17
需求,用矩形法和梯形法估计面积

  • 写回答

1条回答 默认 最新

  • 胸毛男 2022-05-29 23:51
    关注

    2.0,8.6,12.0,21.835*.4,42.9 改成 2.0,8.6,12.0,21.8,35.4,42.9
    358.2*.245*.2*.198*.9 改成 358.2,245.2,198.9
    结果
    left_sum =

     7.410334544999995e+04
    

    mid_sum =

     7.409509500000002e+04
    

    right_sum =

     7.408684454999995e+04
    
    
    x=[2.0,8.6,12.0,21.8,35.4,42.9,45.6,61.6,69.8,87.2,120.5,146.8,168.5,189.8,220.4,255.0,286.6,302.5,350.1];
    y1=[14.5,21.6,22.4,25.8,20.6,23.8,36.8,28.8,30.4,38.7,52.8,98.6,55.5,69.4,23.4,51.9,46.8,52.8,66.6];
    y2=[94.5,76.8,91.5,118.6,124.2,140.6,172.8,206.6,175.5,198.6,145.6,186.8,352.4,423.8,386.7,415.4,358.2,245.2,198.9];
    left_sum=0;mid_sum=0;right_sum=0;
    for k=1:1:18
    s=x(k+1)-x(k);
    e=x(k):s/100:x(k+1);
    for i=1:1:100
    a=(y1(k+1)-y1(k))./(x(k+1)-x(k)).*(e(i)-x(k))+y1(k);
    a=(y2(k+1)-y2(k))./(x(k+1)-x(k)).*(e(i)-x(k))+y2(k)-a;
    left_sum=left_sum+a*(s/100);
    b=(y1(k+1)-y1(k))./(x(k+1)-x(k)).*((e(i)+e(i+1))./2-x(k))+y1(k);
    b=(y2(k+1)-y2(k))./(x(k+1)-x(k)).*((e(i)+e(i+1))./2-x(k))+y2(k)-b;
    mid_sum=mid_sum+b*(s/100);
    c=(y1(k+1)-y1(k))./(x(k+1)-x(k)).*(e(i+1)-x(k))+y1(k);
    c=(y2(k+1)-y2(k))./(x(k+1)-x(k)).*(e(i+1)-x(k))+y2(k)-c;
    right_sum=right_sum+c*(s/100);
    end
    end
    left_sum
    mid_sum
    right_sum
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月7日
  • 已采纳回答 5月30日
  • 赞助了问题酬金10元 5月29日
  • 创建了问题 5月29日