Find maximum of the output from reduceHow Can I use Solve/Reduce OutputFailure message from ReduceExtract...

The need of reserving one's ability in job interviews

Was it really inappropriate to write a pull request for the company I interviewed with?

1970s scifi/horror novel where protagonist is used by a crablike creature to feed its larvae, goes mad, and is defeated by retraumatising him

School performs periodic password audits. Is my password compromised?

Should we avoid writing fiction about historical events without extensive research?

Are all UTXOs locked by an address spent in a transaction?

Why won't the strings command stop?

Why is it "take a leak?"

Specific Chinese carabiner QA?

How can I handle a player who pre-plans arguments about my rulings on RAW?

How do I deal with being envious of my own players?

Why are special aircraft used for the carriers in the United States Navy?

How to merge row in the first column in LaTeX

Ahoy, Ye Traveler!

I encountered my boss during an on-site interview at another company. Should I bring it up when seeing him next time?

3.5% Interest Student Loan or use all of my savings on Tuition?

Rationale to prefer local variables over instance variables?

It doesn't matter the side you see it

Why is my Contribution Detail Report (native CiviCRM Core report) not accurate?

Is there a math equivalent to the conditional ternary operator?

Misplaced tyre lever - alternatives?

A bug in Excel? Conditional formatting for marking duplicates also highlights unique value

Relationship between the symmetry number of a molecule as used in rotational spectroscopy and point group

is 'sed' thread safe



Find maximum of the output from reduce


How Can I use Solve/Reduce OutputFailure message from ReduceExtract desired solutions from ReduceFinding the least positive integer satisfying a quantified statementhow do I control the output of Reduce function?Using the output of ReduceIncomplete and weird output from ReduceUsing Solve returns unnecessary Root, overcomplicated formula, and erroneous negative valueHow to analyse huge output from Reduce systematically?Make Reduce produce nicer output













2












$begingroup$


I am trying to reduce a function in two variables($n_1$ and $n_2$) whose domain is the set of Integers. I get a long list of pairs of values for these two variables(instead of a range). This could be because the range of $n_2$ changes for each $n_1$. I just want the maximum value of $n_1$ and $n_2$. Can you please guide me?



   driftParamSet = 1.9 - 0.2 Subscript[n, 2] + Subscript[n, 1] (-0.2 + (2.91434*10^-16 Subscript[n, 1])/(1. Subscript[n, 1] + 1.5 Subscript[n, 2]));
drift[Gamma] = 17;
Reduce[driftParamSet> -drift[Gamma] && Subscript[n, 1]>= 0 && Subscript[n, 2]>= 0,{Subscript[n, 1],Subscript[n, 2]}, Integers];


Current output:
$n_1=0land n_2=1left|n_1=0land n_2=2right|n_1=0land n_2=3|n_1=0land n_2=4
\......\left|n_1=0land n_2=90right|n_1=0land n_2=91|\.....\
left(n_1=92land n_2=2right)lor left(n_1=93land n_2=0right)lor left(n_1=93land n_2=1right)lor left(n_1=94land n_2=0right)$



Expected output:



$n_1$=94 and $n_2=$91










share|improve this question











$endgroup$








  • 1




    $begingroup$
    Several symbols in your code are undefined. Please provide the definitions to aid the reader in answering your question.
    $endgroup$
    – bbgodfrey
    1 hour ago










  • $begingroup$
    @bbgodfrey, sorry about that. I have updated the question now.
    $endgroup$
    – gaganso
    1 hour ago
















2












$begingroup$


I am trying to reduce a function in two variables($n_1$ and $n_2$) whose domain is the set of Integers. I get a long list of pairs of values for these two variables(instead of a range). This could be because the range of $n_2$ changes for each $n_1$. I just want the maximum value of $n_1$ and $n_2$. Can you please guide me?



   driftParamSet = 1.9 - 0.2 Subscript[n, 2] + Subscript[n, 1] (-0.2 + (2.91434*10^-16 Subscript[n, 1])/(1. Subscript[n, 1] + 1.5 Subscript[n, 2]));
