HP Forums
Challenge: XCAS code to anothers CAS - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: Challenge: XCAS code to anothers CAS (/thread-10369.html)



Challenge: XCAS code to anothers CAS - compsystems - 03-21-2018 07:52 PM

Challenge: Port the following simple code written in XCAS on a calculator of texas instruments, casio, ..., as well as in other CAS (Mathematica, Maple, Symbolic toolbox (matlab), etc.

Terms:
You can not use text strings to form expressions, only CAS commands


The following code, shows an exercise of the solution of a system step by step
PHP Code:
testCAS():={
   
local y,x,list0,expr0,lsolx,y1,y2,sols,test1;
   
purge(x,y);
   
autosimplify(nop); autosimplify();
   
approx_mode(0); approx_mode();
   
DispGClrIOprintf("Solving a system of two equations"); printf("Solve the following system:");
   
list0 := [ x^22*]; printf(list0);
   
printf("substitute y = x² in y = 2x + 3:");
   
expr0 := subst(list0(2),list0(1)); printf(expr0);
   
printf("substract 2x + 3:");
   
expr0 := expr0-(2*3); printf(expr0);
   
printf("simplify:");
   
expr0 := simplify(expr0); printf(expr0);
   
printf("factor:"); 
   
expr0 := factor(expr0); printf(expr0);
   
printf("zero factor theorem:"); 
   
lsolx := [ part(left(expr0),1)=0part(left(expr0),2)=]; printf(lsolx);
   
printf("First factor plus 3, second minus 1:");
   
lsolx := [lsolx(1)+3lsolx(2)-]; printf(eval(lsolx,1));
   
printf("simplify"); printf("x values:");
   
lsolx := simplify(lsolx); printf(lsolx);
   
printf("y values:"); printf("Replace x values in the system, firts equation"); 
   
y1 := subst(list0(1),lsolx(1)); printf(y1);
   
printf("Replace x values in the system, second equation");
   
y2 := subst(list0(1),lsolx(2)); printf(y2);
   
printf("Solutions shaped as a array");
   
sols:=[[lsolx(1),y1],[lsolx(2),y2]]; printf(sols); 
   
printf("Checking results:"); printf("Replace x and y values in the system, firts equation"); 
   
test1 := subst(list0(1),[sols(1,1),sols(1,2)]); printf(test1);
   
printf("Evaluate:");
   
test1 := evalb(test1); printf(test1);
   
printf("Replace x and y values in the system, second equation"); 
   
test1 := subst(list0(1),[sols(2,1),sols(2,2)]); printf(test1); 
   
printf("Evaluate:");
   
test1 := evalb(test1); printf(test1);
   
sols := solve([ x^22*],[x,y]); printf("Solutions:"); printf(sols);
   
printf("Solutions shaped as a boolean expression:");
   
sols := list2exp(sols,[x,y]); printf(eval(sols,1));
   
printf("Graphing"); 
   
plot([x^2,2*x+3],x); 
   
// DispHome 
   
return("Done"); 
}:; 

output
[Image: stepByStep_XcasConsole_image00.png]

/! The hp-prime still can not be executed, because there is no control over the CAS modes from a program