eQuate It CAS UDFs — Miscellaneous (TI-Nspire CAS) ===================================================== 1. ca(ans, vars) — Column augment to matrix form ------------------------------------------------------- Define ca(ans, vars) = Prgm Local n, i, row, mat n := dim(vars) Disp "Converting to matrix form:" mat := newMat(dim(ans), n) For i, 1, dim(ans) For j, 1, n mat[i, j] := ans[i] | vars[j] EndFor EndFor Disp mat EndPrgm 2. dsolve(eq, x, lo, hi) — Solve equation in restricted domain ------------------------------------------------------- Define dsolve(eq, x, lo, hi) = Prgm Local result result := solve(eq, x) | lo <= x and x <= hi Disp "Solutions in [", lo, ",", hi, "]:" Disp result EndPrgm 3. graphinfo — Complete graph information ------------------------------------------------------- (Maximal domain) Define graphinfo(f, x, lo, hi) = Prgm Local fp, fpp, xi, yi, stp, poi, ep fp := d(f, x) fpp := d(fp, x) xi := solve(f = 0, x) yi := f | x = 0 stp := solve(fp = 0, x) poi := solve(fpp = 0, x) Disp "x-intercepts: ", xi Disp "y-intercept: ", yi Disp "Stationary points at x = ", stp For i, 1, dim(stp) Disp " (", stp[i], ", ", f | x = stp[i], ")" EndFor Disp "POI at x = ", poi For i, 1, dim(poi) Disp " (", poi[i], ", ", f | x = poi[i], ")" EndFor If lo ≠ " " Then Disp "Endpoints:" Disp " (", lo, ", ", f | x = lo, ")" Disp " (", hi, ", ", f | x = hi, ")" EndIf EndPrgm 4. trigsolve(eq, x, lo, hi) — Exact trig equation solver ------------------------------------------------------- Define trigsolve(eq, x, lo, hi) = Prgm Local result, approx_result, exact, i result := solve(eq, x) | lo <= x and x <= hi Disp "Solutions in [", lo, ",", hi, "]:" Disp result EndPrgm 5. triginfo(f, x, lo, hi) — Trigonometric function information ------------------------------------------------------- Define triginfo(f, x, lo, hi) = Prgm Local fp, maxv, minv, amp, period, mid, xi, yi, stp, asym fp := d(f, x) Disp "Analysing trig function on [", lo, ",", hi, "]" maxv := fMax(f, x) | lo <= x <= hi minv := fMin(f, x) | lo <= x <= hi amp := (maxv - minv) / 2 mid := (maxv + minv) / 2 xi := solve(f = 0, x) | lo <= x <= hi yi := f | x = 0 stp := solve(fp = 0, x) | lo <= x <= hi Disp "Amplitude: ", amp Disp "Middle value: ", mid Disp "Max: ", maxv, " Min: ", minv Disp "x-intercepts: ", xi Disp "y-intercept: ", yi Disp "Turning points at x = ", stp Disp "Endpoints:" Disp " (", lo, ", ", f | x = lo, ")" Disp " (", hi, ", ", f | x = hi, ")" EndPrgm