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

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

一、问题描述

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

二、问题分析

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

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

三、运行结果

四、源代码

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)%输出为多项式形式

 

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Niの大白熊

欢迎打赏以资助我买枸杞!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值