# HP Forums

Full Version: Gramschmidt and scalar product
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello
The explanation of this function says:
" Given a basis of a vector subspace, and a function that defines a scalar product, returns an orthonormal basis for that function".

I do not know how to it, I will put an example:
Scalar product defined by: <(x1,x2),(y1,y2)> = x1y1-x1y2-x2y1+2x2y2
Given a basis such as: B={(1,2), (3,4)}

How can I use the function to get an orthonormal basis?
If I put
gramschmidt([[1 2][3 4]],(a,b,c,d)->(a*b-a*d-b*c+2*b*d))

Gives me an error "Bad Argument Value"

Is there a way to do this?

Toni

[/i]
A scalar product takes 2 arguments (the vectors), not four (the coordinates).
I recommend to define the scalar product separately. With indices starting at 0:
Code:
``` sp(v,w):=v[0]*w[0]-v[1]*w[0]-w[1]*v[0]+2*v[1]*w[1]; B:=gramschmidt([[1,2],[3, 4]],sp)```
You can check with sp(B[0],B[0]); sp(B[0],B[1]); sp(B[1],B[1])
gramschmidt([1,1+x],(p,q)->2*p*q)

returns:

[1/sqrt(2),±∞*(-x-1+x+1)/sqrt(2)]

am i doing something wrong? Why is there a ±∞ in there?

Regarding the p*q, I would say that the "x" is not defined so there you have ±inf. I suppose.
You may do the definition before as Parise did with "sp:= …"

Thanks again

Toni
(05-08-2021 12:31 PM)roadrunner Wrote: [ -> ]gramschmidt([1,1+x],(p,q)->2*p*q)

returns:

[1/sqrt(2),±∞*(-x-1+x+1)/sqrt(2)]

am i doing something wrong? Why is there a ±∞ in there?