drift[Gamma] = 17;
Reduce[driftParamSet> -drift[Gamma] && Subscript[n, 1]>= 0 && Subscript[n, 2]>= 0,{Subscript[n, 1],Subscript[n, 2]}, Integers];


Current output:
$n_1=0land n_2=1left|n_1=0land n_2=2right|n_1=0land n_2=3|n_1=0land n_2=4
\......\left|n_1=0land n_2=90right|n_1=0land n_2=91|\.....\
left(n_1=92land n_2=2right)lor left(n_1=93land n_2=0right)lor left(n_1=93land n_2=1right)lor left(n_1=94land n_2=0right)$



Expected output:



$n_1$=94 and $n_2=$91










share|improve this question











$endgroup$








  • 1




    $begingroup$
    Several symbols in your code are undefined. Please provide the definitions to aid the reader in answering your question.
    $endgroup$
    – bbgodfrey
    1 hour ago










  • $begingroup$
    @bbgodfrey, sorry about that. I have updated the question now.
    $endgroup$
    – gaganso
    1 hour ago














2












2








2





$begingroup$


I am trying to reduce a function in two variables($n_1$ and $n_2$) whose domain is the set of Integers. I get a long list of pairs of values for these two variables(instead of a range). This could be because the range of $n_2$ changes for each $n_1$. I just want the maximum value of $n_1$ and $n_2$. Can you please guide me?



   driftParamSet = 1.9 - 0.2 Subscript[n, 2] + Subscript[n, 1] (-0.2 + (2.91434*10^-16 Subscript[n, 1])/(1. Subscript[n, 1] + 1.5 Subscript[n, 2]));
drift[Gamma] = 17;
Reduce[driftParamSet> -drift[Gamma] && Subscript[n, 1]>= 0 && Subscript[n, 2]>= 0,{Subscript[n, 1],Subscript[n, 2]}, Integers];


Current output:
$n_1=0land n_2=1left|n_1=0land n_2=2right|n_1=0land n_2=3|n_1=0land n_2=4
\......\left|n_1=0land n_2=90right|n_1=0land n_2=91|\.....\
left(n_1=92land n_2=2right)lor left(n_1=93land n_2=0right)lor left(n_1=93land n_2=1right)lor left(n_1=94land n_2=0right)$



Expected output:



$n_1$=94 and $n_2=$91










share|improve this question











$endgroup$




I am trying to reduce a function in two variables($n_1$ and $n_2$) whose domain is the set of Integers. I get a long list of pairs of values for these two variables(instead of a range). This could be because the range of $n_2$ changes for each $n_1$. I just want the maximum value of $n_1$ and $n_2$. Can you please guide me?



   driftParamSet = 1.9 - 0.2 Subscript[n, 2] + Subscript[n, 1] (-0.2 + (2.91434*10^-16 Subscript[n, 1])/(1. Subscript[n, 1] + 1.5 Subscript[n, 2]));
drift[Gamma] = 17;
Reduce[driftParamSet> -drift[Gamma] && Subscript[n, 1]>= 0 && Subscript[n, 2]>= 0,{Subscript[n, 1],Subscript[n, 2]}, Integers];


Current output:
$n_1=0land n_2=1left|n_1=0land n_2=2right|n_1=0land n_2=3|n_1=0land n_2=4
\......\left|n_1=0land n_2=90right|n_1=0land n_2=91|\.....\
left(n_1=92land n_2=2right)lor left(n_1=93land n_2=0right)lor left(n_1=93land n_2=1right)lor left(n_1=94land n_2=0right)$



Expected output:



$n_1$=94 and $n_2=$91







equation-solving functions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 1 hour ago







gaganso

















asked 2 hours ago









gagansogaganso

1207




1207








  • 1




    $begingroup$
    Several symbols in your code are undefined. Please provide the definitions to aid the reader in answering your question.
    $endgroup$
    – bbgodfrey
    1 hour ago










  • $begingroup$
    @bbgodfrey, sorry about that. I have updated the question now.
    $endgroup$
    – gaganso
    1 hour ago














  • 1




    $begingroup$
    Several symbols in your code are undefined. Please provide the definitions to aid the reader in answering your question.
    $endgroup$
    – bbgodfrey
    1 hour ago










  • $begingroup$
    @bbgodfrey, sorry about that. I have updated the question now.
    $endgroup$
    – gaganso
    1 hour ago








