<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Solving implicit nonlinear equation with one variable in SAS/IML Software and Matrix Computations</title>
    <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293801#M2964</link>
    <description>&lt;P&gt;Here is a simple alteration to your code that gives 100 solutions:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;proc iml;
    start f1(x) global(y);
    f=(2*y - 1 - x**0.5 + (1-x)**0.5);
    return(f);
    finish f1;

    num_trials = 100;
    z = j(num_trials,1,0.0);&lt;BR /&gt;    interval = {0 1};
    do ii = 1 to num_trials;
        y = rand('Uniform');
        z[ii,1] = froot('f1',interval);
    end;
    print z;
quit;&lt;/PRE&gt;</description>
    <pubDate>Wed, 24 Aug 2016 19:00:38 GMT</pubDate>
    <dc:creator>dougc</dc:creator>
    <dc:date>2016-08-24T19:00:38Z</dc:date>
    <item>
      <title>Solving implicit nonlinear equation with one variable</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293793#M2963</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm trying to solve a nonlinear implicit equation with one varible by using the FROOT function. The flowing is my code:&lt;/P&gt;&lt;P&gt;proc iml;&lt;BR /&gt;start f1(x) global(y);&lt;BR /&gt;f=(2*y - 1 - x**0.5 + (1-x)**0.5);&lt;BR /&gt;return(f);&lt;BR /&gt;finish f1;&lt;/P&gt;&lt;P&gt;y = rand('Uniform');&lt;BR /&gt;interval = {0 1};&lt;BR /&gt;z = froot('f1',interval);&lt;BR /&gt;print z;&lt;/P&gt;&lt;P&gt;I got a nice result. For each y, I got z.&lt;/P&gt;&lt;P&gt;What I'm trying to do is to generate for example a random sample of 100 random varible z by using&amp;nbsp;100 y's&amp;nbsp;&lt;SPAN&gt;of random numbers &amp;nbsp;that are uniformly distributed. In other words, can I use the do loop to&amp;nbsp;get 100 z's &amp;nbsp;using 100 y's.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If the froot function gives just one solution, what do you recommend in order to&amp;nbsp;solve&amp;nbsp;this equation 100 times with differnt 100 inputs y.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;THANK YOU!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Aug 2016 18:31:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293793#M2963</guid>
      <dc:creator>Medo_Aldeni</dc:creator>
      <dc:date>2016-08-24T18:31:40Z</dc:date>
    </item>
    <item>
      <title>Re: Solving implicit nonlinear equation with one variable</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293801#M2964</link>
      <description>&lt;P&gt;Here is a simple alteration to your code that gives 100 solutions:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;proc iml;
    start f1(x) global(y);
    f=(2*y - 1 - x**0.5 + (1-x)**0.5);
    return(f);
    finish f1;

    num_trials = 100;
    z = j(num_trials,1,0.0);&lt;BR /&gt;    interval = {0 1};
    do ii = 1 to num_trials;
        y = rand('Uniform');
        z[ii,1] = froot('f1',interval);
    end;
    print z;
quit;&lt;/PRE&gt;</description>
      <pubDate>Wed, 24 Aug 2016 19:00:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293801#M2964</guid>
      <dc:creator>dougc</dc:creator>
      <dc:date>2016-08-24T19:00:38Z</dc:date>
    </item>
    <item>
      <title>Re: Solving implicit nonlinear equation with one variable</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293805#M2965</link>
      <description>&lt;P&gt;You are asking to solve 100 different problems (rather than one&amp;nbsp;problem 100 times) because for each parameter y you get a different function that you want the root for. &amp;nbsp;Thus you need to update the y parameter before each call to FROOT:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc iml;
start f1(x) global(y);
   return 2*y - 1 - sqrt(x) + sqrt(1-x); /* use sqrt() instead of **0.5 */
finish f1;

u = j(100, 1);   /* allocate vector */
call randgen(u, 'Uniform');

z = j(100, 1);   /* store answers */
interval = {0 1};
do i = 1 to nrow(u);
   y = u[i];         /* set global "target" variable */
   z[i] = froot('f1', interval);
end;

call scatter(u, z);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Are you using the inverse CDF method to simulate&amp;nbsp;data. If so, see &lt;A href="http://blogs.sas.com/content/iml/2013/07/22/the-inverse-cdf-method.html" target="_self"&gt;this article on the inverse CDF method.&amp;nbsp;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Aug 2016 19:04:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293805#M2965</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2016-08-24T19:04:45Z</dc:date>
    </item>
    <item>
      <title>Re: Solving implicit nonlinear equation with one variable</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293877#M2966</link>
      <description>&lt;P&gt;Thank you professor. I really apreaciate your help. Yes, as you said I want to simulate data but unfortunately the inverse CDF is not in closed form.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Aug 2016 22:05:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293877#M2966</guid>
      <dc:creator>Medo_Aldeni</dc:creator>
      <dc:date>2016-08-24T22:05:25Z</dc:date>
    </item>
    <item>
      <title>Re: Solving implicit nonlinear equation with one variable</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293879#M2967</link>
      <description>&lt;P&gt;Thank you dougc. your answer is great. I appreciate your help.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Aug 2016 22:09:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Solving-implicit-nonlinear-equation-with-one-variable/m-p/293879#M2967</guid>
      <dc:creator>Medo_Aldeni</dc:creator>
      <dc:date>2016-08-24T22:09:18Z</dc:date>
    </item>
  </channel>
</rss>

