matlab系列之(一)——利用matlab实现任意两个多项式相加

上课时的课程作业,后续我会持续整理出来注释好,供大家共同学习!致谢课程老师!

一、问题描述

输入任意两个多项式,相加后输出结果;

二、问题分析

输入多项式可以采用输入系数矩阵或完整多项式的方式,为了符合习惯,程序中采用输入完整多项式的形式;

多项式相加本质上为对应阶次的系数相加,利用matlab强大的矩阵运算功能进行叠加,核心在于提取系数,判断系数矩阵长短,并完成补0对齐,便于相加,得到相加的系数矩阵后,再输出成多项式的形式,完成整个运算,代码非常简单。

三、运行结果

matlab系列之(一)——利用matlab实现任意两个多项式相加_第1张图片

四、源代码

function result= polyplus(p1,p2)
%% 函数说明
%本函数用于多项式加法 %修改于2019年12月15日
%函数调用示例:
%syms x y 
%f1 = 4*x^4 + 2*x + 1;
%f2 = x^5+2*x+1;
%q1_polyplus(f1,f2)
%% 参数读入区
%p1 = p1(:).';%当调用为系数矩阵时的容错
%p2 = p2(:).';

if nargin~=2 %参数判断
    disp('please input two parameters! ');
end
x1 = sym2poly(p1);%提取多项式系数
x2 = sym2poly(p2);

%% 加法运算区
L1 = length(x1);%判断系数矩阵长度
L2 = length(x2);

if L1>L2  %系数矩阵扩充
    x2=[zeros(1,L1-L2),x2];
else
    x1=[zeros(1,L2-L1),x1];
end
x3 = x1+x2; %系数矩阵相加 

%% 显示输出区
x = sym('x');
rusult=poly2sym(x3,x)%输出为多项式形式

 

你可能感兴趣的:(matlab学习,matlab)