Re: Solving Nonlinear Transcedental equations
- To: mathgroup at smc.vnet.net
- Subject: [mg66121] Re: [mg66103] Solving Nonlinear Transcedental equations
- From: "Carl K. Woll" <carlw at wolfram.com>
- Date: Sun, 30 Apr 2006 04:21:19 -0400 (EDT)
- References: <200604290741.DAA23503@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
shyam d wrote: > I got a problem with Mathematica 5.1 ,as i am going to solve a Nonlinear > Transcedental Equations, which are five variables with five eqations.it is > not able to solve the problem and it is not showing any thing can any > on please solve the problem using mathematica 5.1. > and send me how to solve in mathematica 5.1 > The problem statement is > > solving the 5 simultaneous Non linear Transcedental equations > > cos(5a)+cos(5b)+cos(5c)+cos(5d)+cos(5e)=0 > cos(7a)+cos(7b)+cos(7c)+cos(7d)+cos(7e)=0 > cos(11a)+cos(11b)+cos(11c)+cos(11d)+cos(11e)=0 > cos(13a)+cos(13b)+cos(13c)+cos(13d)+cos(13e)=0 > cos(a)+cos(b)+cos(c)+cos(d)+cos(e)=4 > > solve for a= ?,b= ?,c= ?,d= ? > > thanks > shaym > Assuming you want the real solution, the simplest approach is to just use FindRoot: coseqns = { Cos[a] + Cos[b] + Cos[c] + Cos[d] + Cos[e] == 4, Cos[5 a] + Cos[5 b] + Cos[5 c] + Cos[5 d] + Cos[5 e] == 0, Cos[7 a] + Cos[7 b] + Cos[7 c] + Cos[7 d] + Cos[7 e] == 0, Cos[11 a] + Cos[11 b] + Cos[11 c] + Cos[11 d] + Cos[11 e] == 0, Cos[13 a] + Cos[13 b] + Cos[13 c] + Cos[13 d] + Cos[13 e] == 0 }; In[11]:= FindRoot[coseqns, {a, .3}, {b, .4}, {c, .5}, {d, .6}, {e, .7}] Out[11]= {a -> 0.474437, b -> 0.114665, c -> 1.08634, d -> 0.330568, e -> 0.787768} However, if for some reason you are interested in the exact answer (as would be produced by Solve) then you can use the symmetry of your problem to simplify things. The first step is to convert your eqns with cosines into an equation without cosines. That is, we'll relabel Cos[a]->a, Cos[b]->b, etc. and work in the new variables. The easiest way to convert your equations in Cos[n a] into equations in Cos[a] is to use ChebyshevT: eqns = coseqns /. Cos[(n_Integer: 1 ) x_] -> ChebyshevT[n, x]; For example, the first two equations now look like: In[13]:= Take[eqns, 2] Out[13]= {a + b + c + d + e == 4, 16 a^5 - 20 a^3 + 5 a + 16 b^5 + 16 c^5 + 16 d^5 + 16 e^5 - 20 b^3 - 20 c^3 - 20 d^3 - 20 e^3 + 5 b + 5 c + 5 d + 5 e == 0} where the new variables a, b, c, d, and e are the cosines of your old variables. The next step is to use the symmetry of your problem. To do this, we need SymmetricReduction, so we load the package SymmetricPolynomials: Needs["Algebra`SymmetricPolynomials`"] Then we transform from the variables a, b, c, d, e to the variables SymmetricPolynomial[{a,b,c,d,e},n] with n running from 1 to 5: In[18]:= Table[SymmetricPolynomial[{a, b, c, d, e}, n], {n, 5}] Out[18]= {a + b + c + d + e, a b + c b + d b + e b + a c + a d + c d + a e + c e + d e, a b c + a d c + b d c + a e c + b e c + d e c + a b d + a b e + a d e + b d e, a b c d + a b e d + a c e d + b c e d + a b c e, a b c d e} To do this we use SymmetricReduction, and we'll call the symmetric polynomials s1, s2, s3, s4, and s5: symeqns = eqns /. x_ == y_ :> SymmetricReduction[x,{a, b, c, d, e},{s1, s2, s3, s4, s5}][[1]] == y; For example, the first two equations have now been transformed to: In[20]:= Take[symeqns, 2] Out[20]= {s1 == 4, 16 s1^5 - 80 s2 s1^3 - 20 s1^3 + 80 s3 s1^2 + 80 s2^2 s1 + 60 s2 s1 - 80 s4 s1 + 5 s1 - 80 s2 s3 - 60 s3 + 80 s5 == 0} Now, we try to solve the symmetrized equations using Solve: In[21]:= symbresults = Solve[seqns]; // Timing Out[21]= {10.609 Second, Null} There are 9 solutions: In[24]:= Length[symbres] Out[24]= 9 However, only 3 of the solutions give real results for s1, s2, etc.: realres = Cases[symbresults, a_ /; Element[{s1, s2, s3, s4, s5} /. a, Reals]]; In[26]:= Length[realres] Out[26]= 3 To find out what a, b, c, d, and e are given s1, s2, etc., we use the fact that a, b, c, d, and e are the roots of the equation: roots = Table[Solve[x^5 - s1 x^4 + s2 x^3 - s3 x^2 + s4 x - s5 == 0 /. realres[[n]], x], {n, 3}]; Applying N to roots shows that only the second result produces real results. So, a solution for a, b, c, d and e can be obtained as follows: ans = Thread[ {a,b,c,d,e} -> roots[[2, All, 1, 2]] ]; Let's check our answer: In[30]:= ArcCos[{a, b, c, d, e}] /. N[ans] Out[30]= {1.08634, 0.787768, 0.474437, 0.330568, 0.114665} Recalling the FindRoot result: {a -> 0.474437, b -> 0.114665, c -> 1.08634, d -> 0.330568, e -> 0.787768} we see that the answers are the same (up to a permutation). The benefit of the Solve approach is that ans gives the exact results for the values of Cos[a], Cos[b], etc. For example, the value 1.08634 is the ArcCos of the extremely large Root object that I give at the end of this post. Carl Woll Wolfram Research In[60]:= N[ArcCos[a /. ans]] Out[60]= 1.08634 In[59]:= a /. ans Out[59]= Root[ 37351364546074803894679853650111685881031823731808069709440733644062720000000\ 00 #1^45 - 134464912365869294020847473140402069171714565434509050953986641118625792000\ 000000 #1^44 + 236985841582529310483574820147870451705244601444583843665739457937539072000\ 0000000 #1^43 - 272596770557464840805860387248647692490002928937009009702824725545473802240\ 00000000 #1^42 + 230195347099028328714805219886619906890176347002313358331551351470590787584\ 000000000 #1^41 - 152202908134158254048591823779673952786966190625129301037640577686417923112\ 9600000000 #1^40 + 820684124992971895423706349695842257027875508354982581091252008534639231631\ 3600000000 #1^39 - 371140919214166112860604619529312562063704008843873556596959517164328116551\ 68000000000 #1^38 + 143685749319116195168007961940238075604194283838070152007983258162951947812\ 864000000000 #1^37 - 483708081733925621201663085162186339099180461032016189939669199118293742387\ 200000000000 #1^36 + 143343555203881923866721090437701765598883070853811028631014598796428299808\ 5386240000000 #1^35 - 377646891417523826582548408010954273357049026647098692097340655728782334821\ 9248640000000 #1^34 + 891694429446091689663521966944091304789263018682818998558361916396643345134\ 7804160000000 #1^33 - 189966553787651756148153988347171238279403741310855250284409576656293679151\ 76263680000000 #1^32 + 367197189622504144121532450807420127708361780853131298364063950097666007608\ 57722880000000 #1^31 - 647025150850733878698212760651504823021676540762343478314708197637430499203\ 88530176000000 #1^30 + 104340285530067143236276375728114299260543533186726385581380224906575420304\ 075194368000000 #1^29 - 154496369008263821694216137468252261436938386973574067098929464311406821220\ 187897856000000 #1^28 + 210618990147436981572747323472242876326178496911008746287827027031471193572\ 482351104000000 #1^27 - 264938236139435586344335892343082408276713739853595035963241088355564053635\ 551133696000000 #1^26 + 308043365160478605934659563122027973792376267504858770095133809400545861541\ 618574131200000 #1^25 - 331485522067471337664545741277467311517243709784712592591698389914139016646\ 758242713600000 #1^24 + 330440988057898404128921545656346453847176314478478186515590536439587647104\ 085690572800000 #1^23 - 305300220129989091857218719812914969414628012897632175077884478684308959393\ 625980928000000 #1^22 + 261478506284757068279344167046572947899027749124486312968369506427962373716\ 958015283200000 #1^21 - 207560221410780336130475181633266381578044058950148042002467559705225280083\ 370335682560000 #1^20 + 152627532338280763134657487896059778280028282793346884523264336489943804859\ 482219484160000 #1^19 - 103883454319406216595259313464995978249843758613073565205438591349203807463\ 763631667200000 #1^18 + 653725035878933464216776733715854113468282871452228887213391728994496451454\ 17225611520000 #1^17 - 379802330437355976720132246346422559264028742311144662114724783733288592273\ 42831603200000 #1^16 + 203366174521608239881338184805590952922744658856337145240024272090022866512\ 37340872128000 #1^15 - 100152438004153185532584606641418750723275024949556445524828308441125112986\ 50986385536000 #1^14 + 452531181946386906747733070548782678802269676271427985315245970816082831875\ 8115302776000 #1^13 - 187061235281545016696317061105075391422705506039390711607113753133841751616\ 9202370656000 #1^12 + 704929127622159959258321748695542118956733012440420411851939020270918865095\ 844446476000 #1^11 - 241119592047659546947424622742691246087009923858686125013765328131112717765\ 905300945600 #1^10 + 744368672052620822159397508245460433523140048851029423082916673833752665842\ 11755609100 #1^9 - 205843852952123552474215845112819268207187144320217451482638413525462596656\ 41929945600 #1^8 + 504683294007418297998388511818335737167514663616609500511233983683763544855\ 7359863825 #1^7 - 108158246820859574195979970825439674942331611089891140781415528039660069770\ 7107644700 #1^6 + 198621701021787855197113156284702135675227591087390151430763563757124400955\ 343973760 #1^5 - 303827500463780325479273350291223160289457767146085116517774811310037395506\ 41486080 #1^4 + 371295164878704126650377950067314083986499287453711879888971665240455195546\ 6673140 #1^3 - 339300203023983330413432511364933646198468779556645352139108159871247896770\ 971600 #1^2 + 205685297220947731922666228074910817819091111176254694859426343134176723038\ 98560 #1 - 619009799065719073110429095957680080341702341327461247801235771922807605266\ 176 &, 1]
- References:
- Solving Nonlinear Transcedental equations
- From: "shyam d" <shyam.nitk@gmail.com>
- Solving Nonlinear Transcedental equations