1




1




$begingroup$
Several symbols in your code are undefined. Please provide the definitions to aid the reader in answering your question.
$endgroup$
– bbgodfrey
1 hour ago




$begingroup$
Several symbols in your code are undefined. Please provide the definitions to aid the reader in answering your question.
$endgroup$
– bbgodfrey
1 hour ago












$begingroup$
@bbgodfrey, sorry about that. I have updated the question now.
$endgroup$
– gaganso
1 hour ago




$begingroup$
@bbgodfrey, sorry about that. I have updated the question now.
$endgroup$
– gaganso
1 hour ago










2 Answers
2






active

oldest

votes


















3












$begingroup$

Let the large result of Reduce be rs. Then the maximum of each quantity is determined by



Max@Cases[rs, Equal[Subscript[n, 1], z_] -> z, Infinity]
(* 94 *)
Max@Cases[rs, Equal[Subscript[n, 2], z_] -> z, Infinity]
(* 94 *)


not 91 as speculated in the question. The corresponding terms in rs can be obtained by



Position[rs, 94, Infinity]
(* {{94, 2, 2}, {4559, 1, 2}} *)

rs[[94]]
(* Subscript[n, 1] == 0 && Subscript[n, 2] == 94 *)

rs[[4559]]
(* Subscript[n, 1] == 94 && Subscript[n, 2] == 0 *)





share|improve this answer











$endgroup$













  • $begingroup$
    thank you! To understand this better, the Cases[] function with the specified parameter creates a list of values of n1/n2 and the Max[] function operates on this list to give the maximum?
    $endgroup$
    – gaganso
    1 hour ago






  • 1




    $begingroup$
    @gaganso Precisely so.
    $endgroup$
    – bbgodfrey
    1 hour ago



















3












$begingroup$

An alternative is to use Solve after Rationalizeing input expressions:



driftParamSet = Rationalize[1.9 - 0.2 n2 + 
n1 (-0.2 + (2.91434*10^-16 n1)/(1. n1 + 1.5 n2)), 10^-16]
driftγ = 17;
solutions = Solve[driftParamSet > -driftγ && n1 >= 0 && n2 >= 0, {n1, n2}, Integers];

Max /@ Transpose[{n1, n2} /. solutions]



{94, 94}




Yet another approach is using ArgMax:



