## PREP 2014 Question Authoring - Archived

### problem with parserCustomization.pl

by Joel Trussell -
Number of replies: 0
I was trying to clean up previously written problems and added parserCustomization.pl to the macos (allowing both i and j as sqrt(-1) ). This appeared to work well for the problems that I was testing. However, some problems in a different HW group in the same class, failed - as noted by a student. I was not working on the problems that he was working on - indeed, the problems that he was concerned with had no complex numbers. I cannot see why it failed. I had 7 problems that all used the same load macros command - all total overkill on macros (I know I don't need all of these, but I thought I'd include them all since some may be caused the problem, since the problem was modified from one in the problem library, before I understood mor about which macros are actually needed. However, only 2 of the problems bomb. I don't understand why. When I remove the parserCustomization.pl macro, the problem compile and execute correctly.

Currently, we are running without

parserCustomization.pl in the macros folder - and living with the i in the complex equations.

Error and code below

Joel

*********************

Error messages

ERRORS from evaluating PG file:
detected error at line 123 of file [PG]/lib/PGloadfiles.pm Error detected
[TMPL]/macros/parserCustomization.pl: PG_macro_file_eval detected error at
line 123 of file [PG]/lib/PGloadfiles.pm Can't locate object method
"Default" via package "context::ComplexJ" (perhaps you forgot to load
"context::ComplexJ"?) at line 6 of [TMPL]/macros/parserCustomization.pl,
chunk 1. The calling package is PGloadfiles The calling package is
from within main::loadMacros called at line 18 of (eval 2269)

Error details

You do not have permission to view the details of this error.

Figured it would be of best interest to notify ASAP.

-Matt

***** Data about the problem processor: *****

Display Mode: MathJax
Show Hints: yes
Show Solutions: no

***** Data about the user: *****

User ID: mpfishe2@ncsu.edu
Name: Matt Fisher
Email: mpfishe2@ncsu.edu
Student ID: 200046154
Status: Enrolled ('C')
Section:
Recitation:
Comment:

***** Data about the problem: *****

Problem ID: 3
Source file: local/setHomework_7_templates/Eulers_method_2nd_order_system_03.pg
Value: 10
Max attempts 10
Random seed: 4120
Status: 0
Attempted: no
Number of correct attempts: 0
Number of incorrect attempts: 0

***** Data about the homework set: *****

Set ID: Homework_8
Open date: 10/30/2014 at 08:55am EDT
Due date: 11/14/2014 at 12:45pm EST
Answer date: 11/14/2014 at 12:45pm EST
Visible: yes
Assignment type: default
**********************************************************************************

# DESCRIPTION
# Problem from 'Mathematics: The Language of Electrical and Computer Engineering', Viniotis and Trussell, 3rd ed.
# WeBWorK problem written by Joel Trussell, <hjt@ncsu.edu>
# ENDDESCRIPTION

## DBsubject(Electrical Engineering)
## DBchapter(Differential equations)
## DBsection(Problems)
## Institution(North Carolina State University)
## Author(H. J. Trussell)
## TitleText1('Mathematics: The Language of Electrical and Computer Engineering')
## AuthorText1('Viniotis and Trussell')
## EditionText1('3')
## Problem1('7.23-24')

DOCUMENT(); # This should be the first executable line in the problem.

"PG.pl",
"PGbasicmacros.pl",
"PGchoicemacros.pl",
"PGgraphmacros.pl",
"PGmatrixmacros.pl",
"PGnumericalmacros.pl",
"PGauxiliaryFunctions.pl",
"PGcourse.pl",
"PGstandard.pl",
"MathObjects.pl",
"unionTables.pl",
"parserAssignment.pl",
"parserImplicitEquation.pl",
"unionLists.pl",
"parserPopUp.pl",
#"PGmorematrixmacros.pl"
);

