Your solutions of Wx and dX are perfect!

Thank you,

Erik


----- Eredeti levél (Original Message) -----
Feladó: Mike Day <[email protected]>
Dátum: Szerda, Augusztus 20, 2014 4:42 du
Tárgy: Re: [Jprogramming] Matrix equation
Címzett: [email protected]

> 0. Your J expression for Wx looks wrong to me.
> If you want to get
> 
>     Wx = (1-(q0^2)-(q1^2)-(q2^2)-(q3^2))%2 in 
> conventional arithmetic notation
> then you need
>     Wx=:(1-(q0^2)+(q1^2)+(q2^2)+(q3^2))%2
> or
>     Wx=:(1-+/*:q)%2      
> NB. Your J-expression is effectively (1- -/ *:q)%2
> or
>     [Wx=: -: -. +/*:,C   NB. according 
> to your definition of C
> 
> 0
> Maybe q = (q0, q1, q2, q3) is not always so simple.
> Whatever its numerical value, Wx is scalar,  and might 
> perhaps be 
> regarded as 0.5 * (1 - C mp CT) .
> 
> 
> 1.  Nc = C.Nb.CT is scalar, and therefore NcI is also scalar.
> 
> 
> 2.  You don't state the vector l,  so I can only use 
> your stated value 
> for W,  and I've used your stated value for B;
> both of these were given to 3 places of decimals.
> 
> 
> 3. A suitable J expression allowing for NbI as an overall 
> factor, since 
> it's a left multiplier in both parts of
> 
>     (NbI-NbI*CT*NcI*C*NbI)*W + (NbI*CT*NcI*Wx) 
> (conventional notation)
> 
> appears to be
> 
>     dX=:NbI mp((I-CT mp NcI mp C mp NbI)mp W)+CT 
> mp NcI mp Wx NB. J notation
> 
> where
>     I =: =i.#NbI    NB. identity matrix
> 
> Using my value of 0 for Wx:
> 
> 25j20": dX=:NbI mp((I -CT mp NcI mp C mp NbI)mp W)+CT mp NcI mp Wx
> 
> _0.33362737497592021000
> 
> _0.21892578452135747000
> 
> _0.10546486185920967000
> 
> _0.24545356011509956000
> 
> _0.10446141957003618000
> 
> 
> Using your value of 0.5 for Wx:
> 
> 25j20": dX=:NbI mp((I -CT mp NcI mp C mp NbI)mp W)+CT mp NcI mp %2
> 
> _0.33362725373747026000
> 
> _0.21892575956391414000
> 
> _0.10546489384744806000
> 
> _0.24545356063333446000
> 
> _0.10446153412014780000
> 
> 
> Evidently CT mp NcI is numerically small compared to the 
> expression 
> involving W.
> 
> 
> Please note that scalar part-expressions could be moved around, 
> and they 
> may be applied with a simple * verb.
> I haven't done that here.
> 
> 
> Mike
> 
> On 20/08/2014 08:43, "Papp Erik Tamás" wrote:
> > Dear Forum,
> >
> > Can somebody help me to solve the folloving matrix equation?
> >
> >         
> pps=:9!:11   NB. set print precision
> >     pps 20
> >     mp=: +/ . 
> *         NB. Matrix product
> >     
> >     
> NB.=======================================================================================>
>      NB. The following matrix equation have to be solve
> >     NB. dX=(NbI-
> NbI*CT*NcI*C*NbI)*W+NbI*CT*NcI*Wx>     
> NB.=======================================================================================>
>      NB. BT = B transpose
> >         BT=:|:B
> >     NB. Nb = BT*B
> >         Nb=:BT mp B
> >     NB. NbI = Nb inverse
> >         NbI=:%.Nb
> >     NB. W = BT * l
> >         W=: BT mp l
> >     NB. C = [q0 q1 q2 q3 0]
> >         C=:1 5$q0,q1,q2,q3,0
> >     NB. CT = C transpose
> >         CT=:|:C
> >     NB. Wx = (1-(q0^2)-(q1^2)-(q2^2)-(q3^2))%2
> >         Wx=:(1-(q0^2)-
> (q1^2)-(q2^2)-(q3^2))%2
> >     NB. Nc = C * Nb * CT
> >         Nc=:C mp Nb mp CT
> >     NB. NcI = Nc inverse
> >         NcI=:%.Nc
> >     
> NB.=======================================================================================>
>          ]Nc=:C mp Nb mp CT
> > 5736.3999999999996
> >     
> >         ]Nc=:(C mp Nb) 
> mp CT
> > 5736.3999999999996
> >     
> >         ]Nc=:C mp (Nb 
> mp CT)
> > 5736.3999999999996
> >     
> NB.=======================================================================================>
>      12j3":B
> >         
> 4.700       4.700      20.700       4.700      _3.300
> >        
> _4.700     _20.700     
> _11.300     _27.300      _8.000
> >        
> 16.000       6.600      22.600       0.000       8.000
> >         
> 2.200      12.200       8.200      _7.800       4.200
> >        
> _2.200     _18.200       6.200      _9.800       2.000
> >         
> 6.000       1.600      _2.400      10.000       8.000
> >         
> 9.200      _0.800      15.200      19.200       1.200
> >        
> _9.200      _5.200      _6.800      _2.800      _8.000
> >         
> 6.000     _12.400       3.600     _10.000      _2.000
> >       
> _10.300      _0.300     _24.300     _20.300       1.700
> >        
> 10.300      14.300      13.700      17.700      12.000
> >       
> _14.000       6.600     _17.400      10.000      _2.000
> >        
> _5.800     _15.800     
> _19.800       4.200      _3.800
> >         
> 5.800      29.800      _1.800      22.200       2.000
> >       
> _14.000      _2.400      _6.400     _10.000     _12.000
> >     
> >     $B
> > 15 5
> >     
> >     12j3":BT
> >         
> 4.700      _4.700      16.000       2.200      _2.200       6.000       9.200 
>      _9.200       6.000     _10.300      10.300     _14.000      _5.800       
> 5.800     _14.000
> >         
> 4.700     _20.700       6.600      12.200     _18.200       1.600      _0.800 
>      _5.200     _12.400      _0.300      14.300       6.600     _15.800      
> 29.800      _2.400
> >        
> 20.700     _11.300      22.600       8.200       6.200      _2.400      
> 15.200      _6.800       3.600     _24.300      13.700     _17.400     
> _19.800      _1.800      _6.400
> >         
> 4.700     _27.300       0.000      _7.800      _9.800      10.000      19.200 
>      _2.800     _10.000     _20.300      17.700      10.000       4.200      
> 22.200     _10.000
> >        
> _3.300      _8.000       8.000       4.200       2.000       8.000       
> 1.200      _8.000      _2.000       1.700      12.000      _2.000      _3.800 
>       2.000     _12.000
> >     
> >     $BT
> > 5 15
> >     
> >     12j3":Nb
> >      1222.600     
> 623.600    1555.000     
> 853.000     611.300
> >       623.600    
> 2549.800     805.200    
> 1754.000     602.300
> >      1555.000     
> 805.200    2985.800    
> 1034.600     602.300
> >       853.000    
> 1754.000    1034.600    
> 2936.600     602.300
> >       
> 611.300     602.300     
> 602.300     602.300     
> 607.300>     
> >     $Nb
> > 5 5
> >     
> >     12j6":NbI
> >      0.004533    
> 0.000333   _0.001772   _0.000311   
> _0.002826>      
> 0.000333    0.000749   
> _0.000128   _0.000382   _0.000573
> >     _0.001772   
> _0.000128    0.001127    
> 0.000039    0.000754
> >     _0.000311   
> _0.000382    0.000039    
> 0.000642    0.000016
> >     _0.002826   
> _0.000573    0.000754    
> 0.000016    0.004295
> >     
> >     $NbI
> > 5 5
> >     
> >     12j3":W
> >      _981.642
> >     _1344.633
> >     _1326.828
> >     _1561.409
> >      _610.603
> >     
> >     $W
> > 5 1
> >     
> >     12j3":C
> >         
> 0.500       0.500       0.500       0.500       0.000
> >     
> >     $C
> > 1 5
> >     
> >     12j3":CT
> >         0.500
> >         0.500
> >         0.500
> >         0.500
> >         0.000
> >     
> >     $CT
> > 5 1
> >     
> >     12j3":Wx
> >         0.500
> >     
> >     $Wx
> > 1
> >     
> >     12j3":Nc
> >      5736.400
> >     
> >     $Nc
> > 1 1
> >     
> >     NcI
> > 0.00017432536085349698
> >     
> >     $NcI
> > 1 1
> >     
> >     
> NB.=======================================================================================>
>      NB. dX=(NbI-NbI*CT*NcI*C*NbI)*W+NbI*CT*NcI*Wx
> >     NB. dX=(NbI-NbI mp CT mp NcI mp C mp 
> NbI) mp W+NbI mp CT mp NcI mp Wx
> >     
> NB.=======================================================================================>
>      NB. solution step by step
> >     dX=:(NbI-NbI mp CT mp NcI mp C mp NbI) 
> mp W+NbI mp CT mp NcI mp Wx
> >     NB. dX=f+i
> >     ]a=:NbI mp CT
> >    0.0013909444659834052
> >   0.00028633175856724745
> > _0.00036699466085721166
> >   _5.9456044547029092e_6
> >   _0.0013142105194193007
> >     
> >     ]b=:a mp NcI
> >   2.4247689595973174e_7
> >    4.991488713605179e_8
> > _6.3976476685240161e_8
> > _1.0364696420582438e_9
> >   _2.291002230352313e_7
> >     
> >     ]c=:b mp C
> >    1.2123844797986587e_7   
> 1.2123844797986587e_7   1.2123844797986587e_7   1.2123844797986587e_7 0
> >    2.4957443568025895e_8   
> 2.4957443568025895e_8   2.4957443568025895e_8   2.4957443568025895e_8 0
> >   _3.1988238342620081e_8  
> _3.1988238342620081e_8  _3.1988238342620081e_8  
> _3.1988238342620081e_8 0
> > _5.1823482102912192e_10 _5.1823482102912192e_10 
> _5.1823482102912192e_10 _5.1823482102912192e_10 0
> >   _1.1455011151761565e_7  
> _1.1455011151761565e_7  _1.1455011151761565e_7  
> _1.1455011151761565e_7 0
> >     
> >     ]d=:c mp NbI
> >   3.3727189656402491e_10   
> 6.942883603207513e_11 _8.8987726198450762e_11  
> _1.441671712780783e_12 _3.1866568738641721e_10
> >   6.9428836032077935e_11  
> 1.4292217412350897e_11 _1.8318497076221252e_11 
> _2.9677417531211663e_13 _6.5598669749826067e_11
> > _8.8987726198451706e_11 _1.8318497076220693e_11  
> 2.3479025363938921e_11  3.8037882477597397e_13  
> 8.4078558655125846e_11> _1.4416717127807238e_12 
> _2.9677417531209235e_13  3.8037882477595918e_13  
> 6.1624385209859802e_15  1.3621393066516946e_12
> > _3.1866568738642073e_10 _6.5598669749824141e_11  
> 8.4078558655125924e_11  1.3621393066517597e_12  
> 3.0108592311420753e_10>     
> >     ]e=:NbI - d
> >    0.0045328344164105271  
> 0.00033293998348083668  _0.0017724766597981138 
> _0.00031140912439777367  _0.0028261600905336174
> >   0.00033293998348086812  
> 0.00074882329681384913 _0.00012756882532661765 
> _0.00038153100293938686 _0.00057288268896462887
> >   _0.0017724766597981279 
> _0.00012756882532660762   0.0011266169145724698   3.9439332284661476e_5  
> 0.00075421374633090137
> > _0.00031140912439777405 _0.00038153100293938501   
> 3.9439332284660466e_5  0.00064160958749499744   
> 1.6408293152415618e_5>   _0.0028261600905336603 
> _0.00057288268896460545  0.00075421374633090712   
> 1.6408293152416783e_5   0.0042952959863754138
> >     
> >     ]f=:e mp W
> > _0.33363012653942103
> > _0.21892822215417146
> > _0.10546286817415873
> > _0.24545184018518121
> >   _0.1044605740131157
> >     
> >     ]g=:NbI mp CT
> >    0.0013909444659834052
> >   0.00028633175856724745
> > _0.00036699466085721166
> >   _5.9456044547029092e_6
> >   _0.0013142105194193007
> >     
> >     ]h=:g mp NcI
> >   2.4247689595973174e_7
> >    4.991488713605179e_8
> > _6.3976476685240161e_8
> > _1.0364696420582438e_9
> >   _2.291002230352313e_7
> >     
> >     ]i=:g mp Wx
> > 0.00069547223299170258 0.00014316587928362372 
> _0.00018349733042860583 _2.9728022273514546e_6 _0.00065710525970965033
> >     
> >     
> >     ]dX=:f + i NB. step by step solution
> > _0.33293465430642932
> > _0.21878505627488784
> > _0.10564636550458734
> > _0.24545481298740857
> > _0.10511767927282535
> >     
> >     
> NB.=======================================================================================>
>      NB. VERSION 1
> >     NB. dX=(NbI-
> NbI*CT*NcI*C*NbI)*W+NbI*CT*NcI*Wx>     NB. 
> dX=((NbI-(((NbI*CT)*NcI)*C*NbI))*W)+((NbI*CT)*NcI*Wx)
> >     
> >     ]dX=:((NbI-(((NbI mp CT) mp NcI) mp C 
> mp NbI)) mp W)+((NbI mp CT) mp NcI mp Wx)
> > _0.33363000530097303
> >   _0.2189281971967279
> > _0.10546290016239707
> > _0.24545184070341602
> > _0.10446068856322722
> >     
> NB.=======================================================================================>
>      NB. VERSION 2
> >     NB. dX=(((NbI-
> (((NbI*CT)*NcI)*C)*NbI)*W)+(NbI*CT)*NcI)*Wx>     
> >     ]dX=:(((NbI-(((NbI mp CT) mp NcI) mp 
> C) mp NbI) mp W)+(NbI mp CT) mp NcI) mp Wx
> > _0.16681494203126254 _0.10946408611964216 
> _0.052731466075317708 _0.12272592061082542 _0.052230401556669366
> >     
> NB.=======================================================================================>
>      NB. VERSION 3
> >     NB. dX=((NbI-
> (((NbI*CT)*NcI)*C)*NbI)*W)+(NbI*CT)*NcI*Wx>     
> >     ]dX=:((NbI-(((NbI mp CT) mp NcI) mp C) 
> mp NbI) mp W)+(NbI mp CT) mp NcI mp Wx
> > _0.33363000530097303
> >   _0.2189281971967279
> > _0.10546290016239707
> > _0.24545184070341602
> > _0.10446068856322722
> >     
> NB.=======================================================================================>
>      NB. VERSION 4
> >     NB. dX=(NbI-
> NbI*CT*NcI*C*NbI)*W+NbI*CT*NcI*Wx>     NB. 
> D=(NbI*CT)*NcI>     NB. dX=(NbI-D*C*NbI)*W+D*Wx
> >     NB. dX=((NbI-((D*C)*NbI))*W)+D*Wx
> >     
> >     ]dX=:(NbI-((D mp C) mp NbI)) mp W + D 
> mp Wx[D=:(NbI mp CT) mp NcI
> > _0.33363012560096128
> > _0.21892822202521539
> > _0.10546286851468895
> > _0.24545184023593167
> > _0.10446057488621374
> >     
> NB.=======================================================================================>
>      NB. VERSION 5
> >     NB. dX=(NbI-
> NbI*CT*NcI*C*NbI)*W+NbI*CT*NcI*Wx>     NB. 
> dX=:(NbI-NbI mp CT mp NcI mp C mp NbI) mp W+NbI mp CT mp NcI mp Wx
> >     
> >     ]dX=:(NbI-NbI mp CT mp NcI mp C mp 
> NbI) mp W+NbI mp CT mp NcI mp Wx
> > _0.33363012560096128
> > _0.21892822202521539
> > _0.10546286851468895
> > _0.24545184023593167
> > _0.10446057488621374
> >     
> >     
> NB.=======================================================================================>
>     
> >     NB. ORDER OF EVALUATION J Primer tell
> >     NB. J has a right-to-left order of 
> evaluation.>     NB. J always parenthesies 
> from right-to-left.
> >     NB. Remember: no verb precedence and 
> right-to-left evaluation
> >     
> >     
> NB.=======================================================================================>
>      NB. How can solve the above matrix equation?
> >     NB.
> >     NB. Can somebody tell me the right solution?
> >     NB.
> >     NB. Thanks, Erik
> > ---------------------------------------------------------------
> -------
> >
> 
> 
> 
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 2014.0.4716 / Virus Database: 4007/8068 - Release Date: 
> 08/20/14
> -----------------------------------------------------------------
> -----
> For information about J forums see http://www.jsoftware.com/forums.htm
> 
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to