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

16 Ansichten (letzte 30 Tage)
腾龙娱乐现场开户【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]

Antworten (0)

Kategorien

Mehr zu 数学 finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!