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, 9 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

<problem>
    <parameter name="ordered" type="string_yesno" description="Show Parts One-at-a-Time" default="yes" />

<script type="loncapa/perl">
$location=&random(4,10,1);
$example="(x-$location)^2";
if (&random(0,1,1)) {
   $text='minimum';
   $factor=1;
} else {
   $text='maximum';
   $factor=-1;
   $example='-'.$example;
}

# Get user input, run through function that adds "*" to 3x, etc
$userfunction=&implicit_multiplication(&submission(1,11));
if ($userfunction) {
# Determine value at extreme point
   $extremevalue=&cas('maxima',"float(at($userfunction,x=$location))");
   if ($extremevalue=~/^(error|incorrect)/i) {
# cas could not evaluate the function
      $userfunction='0';
      $extremevalue=0;
      $remark='Your function could not be evaluated.';
   } else {
      $remark='Your function is plotted.';
      $example=$userfunction;
   }
} else {
   $userfunction='0';
   $extremevalue=0;
   $remark='';
}
# Plot boundaries
$minx=$location-5;
$maxx=$location+5;
$miny=$extremevalue-5;
$maxy=$extremevalue+5;
@args=($location,$factor);
</script>

<part id="1">
<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">
    <curve 
         linestyle="lines"
         color="x000000"
         pointtype="1"
         linetype="solid"
         linewidth="1"
         name=""
         limit="closed"
         pointsize="1" >
        <function>$userfunction</function>
        
        
    </curve>
    <axis yzero="off" xformat="on" xmin="$minx" yformat="on" color="x000000" xmax="$maxx" xzero="off" ymax="$maxy" ymin="$miny" />
    
</gnuplot>

<startouttext />
<p>$remark</p>
Give a differentiable real function <m>$f(x)$</m> that has a $text at <m eval="on">$x=$location$</m>.<br />
<m>$f(x)=$</m>
<endouttext />

<mathresponse answerdisplay="$example" cas="maxima" args="@args" id="11">
    <answer>y(x):=RESPONSE[1];
hasextreme:is(at(diff(y(x),x,1),x=LONCAPALIST[1])=0);
isrightkind:false;
k:0;
s:0;
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);
if evenp(k) and is(LONCAPALIST[2]*s>0) then isrightkind:true;
hasextreme and isrightkind;</answer>
    <textline readonly="no" size="50" />
</mathresponse>
</part>
<part id="2">
<script type="loncapa/perl">$previous=&maxima_cas_formula_fix($example);
$value=&cas('maxima',"float(at($previous,x=$location))");</script>
<startouttext />
What is the value of your function at this $text?
<endouttext />
<numericalresponse answer="$value">
<responseparam type="tolerance" default="5%" name="tol" description="Numerical Tolerance" />

    <textline readonly="no" />
    
</numericalresponse>
</part>
</problem>

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