This handout uses examples from the course MCS 320: Introduction to Symbolic Computation by UIC
restart;
f := x -> exp(-x^2)*sin(Pi*x^3);
plot(f,-2..2);
plot(f(z),z=-2..2);
amp_plus := plot(exp(-x^2),x=-2..2,color=blue):
curve_plot := plot(f,-2..2):
amp_minus := plot(-exp(-x^2),x=-2..2,color=black):
with(plots);
display(amp_plus,curve_plot,amp_minus);
f := (x,k) -> exp(-x^2)*sin(k*Pi*x^3);
s := seq(plot(f(x,k),x = -2..2,numpoints=200),k=1..40):
display(s,insequence=true);
movie := animate(f(x,k),x=-2..2,k=1..40,numpoints=200):
display(movie,insequence=true);
plot([2*cos(t), 3*sin(t), t=0..2*Pi]);
implicitplot(x^3+y^3-5*x*y+1/5,x=-3..3,y=-3..3);
f := (x^2+y^2)^3 + 5.12*(x^2+y^2)^2 - 5.15*(x^4-y^4) - 14.7456*y^2;
implicitplot(f,x=-3..3,y=-3..3);
implicitplot(f,x=-11..11,y=-11..11);
implicitplot(f,x=-1.2..1.2,y=-1.2..1.2);
sf := subs({x=r*cos(t),y=r*sin(t)},f);
nsf := normal(sf/r^2);
sols := solve(nsf,r);
polarplot(sols[1],t=0..2*Pi,numpoints = 1000);
x := [-1.0,0.0,1.0,2.0,1.6,1.2,0.0,-1.6,-2.1,-2.8,-2.0,-0.9,0.0,1.0,0.0,0.0,-1.0];
y := [0.0,1.0,1.0,0.0,-1.5,-2.1,-2.8,-2.5,-2.0,-0.7,2.3,3.7,5.0,8.0,9.0,-6.0,-7.2];
s := CurveFitting[BSplineCurve](x,y,t);
plot(s,scaling=constrained,axes=none);
restart; f := (x,y) -> cos(x*y);
plot3d(f,-Pi..Pi,-Pi..Pi,axes=box);
umbf := x^2 - z*y^2;
with(plots): umbrella :=implicitplot3d(umbf,x=-2..2,y=-2..2,z=-2..2,numpoints=5000);
handle := plottools[line]([0,0,-2],[0,0,2]);
display(umbrella,handle);
f := (x,y) -> x^3 - 3*x*y^2;
plotargs := f,-1..1,-1..1,axes=box;
plot3d(plotargs);
plot3d(plotargs,orientation=[45,45]);
spin := [seq(plot3d(plotargs,orientation=[10*i,45]),i=0..36)]:
display(spin,insequence=true);
x := cos(t); y := sin(t); z := 0;
chain := []; optstube := t=0..2*Pi,radius=1/4; dx := 0;
for i from 1 to 10 do
if i mod 2 = 0
then torus := tubeplot([2*x+dx,2*y,z],optstube):
else torus := tubeplot([2*x+dx,z,2*y],optstube):
end if:
chain := [op(chain),torus]:
dx := dx + 3:
end do:
display(chain,scaling=constrained);
r := 2 + 4/5*cos(7*t); z := sin(7*t);
curve := [r*cos(4*t),r*sin(4*t),z];
tubeplot(curve,t=0..2*Pi,radius=.2,numpoints=1000);
mv := [seq(tubeplot(curve,t=0..2*Pi*i/20,radius=.2),i=1..20)]:
display(mv,insequence=true);
w := u + I*v;
exp(w);
z := evalc(exp(w));
x := Re(z);
y := Im(z);
plot3d([x,y,u],u=-4..1,v=-3*Pi..3*Pi,orientation=[-56,72],colour=v);
plot3d([x,y,v],u=-4..1,v=-3*Pi..3*Pi,orientation=[-56,72],colour=u);
restart; a := Array(1..3);
a[3] := 4;
a;
h := (i,j) -> i * j mod 13;
h(3,5);
M := Matrix(5,5,h);
M := Matrix(13,13,h);
M[11,12];
A := convert(M,Array);
A := Array(0..1,1..2,[[1,2],[3,4]]);
convert(A,listlist);
M := convert(A,Matrix);
with(LinearAlgebra);
Determinant(A);
Determinant(M);
indfun := (i,j) -> max(sin(i)*cos(j),0);
city := evalf(matrix(20,20,indfun));
with(plots): matrixplot(city,heights=histogram);
randomize():
M := Matrix(32,32,x->rand() mod 2):
sparsematrixplot(M,axes=none,scaling=constrained,symbolsize=6);
A := RandomMatrix(3,3);
whattype(A);
b := RandomMatrix(3,1);
whattype(b);
b := convert(b,Vector);
whattype(b);
X := [seq(x[i],i=1..3)];
eqs := GenerateEquations(A,X,b);
sols := solve(eqs);
AA, bb := GenerateMatrix(eqs,X);
B := RandomMatrix(3);
A+B;
MatrixAdd(A,B);
A*B;
A.B;
MatrixMatrixMultiply(A,B);
B.A;
A.b;
MatrixVectorMultiply(A,b);
<A|b>;
Determinant(A);
MatrixInverse(A).b;
sols;
P,L,U := LUDecomposition(A);
P.A;
L.U;
Determinant(A);
Determinant(U);
y := ForwardSubstitute(L,b); # solve L*y = b
sol := BackwardSubstitute(U,y); # solve U*x = y
A.sol;
b;
Eigenvalues(A);
fA := convert(A,float);
lambda := Eigenvalues(fA);
V := Eigenvectors(fA);
ev1 := Column(V[2],1);
fA.ev1;
lambda[1]*ev1;
d := DiagonalMatrix(V[1]);
A.V[2];
V[2].d;
V[2].d.MatrixInverse(V[2]);
A;
GramSchmidt(A);
v := seq(Column(A,i),i=1..ColumnDimension(A));
b := GramSchmidt({v});
Matrix(3,3,(i,j) -> DotProduct(b[i],b[j]));
ob := map(x->x/Norm(x,2),b);
Matrix(3,(i,j) -> ob[i].ob[j]);