Re: Finding a continuous solution of a cubic
- To: mathgroup at smc.vnet.net
- Subject: [mg86006] Re: Finding a continuous solution of a cubic
- From: "David W.Cantrell" <DWCantrell at sigmaxi.net>
- Date: Sat, 1 Mar 2008 04:44:59 -0500 (EST)
- References: <fq3agu$fq0$1@smc.vnet.net>
Hugh Goyder <h.g.d.goyder at cranfield.ac.uk> wrote: > I am investigating the maxima and minima of the expression, e, below. > The expression is a quartic in x and has two parameters a and b which, > for my problem, are restricted to the range -1 < a < 1 and 0 < b (the > interesting part is 0<b<1). > > I start with a simple approach and take the derivative with respect to > x and solve to find the three turning points. The solution is > complicated and not easy to examine. I work out the discriminant to > see when I will have three real roots or one and plot the region. I > work out three functions for the three roots r1, r2 and r3, and three > functions for the value of e at the roots, f1, f2, and f3. I am > expecting three real functions when within the region defined by the > discriminant and one outside this region. I plot the three roots and > the three functions (there are some artifacts where the functions > turn from real to complex, this is not a problem). > > Now my problem. The function f3 is continuous in the region where > there are three solutions and this I like. Functions f1 and f2 are not > continuous but contain holes. If functions f1 and f2 are plotted > together then they each fill in the others holes. The holes makes my > life difficult because I do not have continuous functions. > > Is it possible to make Solve find roots that will give rise to three > functions one corresponding to the maxima and two corresponding to > each minima without the functions crossing over and jumping between > the turning points? Andrzej and Daniel have already responded, but I'm not sure they gave you quite what you want. I believe that the three functions you want, the solutions of d == 0, can be expressed as x -> Root[-2 a b + (-1 + b + a^2 b) #1 + #1^3 &, 1] applicable when 27 a^2 b^2 <= (1 - b - a^2 b)^3 Or a <= 0 x -> Root[-2 a b + (-1 + b + a^2 b) #1 + #1^3 &, 2] applicable when 27 a^2 b^2 <= (1 - b - a^2 b)^3 x -> -Root[2 a b + (-1 + b + a^2 b) #1 + #1^3 &, 1] applicable when 27 a^2 b^2 <= (1 - b - a^2 b)^3 Or a >= 0 David W. Cantrell > I also notice, from the plots when shown together, that my desired > functions are even with respect to the parameter a. Is this correct > and how would I show this if I can't assemble them as continuous > functions? > > Thanks > > Hugh Goyder > > e = ((1 - x)^2 + b*(-1 + a)^2)*((1 + x)^2 + > b*(1 + a)^2); > > d = Simplify[D[e, x]]; > > dis = Discriminant[d, x]; > > ContourPlot[dis, {a, -1, 1}, {b, 0, 1}, > ContourShading -> False, Contours -> {0}, > FrameLabel -> {"a", "b"}] > > sol = Solve[d == 0, x]; > > ClearAll[x1, x2, x3, f1, f2, f3]; > x1[a_, b_] := Evaluate[x /. sol[[1]]]; > x2[a_, b_] := Evaluate[x /. sol[[2]]]; > x3[a_, b_] := Evaluate[x /. sol[[3]]]; > f1[a_, b_] := Evaluate[e /. sol[[1]]]; > f2[a_, b_] := Evaluate[e /. sol[[2]]]; > f3[a_, b_] := Evaluate[e /. sol[[3]]]; > > r1 = Plot3D[x1[a, b], {a, -1, 1}, {b, 0, 1}] > > r2 = Plot3D[x2[a, b], {a, -1, 1}, {b, 0, 1}] > > r3 = Plot3D[x3[a, b], {a, -1, 1}, {b, 0, 1}] > > Show[r1, r2, r3, PlotRange -> All] > > s1 = Plot3D[f1[a, b], {a, -1, 1}, {b, 0, 1}] > > s2 = Plot3D[f2[a, b], {a, -1, 1}, {b, 0, 1}] > > s3 = Plot3D[f3[a, b], {a, -1, 1}, {b, 0, 2}] > > Show[s1, s2]