代码如下
function divisionf(f,g)
s1=char(poly2sym(f));
s2=char(poly2sym(g));
format rat
[,r]=deconv(f,g);=zeros(size(r))
if r==zeros(size(r))
if length(f)>length(g)
fprintf('最大公因式为%s.\n',s2);
return
else
fprintf('最大公因式为%s.\n',s1);
return
end
end
while r(1)==0
r(1)=[];
while r
f=g;
g=r;
[~,r]=deconv(f,g);
if r==zeros(size(r))
if length(g)==1
g=1;
end
s=char(poly2sym(g));
fprintf('多项式%s和%s的最大公因式为:%s.\n',s1,s2,s);
return
end
end
end
end
输出结果
divisionf(f, g)
多项式x^3 - 3x^2 - 4x + x^4 - 1和x^2 - x + x^3 - 1的最大公因式为:1.
这里最大公因式应该是x+1
求大佬指点