Extract[ArgMax[{#, driftParamSet > -driftγ && n1 >= 0 && n2 >= 0}, {n1, n2}, Integers]& /@ 
{n1, n2}, {{1, 1}, {-1, -1}}]



{94, 94}







share|improve this answer











$endgroup$













    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "387"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192764%2ffind-maximum-of-the-output-from-reduce%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    3












    $begingroup$

    Let the large result of Reduce be rs. Then the maximum of each quantity is determined by



    Max@Cases[rs, Equal[Subscript[n, 1], z_] -> z, Infinity]
    (* 94 *)
    Max@Cases[rs, Equal[Subscript[n, 2], z_] -> z, Infinity]
    (* 94 *)


    not 91 as speculated in the question. The corresponding terms in rs can be obtained by



    Position[rs, 94, Infinity]
    (* {{94, 2, 2}, {4559, 1, 2}} *)

    rs[[94]]
    (* Subscript[n, 1] == 0 && Subscript[n, 2] == 94 *)

    rs[[4559]]
    (* Subscript[n, 1] == 94 && Subscript[n, 2] == 0 *)





    share|improve this answer











    $endgroup$













    • $begingroup$
      thank you! To understand this better, the Cases[] function with the specified parameter creates a list of values of n1/n2 and the Max[] function operates on this list to give the maximum?
      $endgroup$
      – gaganso
      1 hour ago






    • 1




      $begingroup$
      @gaganso Precisely so.
      $endgroup$
      – bbgodfrey
      1 hour ago
















    3












    $begingroup$

    Let the large result of Reduce be rs. Then the maximum of each quantity is determined by



    Max@Cases[rs, Equal[Subscript[n, 1], z_] -> z, Infinity]
    (* 94 *)
    Max@Cases[rs, Equal[Subscript[n, 2], z_] -> z, Infinity]
    (* 94 *)


    not 91 as speculated in the question. The corresponding terms in rs can be obtained by



    Position[rs, 94, Infinity]
    (* {{94, 2, 2}, {4559, 1, 2}} *)

    rs[[94]]
    (* Subscript[n, 1] == 0 && Subscript[n, 2] == 94 *)

    rs[[4559]]
    (* Subscript[n, 1] == 94 && Subscript[n, 2] == 0 *)





    share|improve this answer











    $endgroup$













    • $begingroup$
      thank you! To understand this better, the Cases[] function with the specified parameter creates a list of values of n1/n2 and the Max[] function operates on this list to give the maximum?
      $endgroup$
      – gaganso
      1 hour ago






    • 1




      $begingroup$
      @gaganso Precisely so.
      $endgroup$
      – bbgodfrey
      1 hour ago














    3












    3








    3





    $begingroup$

    Let the large result of Reduce be rs. Then the maximum of each quantity is determined by



    Max@Cases[rs, Equal[Subscript[n, 1], z_] -> z, Infinity]
    (* 94 *)
    Max@Cases[rs, Equal[Subscript[n, 2], z_] -> z, Infinity]
    (* 94 *)


    not 91 as speculated in the question. The corresponding terms in rs can be obtained by



    Position[rs, 94, Infinity]
    (* {{94, 2, 2}, {4559, 1, 2}} *)

    rs[[94]]
    (* Subscript[n, 1] == 0 && Subscript[n, 2] == 94 *)

    rs[[4559]]
    (* Subscript[n, 1] == 94 && Subscript[n, 2] == 0 *)





    share|improve this answer











    $endgroup$



    Let the large result of Reduce be rs. Then the maximum of each quantity is determined by



    Max@Cases[rs, Equal[Subscript[n, 1], z_] -> z, Infinity]
    (* 94 *)
    Max@Cases[rs, Equal[Subscript[n, 2], z_] -> z, Infinity]
    (* 94 *)


    not 91 as speculated in the question. The corresponding terms in rs can be obtained by



    Position[rs, 94, Infinity]
    (* {{94, 2, 2}, {4559, 1, 2}} *)

    rs[[94]]
    (* Subscript[n, 1] == 0 && Subscript[n, 2] == 94 *)

    rs[[4559]]
    (* Subscript[n, 1] == 94 && Subscript[n, 2] == 0 *)






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited 1 hour ago

























    answered 1 hour ago









    bbgodfreybbgodfrey

    44.8k958110




    44.8k958110












    • $begingroup$
      thank you! To understand this better, the Cases[] function with the specified parameter creates a list of values of n1/n2 and the Max[] function operates on this list to give the maximum?
      $endgroup$
      – gaganso
      1 hour ago






    • 1




      $begingroup$
      @gaganso Precisely so.
      $endgroup$
      – bbgodfrey
      1 hour ago


















    • $begingroup$
      thank you! To understand this better, the Cases[] function with the specified parameter creates a list of values of n1/n2 and the Max[] function operates on this list to give the maximum?
      $endgroup$
      – gaganso
      1 hour ago






    • 1




      $begingroup$
      @gaganso Precisely so.
      $endgroup$
      – bbgodfrey
      1 hour ago
















    $begingroup$
    thank you! To understand this better, the Cases[] function with the specified parameter creates a list of values of n1/n2 and the Max[] function operates on this list to give the maximum?
    $endgroup$
    – gaganso
    1 hour ago




    $begingroup$
    thank you! To understand this better, the Cases[] function with the specified parameter creates a list of values of n1/n2 and the Max[] function operates on this list to give the maximum?
    $endgroup$
    – gaganso
    1 hour ago




    1




    1




    $begingroup$
    @gaganso Precisely so.
    $endgroup$
    – bbgodfrey
    1 hour ago




    $begingroup$
    @gaganso Precisely so.
    $endgroup$
    – bbgodfrey
    1 hour ago











    3












    $begingroup$

    An alternative is to use Solve after Rationalizeing input expressions:



    driftParamSet = Rationalize[1.9 - 0.2 n2 + 
    n1 (-0.2 + (2.91434*10^-16 n1)/(1. n1 + 1.5 n2)), 10^-16]
    driftγ = 17;
    solutions = Solve[driftParamSet > -driftγ && n1 >= 0 && n2 >= 0, {n1, n2}, Integers];

    Max /@ Transpose[{n1, n2} /. solutions]



    {94, 94}




    Yet another approach is using ArgMax:



    Extract[ArgMax[{#, driftParamSet > -driftγ && n1 >= 0 && n2 >= 0}, {n1, n2}, Integers]& /@ 
    {n1, n2}, {{1, 1}, {-1, -1}}]



    {94, 94}







    share|improve this answer











    $endgroup$


















      3












      $begingroup$

      An alternative is to use Solve after Rationalizeing input expressions:



      driftParamSet = Rationalize[1.9 - 0.2 n2 + 
      n1 (-0.2 + (2.91434*10^-16 n1)/(1. n1 + 1.5 n2)), 10^-16]
      driftγ = 17;
      solutions = Solve[driftParamSet > -driftγ && n1 >= 0 && n2 >= 0, {n1, n2}, Integers];

      Max /@ Transpose[{n1, n2} /. solutions]



      {94, 94}




      Yet another approach is using ArgMax:



      Extract[ArgMax[{#, driftParamSet > -driftγ && n1 >= 0 && n2 >= 0}, {n1, n2}, Integers]& /@ 
      {n1, n2}, {{1, 1}, {-1, -1}}]



      {94, 94}







      share|improve this answer











      $endgroup$
















        3












        3








        3





        $begingroup$

        An alternative is to use Solve after Rationalizeing input expressions:



        driftParamSet = Rationalize[1.9 - 0.2 n2 + 
        n1 (-0.2 + (2.91434*10^-16 n1)/(1. n1 + 1.5 n2)), 10^-16]
        driftγ = 17;
        solutions = Solve[driftParamSet > -driftγ && n1 >= 0 && n2 >= 0, {n1, n2}, Integers];

        Max /@ Transpose[{n1, n2} /. solutions]



        {94, 94}




        Yet another approach is using ArgMax:



        Extract[ArgMax[{#, driftParamSet > -driftγ && n1 >= 0 && n2 >= 0}, {n1, n2}, Integers]& /@ 
        {n1, n2}, {{1, 1}, {-1, -1}}]



        {94, 94}







        share|improve this answer











        $endgroup$



        An alternative is to use Solve after Rationalizeing input expressions:



        driftParamSet = Rationalize[1.9 - 0.2 n2 + 
        n1 (-0.2 + (2.91434*10^-16 n1)/(1. n1 + 1.5 n2)), 10^-16]
        driftγ = 17;
        solutions = Solve[driftParamSet > -driftγ && n1 >= 0 && n2 >= 0, {n1, n2}, Integers];

        Max /@ Transpose[{n1, n2} /. solutions]



        {94, 94}




        Yet another approach is using ArgMax:



        Extract[ArgMax[{#, driftParamSet > -driftγ && n1 >= 0 && n2 >= 0}, {n1, n2}, Integers]& /@ 
        {n1, n2}, {{1, 1}, {-1, -1}}]



        {94, 94}








        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 49 mins ago

























        answered 1 hour ago









        kglrkglr

        187k10203421




        187k10203421






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Mathematica Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192764%2ffind-maximum-of-the-output-from-reduce%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            “%fieldName is a required field.”, in Magento2 REST API Call for GET Method Type The Next...

            How to change City field to a dropdown in Checkout step Magento 2Magento 2 : How to change UI field(s)...

            夢乃愛華...