📄 ged.m
字号:
function y=ged(f,g)
while ~isempty(f) %删除f的前导零
if abs(f(1))<2*eps
f(1)=[];
else
break;
end
end
while ~isempty(g) %删除g的前导零
if abs(g(1))<2*eps
g(1)=[];
else
break;
end
end
if isempty(f)|isempty(g) %f和g不应该为空
error('Arguments should not be null')
return;
end
f=f/f(1);g=g/g(1);
while 1
[q,r]=deconv(f,g); %多项式的长除法
while ~isempty(r) %删除r的前导零
if abs(r(1))<2*eps
r(1)=[];
else
break;
end
end
if isempty(r) %r为空则表示已经整除
y=g/g(1);
return;
else
f=g;
g=r;
end
if length(r)==1 %r如果为常数表示公因子为
y=1;
return;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -