function [d,f,e]=sindiophantine(a,b,c,k)
%*********************************************************
%功能:单步Diophanine方程的求解
%调用格式:[d,f,e]=sindiophantine(a,b,c,t)
%输入参数:多项式A、B、C系数(行向量)及纯滞后(共4个)
%输出参数:Diophanine方程的解d,f,e(共3个)
% C = AD + zdE
% F = BD
%*********************************************************
na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %A、B、C的阶次
nd=k-1; ne=na-1; %D、E的阶次
ad=[a,zeros(1,ne+nd+1-na)]; cd=[c,zeros(1,ne+nd+1-nc)]; %ad、cd长度均设为ne+nd+2
%短除法求解D(Z),E(Z)
for i=1:nd+1
d(i)=0;
for j=1:i
d(i)=d(i)+d(i+1-j)*ad(j);
end
d(i)=cd(i)-d(i); %计算ei
end
for i=1:ne+1
e(i)=0;
for j=1:nd+1
e(i)=e(i)+d(nd+2-j)*ad(i+j);
end
e(i)=cd(i+nd+1)-e(i); %计算gi
end
%得到F(Z)
f=conv(b,d); %计算F
基于Matlab求解diophantine方程
最新推荐文章于 2019-02-05 18:03:37 发布