matlab中的求商,考尔型电路设计中求连分式商的Matlab实现

2014.1.8

今天上午到下午成功编写了一个我所谓的求连分式商的matlab程序,是因为我发现在电网络理论中发现那个计算比较繁琐。于是我就想编个电脑程序帮我计算吧。

在电网络理论中,课本后面的综合设计部分的要求是当给出一个网络函数时F(s)时,需要用实际的电路去实现那个网络函数。一般用到的是考尔型电路去实现。下图所示就是考尔型电路。

a4c26d1e5885305701be709a3d33442f.png

图中的参数对应下面的参数:

a4c26d1e5885305701be709a3d33442f.png

而计算这些参数要用到“辗转相除”的方法,从而才能的到上面的连分式形式。

比如一个网络函数:a4c26d1e5885305701be709a3d33442f.png

下面的图片是教材上关于此题的解法。目的就是求出右边的那几个数,

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png。这几个参数分别对应上图电路中的参数。此计算还是比较繁琐。于是我就想编程实现。

因为以前都是用C语言编写,不怎么熟悉Matlab语言,所以中间出了很多问题,但是毕竟算法都已经摆在那里的,剩下的只是程序实现。所以经过单步调试慢慢的就成功了。只要用心,冷静下来思考不急不躁什么都可以完成的。

a4c26d1e5885305701be709a3d33442f.png

Matlab的源程序如下:

function g = lianfenshi(N,D)

clc;

x=size(N);y=size(D);

L=size(N)-size(D);

if (L(1,2)>0)

D((y(1,2)+1):x(1,2))=0;

end

if (L(1,2)<0)

N((x(1,2)+1):y(1,2))=0;

end

clear x y L;

syms s;

L=size(D);

P=L(1,2);

j=1;q=1;

for i=1:P

if N(i)~=0

A(j)=N(i)*s^(i-1);

j=j+1;

end

if D(i)~=0

B(q)=D(i)*s^(i-1);

q=q+1;

end

end

M(1,:)=A(1,:); %第1次计算时的 被除数的多项式的因子构成的矩阵

U(1,:)=B(1,:);%第1次计算时的 除数的多项式的因子构成的矩阵

w(1)=M(1,1)/U(1,1);

W(1)=w(1,1);%第1次计算时的 商

W(1)

x=size(M);y=size(U);

L=size(M)-size(U);

if (L(1,2)>0)

U((y(1,2)+1):x(1,2))=0;

end

if (L(1,2)<0)

M((x(1,2)+1):y(1,2))=0;

end

clear x y L;

Z(1,:)=M(1,:)-U(1,:)*W(1);%第1次计算时的 余数多项式的因子构成的矩阵

%z(1)=sum(M(1,:)')'-sum(U(1,:)')'*W(1);

k=2;

while sum(Z(k-1,:)')~=0

M(k,:)=U(k-1,:);

L=size(Z);

clear U;

U(k,:)=Z(k-1,2:L(1,2));

clear L;

w(k)=M(k,1)/U(k,1);

W(k)=w(k);

x=size(M);y=size(U);

L=size(M)-size(U);

if (L(1,2)>0)

U(:,(y(1,2)+1):x(1,2))=0;

end

if (L(1,2)<0)

M(:,(x(1,2)+1):y(1,2))=0;

end

clear x y L;

Z(k,:)=M(k,:)-U(k,:)*W(k);

W(k)

k=k+1;

end

end

当在命令窗口输入如下代码时:

>> D=[0 2 0 1];

>> N=[9 0 10 0 1];

>> lianfenshi(N,D);

计算出的结果如下:

a4c26d1e5885305701be709a3d33442f.png

和书本方法计算结果是完全一致的!小有成就感啊!哈哈


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部