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

MATLAB如何对符号方程中相同分母的分数项进行分组合并

MATLAB符号表达式同分母项分组实现方案

现有函数组合实现

MATLAB符号数学工具箱未提供直接实现该需求的独立函数,可通过多个内置函数组合完成需求,核心逻辑为拆分所有加和项、提取分项的分子分母、按分母聚合分子、重组表达式,示例代码如下:

% 声明符号变量
syms x1 x2 x3 x4 f1(x) f2(x)
% 构造示例原始表达式(包含多组不同分母的加和项)
raw_expr = x1/f1(x) + x2/f2(x) + x3/f1(x) + x4/f2(x);

% 1. 拆分所有独立加和项
term_list = children(raw_expr);
% 2. 初始化映射表存储<分母, 对应分子和>
denominator_map = containers.Map('KeyType','char','ValueType','any');

% 3. 遍历所有分项聚合同分母分子
for idx = 1:length(term_list)
    [numerator, denominator] = numden(term_list(idx));
    den_str = char(denominator);
    if isKey(denominator_map, den_str)
        denominator_map(den_str) = denominator_map(den_str) + numerator;
    else
        denominator_map(den_str) = numerator;
    end
end

% 4. 重组为同分母分组后的表达式
grouped_expr = 0;
den_list = keys(denominator_map);
for idx = 1:length(den_list)
    current_den = str2sym(den_list{idx});
    current_num_sum = denominator_map(den_list{idx});
    grouped_expr = grouped_expr + current_num_sum / current_den;
end

运行上述代码后,grouped_expr输出结果为(x1 + x3)/f1(x) + (x2 + x4)/f2(x),符合同分母分组要求。

特殊场景适配

如果你的表达式包含带常数系数的分母、嵌套分式,可对上述逻辑做适配调整:

  • 若需要将仅常数系数不同的同函数分母分为一组,可提取分母的常数系数移至分子侧,再做聚合
  • 若存在嵌套分式,可先调用numden对整个表达式做初步展开后再拆分分项

内容的提问来源于stack exchange,提问作者Green Haired Orangutan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:27:00