Re: Solving Nonlinear Equations
- To: mathgroup at smc.vnet.net
- Subject: [mg80606] Re: Solving Nonlinear Equations
- From: Peter Pein <petsie at dordos.net>
- Date: Sun, 26 Aug 2007 23:13:48 -0400 (EDT)
- References: <fals2t$g7g$1@smc.vnet.net>
Biyana, D. (Dugmore) schrieb: > I'm using Mathematica V6.0.1 and I have a system of 4 nonlinear equations > which I'm trying to solve using FindRoot: > > FindRoot[{m1==C-D*Exp[1/(2*B^2)]*Sinh[A/B], > > m2==C^2+(D^2/2)(Exp[2/B^2]Cosh[2A/B]-1)-2C*D*Exp[1/(2B^2)]*Sinh[A/B], > > m3==C^3-3*C^3*D*Exp[1/(2B^2)]*Sinh[A/B],+3*C(D^2/2))*(Exp[2/B^2]Cosh[2A/B]-1 > )+(D^3/4)(3*Exp[1/(2B^2)]Sinh[A/B]-Exp[9/(2B^2)]Sinh[3A/B]), > > m4==C^4-4(C^3)D*Exp[1/(2B^2)]*Sinh[A/B]+3(C*D)^2))*(Exp[2/B^2]Cosh[2A/B]-1)+ > (D^3/4)+C*D^3(3*Exp[1/(2B^2)]Sinh[A/B]-Exp[9/(2B^2)]Sinh[3A/B])+(D^4/8)(Exp[ > 8/(B^2)]*Cosh > [4A/B]-4*Exp[2/(B^2)]Cosh[2A/B]),{{A,initA},{B,initB},{C,initC},{D,initD}}] > > I get the message " FindRoot::cvmit : Failed to converge to the requested > accuracy..." which I suspect is a result of initial values of A, B,C, and D. > What trick can one use to get accepatble initial values? > > MD Biyana > > ******************** > Nedbank Limited Reg No 1951/000009/06. The following link displays the names of the Nedbank Board of Directors and Company Secretary. [ http://www.nedbank.co.za/terms/DirectorsNedbank.htm ] > This email is confidential and is intended for the addressee only. The following link will take you to Nedbank's legal notice. [ http://www.nedbank.co.za/terms/EmailDisclaimer.htm ] > ******************** > > Hi Biyana, if I guessed your equations right, there is a simple solution if m_i=m1^i for i in {2,3,4}: In[1]:= expressions = FullSimplify[ExpandAll[TrigToExp[Apply[Subtract, original = {m1 == c - d*E^(1/(2*b^2))*Sinh[a/b], m2 == c^2 + (1/2)*d^2*(E^(2/b^2)*Cosh[(2*a)/b] - 1) - 2*c*d*E^(1/(2*b^2))*Sinh[a/b], m3 == c^3 - 3*c^3*d*E^(1/(2*b^2))* Sinh[a/b] + (1/2)*(Plus[3])*c*d^2*(E^(2/b^2)*Cosh[(2*a)/b] - 1) + (1/4)*d^3*(3*E^(1/(2*b^2))*Sinh[a/b] - E^(9/(2*b^2))*Sinh[(3*a)/b]), m4 == c^4 - 4*c^3*d*E^(1/(2*b^2))*Sinh[a/b] + 3*(c*d)^2*(E^(2/b^2)*Cosh[(2*a)/b] - 1) + d^3/4 + c*d^3*(3*E^(1/(2*b^2))*Sinh[a/b] - E^(9/(2*b^2))*Sinh[(3*a)/b]) + (1/8)*d^4*(E^(8/b^2)*Cosh[(4*a)/b] - 4*E^(2/b^2)*Cosh[(2*a)/b])}, {1}]]]] Out[1]= {-c + m1 + d*E^(1/(2*b^2))*Sinh[a/b], -c^2 + m2 - (1/2)*d^2*(-1 + E^(2/b^2)*Cosh[(2*a)/b]) + 2*c*d*E^(1/(2*b^2))*Sinh[a/b], ((1/8)*((-d^3)*E^(9/(2*b^2)) - 6*c*d^2*E^((2 + a*b)/b^2) + 3*d*(-4*c^3 + d^2)*E^((1 + 4*a*b)/(2*b^2)) + d^3*E^((3*(3 + 4*a*b))/(2*b^2)) - 6*c*d^2*E^((2 + 5*a*b)/b^2) - 3*d*(-4*c^3 + d^2)*E^((1 + 8*a*b)/(2*b^2)) - 4*E^((3*a)/b)*(2*c^3 - 3*c*d^2 - 2*m3)))/E^((3*a)/b), ((1/16)*((-d^4)*E^(8/b^2) + 4*d^2*(-6*c^2 + d^2)*E^((2 + 2*a*b)/b^2) - 8*c*d^3*E^((9 + 2*a*b)/(2*b^2)) + 8*c*d*(-4*c^2 + 3*d^2)* E^((1 + 6*a*b)/(2*b^2)) + 4*d^2*(-6*c^2 + d^2)*E^((2 + 6*a*b)/b^2) - d^4*E^((8 + 8*a*b)/b^2) + 8*c*d*(4*c^2 - 3*d^2)*E^((1 + 10*a*b)/(2*b^2)) + 8*c*d^3*E^((9 + 14*a*b)/(2*b^2)) - 4*E^((4*a)/b)*(4*c^4 - 12*c^2*d^2 + d^3 - 4*m4)))/E^((4*a)/b)} In[2]:= exbinf = FullSimplify[Assuming[a >= 0, Limit[expressions, b -> Infinity]]] Out[2]= {-c + m1, -c^2 + m2, -c^3 + m3, -c^4 + (1/8)*d^3*(-2 + 3*d) + m4} In[3]:= solbinf = Union[Solve[exbinf == 0 /. Thread[{m2, m3, m4} -> m1^{2, 3, 4}], {c, d}]] Out[3]= {{c -> m1, d -> 0}, {c -> m1, d -> 2/3}} I tried this after guessing: FullSimplify[original /. {a -> 0, d -> 0}] {c == m1, c^2 == m2, c^3 == m3, c^4 == m4} HTH, Peter