I have a list of solutions that depends on a parameter b3
and I'd like to get the solution for which the x
value is minimal when the parameter value is substituted.
for example:
b3 =.;
f[x_] := x^2 - b3
solutions = Solve[f[x] == 0, x]
{{x -> -Sqrt[b3]}, {x -> Sqrt[b3]}}
I'm trying to get the element for which x/.element
is minimal (which should be b3
-depended). I started with:
f[x_] := x^2 - b3
solutions = Solve[f[x] == 0, x]
minsol := Pick[solutions, x /. solutions, Min[x /.solutions]]
pickminimum = minsol /. {b3 -> 2}
but when trying the above I got:
Pick::incomp: "Expressions {{x->-\[Sqrt]b3},{x->\[Sqrt]b3}} and {-\[Sqrt]b3,\[Sqrt]b3} have incompatible shapes." Pick::incomp: "Expressions {{x->-\[Sqrt]2},{x->\[Sqrt]2}} and {-\[Sqrt]2,\[Sqrt]2} have incompatible shapes"
Then I tried to remove the extra {}
:
f[x_] := x^2 - b3
solutions = Solve[f[x] == 0, x]
minsol := Pick[((#[[1]]) & /@ solutions), x /. solutions, Min[x /. solutions]]
pickminimum = minsol /. {b3 -> 2};
for which I got:
Rule::argr: Rule called with 1 argument; 2 arguments are expected Rule::argrx: Rule called with 0 arguments; 2 arguments are expected.
Trying just to see if it works for some list, also got me nowhere:
f[x_] := x^2 - b3
solutions = Solve[f[x] == 0, x];
minsol := Pick[{1, 2}, x /. solutions, Min[x /. solutions]]
minsol /. {b3 -> 2}
{}
I think I understand why I get the first error - but I have no idea why the second/third won't work.
clarification I'd like to have an expression for any value of b3. this is because later I'm interested at various quantities which are related to this point for many values of b3 (for example draw the first derivative of this 'minimal point' as a function of b3). so I'm less interested in a solution for a particular value of b3
SortBy[solutions /. Rule -> List, Last][[1, 1]] /. List -> Rule
try this. $\endgroup$solutions=x /.Solve[f[x] == 0, x]; Pick[solutions/. b3 -> 2,Min[solutions]/.b3 -> 2]
gives {1}. You need to do the replacement before Pick uses them. $\endgroup$SortBy[solutions /. Rule /.{b3->2} -> List, Last][[1, 1]] /. List -> Rule
$\endgroup$