请教MATLAB如何提取分子和分母?。

16 次查看(过去 30 天)
腾龙娱乐现场开户【tlyf002 .com】
处理分式多项式(符号表达式)的时候,要计算它的零点和极点。本人想到的方法是化简表达式后,提取它的分子多项式和分母多项式,再分别solve。但是,如此做,m函数就不连续了。以下是本人的m函数,还请各位高手多多指教!如果能提供其他方法求极零点,那就感激不尽了。(我用的是MATLABR2013a,64位win7)
[code]
clear all;
clc;
syms l1 l2 ls c1 c2 cs w z0 z1 z2 fenzi fenmu zero pole; %w是角频率,要为正
z0=(1i*w*l1+1/(1i*w*c1))*1i*w*ls/(1i*w*l1+1/(1i*w*c1)+1i*w*ls)*(l2/c2/(1i*w*l2+1/(1i*w*c2))+1/(1i*w*cs))/((1i*w*l1+1/(1i*w*c1))*1i*w*ls/(1i*w*l1+1/(1i*w*c1)+1i*w*ls)+1/(1i*w*cs)+l2/c2/(1i*w*l2+1/(1i*w*c2)));
fprintf('z0=\n');
pretty(z0)
z1=simple(z0);
fprintf('simple(z0)=\n');
pretty(z1)
z2=z1*1i*w*cs*c2*(1i*w*l2+1/(1i*w*c2));
z2=simple(z2);
z2=z2/(1i*w*cs*c2*(1i*w*l2+1/(1i*w*c2)));
z2=simple(z2);
fprintf('最终z2=\n');
pretty(z2)
fenzi=-(ls*(c1*l1*w^2 - 1)*(c2*l2*w^2*1i - 1i)*(c2*l2*w^2 + cs*l2*w^2 - 1)); %这是计算之后,手动提取的
fenmu=(c2*cs*w*(c2*l2*w^2 - 1)*(l2*w*1i - 1i/(c2*w))*(c1*l1*w^2 + c1*ls*w^2- 1)*...
(1i/(cs*w) + (l2*w*1i)/(c2*l2*w^2 - 1) - (ls*w*(c1*l1*w^2*1i - 1i))/(c1*l1*w^2 + c1*ls*w^2 - 1)));
zero=solve(fenzi,w)
pole=solve(fenmu,w)
[\code]

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 数学 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!