Overload List
| # | Signature | Description |
|---|---|---|
| 1 | void RationalSubstitution(TVec Num, TVec Den, TVec nz, TVec Dz) | Replace the variable of a rational polynomial with another rational polyniomial. |
| 2 | void RationalSubstitution(TVec z, TVec p, ref Double k, TVec nz, TVec Dz) | Zeroes of the original polynomial are stored in z and poles in p vector. |
Overload 1: void RationalSubstitution(TVec Num, TVec Den, TVec nz, TVec Dz)
Replace the variable of a rational polynomial with another rational polyniomial.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Num | TVec | source TVec |
| 2 | Den | TVec | source TVec |
| 3 | nz | TVec | source TVec |
| 4 | Dz | TVec | source TVec |
Result: stored in self (calling object)
Num is the nominator and den is the denominator of the original polynomial. Nz is the nominator and Dz is the denominator of the polynom to substitude the variable with in the original polynomial. The function returns modified num and den. Num and den must have the same length. Nz and Dz must have the same length. The advantage of this method is that rooting of the polynomials is not required. The resulting polynomial is normalized to have the coefficient for the highest power in the polynomial equal to 1.
Overload 2: void RationalSubstitution(TVec z, TVec p, ref Double k, TVec nz, TVec Dz)
Zeroes of the original polynomial are stored in z and poles in p vector.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | z | TVec | source TVec |
| 2 | p | TVec | source TVec |
| 3 | k | Double (ref) | output |
| 4 | nz | TVec | source TVec |
| 5 | Dz | TVec | source TVec |
Result: stored in self (calling object)
Nz is the nominator and Dz is the denominator of the polynom to substitude the variable with in the original polynomial. The function returns modified z and p. Nz and Dz must have the same length. k is the gain factor (not modified).
using Dew.Math;
using Dew.Math.Editors;
using Dew.Math.Units;
using Dew.Signal;
using Dew.Signal.Units;
using Dew.Math.Tee;
using Dew.Signal.Tee;
private void button1_Click(object sender, EventArgs e)
{
Vector num = new Vector(0);
Vector den = new Vector(0);
Vector den1 = new Vector(0);
Vector num1 = new Vector(0);
num.SetIt(false,new double[3] {1,-2, 1});
den.SetIt(false,new double[3] {1,-4, 1});
num1.SetIt(false,new double[2] {1,-1});
den1.SetIt(false,new double[2] {1,-2});
LinearSystems.RationalSubstitution(num,den,num1,den1);
MtxVecEdit.ViewValues(num,"Num",true);
MtxVecEdit.ViewValues(den,"Den",true);
// num = [ 0, 0, -0.5]
// den = [ 1,-3, 1.5]
}