You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matlab中计算两个同心圆与曲线y=x²的围合区域面积

Matlab求解两同心圆与抛物线围合区域面积实现方案

边界与交点前置计算

已知几何元素:

  • 内圆:圆心在原点,半径5,方程为x² + y² = 25
  • 外圆:圆心在原点,半径10,方程为x² + y² = 100
  • 曲线:开口向上的抛物线y = x²

三者围合的常规有效区域为同时满足环形约束 25 ≤ x²+y² ≤ 100 且位于抛物线上方(y ≥ x²)的区域,区域关于y轴对称,可先计算x≥0的半区面积再乘以2得到总面积。
先求解交点坐标:

  1. 抛物线与内圆交点:将y=x²代入内圆方程得y² + y - 25 = 0,取正根y=(√101 -1)/2 ≈ 4.525,对应正x坐标x1=√y≈2.127
  2. 抛物线与外圆交点:将y=x²代入外圆方程得y² + y - 100 = 0,取正根y=(√401 -1)/2 ≈ 9.512,对应正x坐标x2=√y≈3.084

Matlab实现代码

提供两种实现方式,按需选择即可:

方式1:符号积分(可输出解析表达式)

syms x y
% 交点正x坐标
x1 = sqrt((sqrt(101)-1)/2);
x2 = sqrt((sqrt(401)-1)/2);

% 分两段计算x正半轴面积
% 第一段x∈[0, x1]:y下界为内圆上沿,上界为外圆上沿
area_half1 = int(int(1, y, sqrt(25-x^2), sqrt(100-x^2)), x, 0, x1);
% 第二段x∈[x1, x2]:y下界为抛物线,上界为外圆上沿
area_half2 = int(int(1, y, x^2, sqrt(100-x^2)), x, x1, x2);

% 对称加倍得到总面积
total_area = 2 * (area_half1 + area_half2);
% 输出6位有效数字的数值结果
disp(['围合区域面积:', char(vpa(total_area, 6))])

方式2:数值积分(计算速度更快)

% 交点正x坐标
x1 = sqrt((sqrt(101)-1)/2);
x2 = sqrt((sqrt(401)-1)/2);

% 定义两段被积函数(上下边界的差值)
f1 = @(x) sqrt(100 - x.^2) - sqrt(25 - x.^2);
f2 = @(x) sqrt(100 - x.^2) - x.^2;

% 数值积分计算半区面积
area_half1 = integral(f1, 0, x1);
area_half2 = integral(f2, x1, x2);

% 对称加倍得到总面积
total_area = 2 * (area_half1 + area_half2);
disp(['围合区域面积:', num2str(total_area, 6)])

结果说明

运行代码可得到目标区域面积约为95.27,若需要计算环形中位于抛物线下方的围合区域,直接用环形总面积75π ≈ 235.62减去上述结果即可。

内容的提问来源于stack exchange,提问作者matlabbeginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:15:04