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.
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?

Thanks in advance


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:

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])



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

Thanks very much for your fast answer. Very useful. It works.

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

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



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

1+x is lineary dependent of 1, because your scalar product is defined on R.

If you want to have something more interesting define a scalar product with an integral or by evaluating p and q at some points, like
Thanks Tonig00 and parisse; i got it figured out now.

Reference URL's