Question: RE: eliminating terms caused by precision limit

Hello there, 

I wonder if there is any method to eliminate the terms ((6.*10^(-11))*I) in this worksheet. Apparently, they came from the limitation of the numerical precision. 


 

restart;

M2[transform] := <<2/(sqrt(3)*a),-1/(sqrt(3)*a),-1/(sqrt(3)*a)> | <0, -1/a, 1/a>>;

Matrix(3, 2, {(1, 1) = (2/3)*sqrt(3)/a, (1, 2) = 0, (2, 1) = -(1/3)*sqrt(3)/a, (2, 2) = -1/a, (3, 1) = -(1/3)*sqrt(3)/a, (3, 2) = 1/a})

(1)

Iload := <i[T]*exp(-I*Phi[T])|I*i[M]*exp(-I*Phi[M])>;

Vector[row](2, {(1) = i[T]*exp(-I*Phi[T]), (2) = I*i[M]*exp(-I*Phi[M])})

(2)

alpha := exp(I*convert(120*degrees, radians));

-1/2+((1/2)*I)*3^(1/2)

(3)

ABC2SEQ :=  1/3 * <<1,1,1> | <alpha, alpha^2, 1> | <alpha^2, alpha, 1>>;

Matrix(3, 3, {(1, 1) = 1/3, (1, 2) = -1/6+((1/6)*I)*sqrt(3), (1, 3) = (1/3)*(-1/2+((1/2)*I)*sqrt(3))^2, (2, 1) = 1/3, (2, 2) = (1/3)*(-1/2+((1/2)*I)*sqrt(3))^2, (2, 3) = -1/6+((1/6)*I)*sqrt(3), (3, 1) = 1/3, (3, 2) = 1/3, (3, 3) = 1/3})

(4)

Iabc := M2[transform] . (Iload^(%T));

Vector(3, {(1) = (2/3)*sqrt(3)*i[T]*exp(-I*Phi[T])/a, (2) = -(1/3)*sqrt(3)*i[T]*exp(-I*Phi[T])/a-I*i[M]*exp(-I*Phi[M])/a, (3) = -(1/3)*sqrt(3)*i[T]*exp(-I*Phi[T])/a+I*i[M]*exp(-I*Phi[M])/a})

(5)

Iabcx := subs[eval]({a=1.0} , Iabc);

Vector(3, {(1) = .6666666667*sqrt(3)*i[T]*exp(-I*Phi[T]), (2) = -.3333333333*sqrt(3)*i[T]*exp(-I*Phi[T])-(1.000000000*I)*i[M]*exp(-I*Phi[M]), (3) = -.3333333333*sqrt(3)*i[T]*exp(-I*Phi[T])+(1.000000000*I)*i[M]*exp(-I*Phi[M])})

(6)

Ipnz := ABC2SEQ . Iabcx:

simplify( Ipnz );

Vector(3, {(1) = (.5773502693-0.6000000000e-10*I)*i[T]*exp(-I*Phi[T])+.5773502694*i[M]*exp(-I*Phi[M]), (2) = (.5773502693-0.6000000000e-10*I)*i[T]*exp(-I*Phi[T])-.5773502694*i[M]*exp(-I*Phi[M]), (3) = 0.})

(7)

 


 

Download Q20200727_2.mw

Please Wait...