File:  [LON-CAPA] / loncom / homework / templates / extreme.problem
Revision 1.2: download - view: text, annotated - select for diffs
Mon Jun 14 11:34:20 2010 UTC (13 years, 11 months ago) by www
Branches: MAIN
CVS tags: version_2_12_X, version_2_11_X, version_2_11_4_uiuc, version_2_11_4_msu, version_2_11_4, version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, version_2_11_1, version_2_11_0_RC3, version_2_11_0_RC2, version_2_11_0_RC1, version_2_11_0, version_2_10_X, version_2_10_1, version_2_10_0_RC2, version_2_10_0_RC1, version_2_10_0, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, HEAD, BZ4492-merge, BZ4492-feature_horizontal_radioresponse, BZ4492-feature_Support_horizontal_radioresponse, BZ4492-Support_horizontal_radioresponse
Deal with pi->%pi

    1: <problem>
    2:     <parameter name="ordered" type="string_yesno" description="Show Parts One-at-a-Time" default="yes" />
    3: 
    4: <script type="loncapa/perl">
    5: $location=&random(4,10,1);
    6: $example="(x-$location)^2";
    7: if (&random(0,1,1)) {
    8:    $text='minimum';
    9:    $factor=1;
   10: } else {
   11:    $text='maximum';
   12:    $factor=-1;
   13:    $example='-'.$example;
   14: }
   15: 
   16: # Get user input, run through function that adds "*" to 3x, etc
   17: $userfunction=&implicit_multiplication(&submission(1,11));
   18: if ($userfunction) {
   19: # Determine value at extreme point
   20:    $extremevalue=&cas('maxima',"float(at($userfunction,x=$location))");
   21:    if ($extremevalue=~/^(error|incorrect)/i) {
   22: # cas could not evaluate the function
   23:       $userfunction='0';
   24:       $extremevalue=0;
   25:       $remark='Your function could not be evaluated.';
   26:    } else {
   27:       $remark='Your function is plotted.';
   28:       $example=$userfunction;
   29:    }
   30: } else {
   31:    $userfunction='0';
   32:    $extremevalue=0;
   33:    $remark='';
   34: }
   35: # Plot boundaries
   36: $minx=$location-5;
   37: $maxx=$location+5;
   38: $miny=$extremevalue-5;
   39: $maxy=$extremevalue+5;
   40: @args=($location,$factor);
   41: </script>
   42: 
   43: <part id="1">
   44: <gnuplot width="400" solid="0" plotcolor="monochrome" gridlayer="off" bmargin="default" font="9" alttag="Plot" bgcolor="xffffff" texfont="22" transparent="off" plottype="Cartesian" rmargin="default" gridtype="Cartesian" minor_ticscale="0.5" fontface="sans-serif" grid="on" align="middle" texwidth="93" height="300" border="on" samples="100" fgcolor="x000000" major_ticscale="1" tmargin="default" lmargin="default" fillstyle="empty">
   45:     <curve 
   46:          linestyle="lines"
   47:          color="x000000"
   48:          pointtype="1"
   49:          linetype="solid"
   50:          linewidth="1"
   51:          name=""
   52:          limit="closed"
   53:          pointsize="1" >
   54:         <function>$userfunction</function>
   55:         
   56:         
   57:     </curve>
   58:     <axis yzero="off" xformat="on" xmin="$minx" yformat="on" color="x000000" xmax="$maxx" xzero="off" ymax="$maxy" ymin="$miny" />
   59:     
   60: </gnuplot>
   61: 
   62: <startouttext />
   63: <p>$remark</p>
   64: Give a differentiable real function <m>$f(x)$</m> that has a $text at <m eval="on">$x=$location$</m>.<br />
   65: <m>$f(x)=$</m>
   66: <endouttext />
   67: 
   68: <mathresponse answerdisplay="$example" cas="maxima" args="@args" id="11">
   69:     <answer>y(x):=RESPONSE[1];
   70: hasextreme:is(at(diff(y(x),x,1),x=LONCAPALIST[1])=0);
   71: isrightkind:false;
   72: k:0;
   73: s:0;
   74: if hasextreme then for i:2 while s=0 and not is(diff(y(x),x,i)=0) do (s:at(diff(y(x),x,i),x=LONCAPALIST[1]),k:i);
   75: if evenp(k) and is(LONCAPALIST[2]*s>0) then isrightkind:true;
   76: hasextreme and isrightkind;</answer>
   77:     <textline readonly="no" size="50" />
   78: </mathresponse>
   79: </part>
   80: <part id="2">
   81: <script type="loncapa/perl">$previous=&maxima_cas_formula_fix($example);
   82: $value=&cas('maxima',"float(at($previous,x=$location))");</script>
   83: <startouttext />
   84: What is the value of your function at this $text?
   85: <endouttext />
   86: <numericalresponse answer="$value">
   87: <responseparam type="tolerance" default="5%" name="tol" description="Numerical Tolerance" />
   88: 
   89:     <textline readonly="no" />
   90:     
   91: </numericalresponse>
   92: </part>
   93: </problem>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>