(*©2012-PresentComputationalClassNotes,lossofgenerality.org,CreativeCommonsLicense*)(*https://creativecommons.org/licenses/by-nc-sa/3.0/us/:Attribution-NonCommercial-ShareAlike*)

Tutorial: Free Form Polynomials

March 2 2020

dara@lossofgenerality.com

imran@compclassnotes.com

March 2 2020

dara@lossofgenerality.com

imran@compclassnotes.com

Introduction

Free Form Polynomials allows for Free Form Input into Mathematica computational platform to perform algebraic and calculus operations on Polynomial algebra.

Example of Free Form Input:

“solve p^2-3=0 ... domain=real variable=p”

z, x,y, i are reserved variables/symbols.

The input is not case sensitive i.e.

“soLvE p^2-3=0 ... doMain=Real variable=p”

evaluates just the same.

Simple interface to get examples :

“example polynomial”

“example polynomial ... domain=integers”

Each try will automatically compute a new polynomial of desired domain.

... is merely a separator to partition the polynomial definition from its domain and other configurations, and avoid typing a new line.

Q: Why Free-Form Input?

A: While Mathematica provides a superior programming environment to compute analytical functions on any algebraic domain, it requires years of serious training to take advantage of its vast landscape of functionality. Therefore out of reach for a young student or a student who is pressed by other obligation and needs to learn for example polynomial algebra.

Moreover the very nature of the interface allows for much experimentation and search through computational structures corresponding to this algebra, thus far faster training and more natural intuition.

Example of Free Form Input:

“solve p^2-3=0 ... domain=real variable=p”

z, x,y, i are reserved variables/symbols.

The input is not case sensitive i.e.

“soLvE p^2-3=0 ... doMain=Real variable=p”

evaluates just the same.

Simple interface to get examples :

“example polynomial”

“example polynomial ... domain=integers”

Each try will automatically compute a new polynomial of desired domain.

... is merely a separator to partition the polynomial definition from its domain and other configurations, and avoid typing a new line.

Q: Why Free-Form Input?

A: While Mathematica provides a superior programming environment to compute analytical functions on any algebraic domain, it requires years of serious training to take advantage of its vast landscape of functionality. Therefore out of reach for a young student or a student who is pressed by other obligation and needs to learn for example polynomial algebra.

Moreover the very nature of the interface allows for much experimentation and search through computational structures corresponding to this algebra, thus far faster training and more natural intuition.

Cloud Libraries

Q: What are Cloud Libraries?

A: All the necessary code and mathematical structures and data are downloaded from a Cloud URL and no need for any additional installations or downloads.

Simply Shift+Return the cell (block of code), unless an error there will be not output.

These Cloud Libraries avoid any IT support from the university, thus economical.

Moreover upon frequent upgrades and bug-fixes no additional installations or IT support needed.

A: All the necessary code and mathematical structures and data are downloaded from a Cloud URL and no need for any additional installations or downloads.

Simply Shift+Return the cell (block of code), unless an error there will be not output.

These Cloud Libraries avoid any IT support from the university, thus economical.

Moreover upon frequent upgrades and bug-fixes no additional installations or IT support needed.

In[]:=

Needs["Notation`"];ClearNotations[];CloudGet["https://www.wolframcloud.com/obj/ccn/AIMATH/freeform/polynomials"];init[];Clear[init];

Operator

is an operator that acts upon a String Free Form Input which is then parsed via a pre-defined grammar that deals e.g. poles of a complex function or Cauchy Integral on a contour.

does a rather large structure of computations, not all might be useful to be displayed at the same time. So the student could select which is needed.

The grammar could easily be coded from sample English text from any analytical sciences books and could include formulas and mathematical symbols and molecules and data representations and geometries, continuous and discrete. There are no limitations.

runs and outputs nothing! The student sees nothing returned.

The ¿ operator allows the student to query the computed structures.

does a rather large structure of computations, not all might be useful to be displayed at the same time. So the student could select which is needed.

The grammar could easily be coded from sample English text from any analytical sciences books and could include formulas and mathematical symbols and molecules and data representations and geometries, continuous and discrete. There are no limitations.

runs and outputs nothing! The student sees nothing returned.

The ¿ operator allows the student to query the computed structures.

¿ Operator

¿ inverted question mark has the same semantics as a question mark i.e. asking what is the value of something computed by .

¿ can be placed before or after the inquiry String.

¿ is used and not ? since the latter is reserved and used by Mathematica itself.

¿ can be placed before or after the inquiry String.

¿ is used and not ? since the latter is reserved and used by Mathematica itself.

How to type and ¿ symbolsType \[ and a blue prompt appears as followingType \[ and select the DownQuestion as following

Some sample usage

example

Simple example interface

In[]:=

"example polynomial"

To list what possible computations are available simply type ¿

¿

Out[]=

{polynomial,variables,degree,coefficients,decompose,plot}

In[]:=

¿"polynomial"

Out[]=

4+1.2x+1.6-1.6

2

x

3

x

In[]:=

¿"degree"

Out[]=

3

In[]:=

¿"coefficients"

Out[]=

{4,1.2,1.6,-1.6}

In[]:=

¿"plot"

Out[]=

interpolate

solve

quotient, remainder, gcd

long division

factor, extensions