> with(linalg):

Warning, new definition for norm

Warning, new definition for trace

> w:=vector([2,8,4,3]);

w := vector([2, 8, 4, 3])

> w;

w

> w[3];

4

> map(sqrt,w);

vector([sqrt(2), 2*sqrt(2), 2, sqrt(3)])

> matadd(w,w);

vector([4, 16, 8, 6])

> v:=scalarmul(w,5);

v := vector([10, 40, 20, 15])

> u:=vector([5,4,3,-3]);

u := vector([5, 4, 3, -3])

> matadd(u,w);

vector([7, 12, 7, 0])

> matadd(u,v,w);

vector([15, 44, 23, 12])

> matadd(u,u,u);

vector([10, 8, 6, -6])

> matadd(u,v);

vector([15, 44, 23, 12])

> evalm(v);

> evalm(u);

vector([10, 40, 20, 15])

vector([5, 4, 3, -3])

> norm(u,2);

sqrt(59)

> 3*u;

3*u

> evalm(3*u);

vector([15, 12, 9, -9])

> u/norm(u,2);

1/59*u*sqrt(59)

> evalm(u/norm(u,2));

vector([5/59*sqrt(59), 4/59*sqrt(59), 3/59*sqrt(59)...

> evalf(u/norm(u,2));

.1301889110*u

> evalf(evalm(u/norm(u,2)));

vector([.6509445549, .5207556439, .3905667330, -.39...

> x:=scalarmul(v,dotprod(u,v)/dotprod(v,v));

x := vector([30/31, 120/31, 60/31, 45/31])

> y:=u-x;

y := u-x

> x+y;

u

> dotprod(x,y);

0

> a:=vector(3);

a := array(1 .. 3,[])

> b:=vector(3): c:=vector(3):

> f:=crossprod(a+b,c);

f := vector([(a[2]+b[2])*c[3]-(a[3]+b[3])*c[2], (a[...

> g:=crossprod(a,c)+crossprod(b,c);

g := vector([a[2]*c[3]-a[3]*c[2], a[3]*c[1]-a[1]*c[...

> map(simplify,evalm(f-g));

vector([0, 0, 0])

> map(simplify,f-g);

>

vector([a[2]*c[3]+b[2]*c[3]-a[3]*c[2]-b[3]*c[2], a[...
vector([a[2]*c[3]+b[2]*c[3]-a[3]*c[2]-b[3]*c[2], a[...

>