TEXT(beginproblem());
$showPartialCorrectAnswers = 1; Context("ImplicitEquation"); Context()->variables->{namePattern} = qr/[a-z][a-z0-9_]*'*/i; Context()->variables->add(t=>"Real","v"=>"Real","v'"=>"Real",v1=>"Real",v2=>"Real",w=>"Real"); Context()->flags->set( tolerance => 0.001, tolType => "absolute", zeroLevel => 1E-12, # when to use zeroLevelTol zeroLevelTol => 1E-10, # smaller than this matches zero ImplicitTolerance => 1E-6, );$c1 = random(2,9,1);
$c2 = random(2,9,1);$c3 = random(2,9,1);
$c4 = random(2,9,1);$w = random(10,100,10);

$a[1] = random(2,6,1) * random(-1,1,2);$a[2] = $a[1];$a[3] = random(2,6,1) * random(-1,1,2);
$a[4] =$a[3];

$tag = random(1,4,1);$a[$tag] = -$a[$tag];$m = random(2,5,1);
$n = random(2,5,1); if ($m == $n) {$n = $n+1;}$p = random(2,9,1);
$vd = Formula("$c3 t cos(t) ");
$yd = Formula("$c4 sin($w t)^2 ");$h = 0.1;
$h2 = 2*$h;
$h3 = 3*$h;
$v0 = random(2,5,1);$vdot0 = random(0,3,1);
$y0 = random(2,5,1);$ydot0 = random(0,3,1);

$vdh =$c3*$h*cos($h);
$vdh2 =$c3*$h2*cos($h2);
$vdh3 =$c3*$h3*cos($h3);

$ydh =$c4*sin($w*$h)**2;
$ydh2 =$c4*sin($w*$h2)**2;
$ydh3 =$c4*sin($w*$h3)**2;

$vh =$v0 + $h*(-$c1)*$y0 ; # if (abs($vh)<10**(-10)) {$vh = 0};$yh = $y0 +$h*(-$c2)*$v0 ;
$vh2 =$vh + $h*(-$c1)*$yh +$h*$vdh;$yh2 = $yh +$h*(-$c2)*$vh + $h*$ydh;
$vh3 =$vh2 + $h*(-$c1)*$yh2 +$h*$vdh2;$yh3 = $yh2 +$h*(-$c2)*$vh2 + $h*$ydh2;

# det = $a[1] *$a[4] * e^(($m+$n)*t);

BEGIN_TEXT
This problem is related to Problem 7.23-24 in the text.
$PAR Given the system of differential equations$PAR
$$v' + c1 y = vd u(t)$$
$PAR $$y' + c2 v = yd u(t)$$$PAR
$BR The matrix equation for using Euler's method to compute $$v(t+h)$$ and $$y(t+h)$$, takes the same form as in the answer to Problem 9.$PAR
For $$h = h$$, compute the solution for $$t = 0, h, h2, h3$$, when the initial conditions are $$v(0) = v0$$, and $$y(0) = y0$$.
$BR $$v(0) =$$ \{ ans_rule(15)\}$BR
$$v(0.1) =$$ \{ ans_rule(15)\} $BR $$v(0.2) =$$ \{ ans_rule(15)\}$BR
$$v(0.3) =$$ \{ ans_rule(15)\} $BR $$y(0) =$$ \{ ans_rule(15)\}$BR
$$y(0.1) =$$ \{ ans_rule(15)\} $BR $$y(0.2) =$$ \{ ans_rule(15)\}$BR
$$y(0.3) =$$ \{ ans_rule(15)\} $BR END_TEXT ANS( Compute($v0)->cmp() );
ANS( Real($vh)->cmp() ); # change this later ANS( Compute($vh2)->cmp() );
ANS( Compute($vh3)->cmp() ); ANS( Compute($y0)->cmp() );
ANS( Real($yh)->cmp() ); ANS( Compute($yh2)->cmp() );
ANS( Compute(\$yh3)->cmp() );

ENDDOCUMENT(); # This should be the last executable line in the problem.