The Gramm-Schmidt Process
Worksheet by Joyce Quella -Winona State University (jquella@winona.edu)
Gill Tepper -Howard University (tgill@howard.edu)
Marius Buliga -Univ. of Pittsburgh-Bradford (buliga@pitt.edu)
restart: with(LinearAlgebra): with(plots): with(plottools):
Warning, the name changecoords has been redefined
Warning, the assigned name arrow now has a global binding
Gramm-Schmidt Process for Sets of Vectors in R2 and R3 :
We start with a nonorthogonal basis in R 2 :
u1 := <1, 1>; u2 := <1, 3>;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USN1MUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiUtRl9vNjNRIltGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZfci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUknbXRhYmxlR0YlNiQtSSRtdHJHRiU2Iy1JJG10ZEdGJTYjLUkjbW5HRiU2OUZncEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvRmdyLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSN1MUdGKC1JJ1JUQUJMRUdGKDYlIihPV08jLUknTUFUUklYR0YoNiM3JDcjIiIiRmp0JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRlx1NiMvSSQlaWRHRihGZXQ=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USN1MkYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiUtRl9vNjNRIltGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZfci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUknbXRhYmxlR0YlNiQtSSRtdHJHRiU2Iy1JJG10ZEdGJTYjLUkjbW5HRiU2OUZncEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvLUZocjYjLUZbczYjLUZeczY5USIzRihGMEYzRjZGYHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmFzRlxvLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSN1MkdGKC1JJ1JUQUJMRUdGKDYlIihraGUjLUknTUFUUklYR0YoNiM3JDcjIiIiNyMiIiQmSSdWZWN0b3JHNiQlKnByb3RlY3RlZEdGKjYjSSdjb2x1bW5HRig3Iy1GZXU2Iy9JJCVpZEdGKEZcdQ==
We apply the Gramm-Schmidt Process to orthogonalize this base:
ogu1:=u1;
ogu2:=u2-DotProduct(u2,ogu1)/
DotProduct(ogu1,ogu1)*ogu1;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvZ3UxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JC1JJG10ckdGJTYjLUkkbXRkR0YlNiMtSSNtbkdGJTY5RmdwRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG9GZ3ItRl9vNjNRIl1GKC9GY29RKHBvc3RmaXhGKEZdckZnb0Zeci9GXXBRMnZlcnl0aGlubWF0aHNwYWNlRihGYXJGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JJW9ndTFHRigtSSdSVEFCTEVHRig2JSIoT1dPIy1JJ01BVFJJWEdGKDYjNyQ3IyIiIkZqdCZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKDcjLUZcdTYjL0kkJWlkR0YoRmV0
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvZ3UyRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JC1JJG10ckdGJTYjLUkkbXRkR0YlNiMtSSNtbkdGJTY5USkmbWludXM7MUYoRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tRmhyNiMtRltzNiMtRl5zNjlGZ3BGMEYzRjZGYXNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmJzRlxvLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSVvZ3UyR0YoLUknUlRBQkxFR0YoNiUiKFNeLCQtSSdNQVRSSVhHRig2IzckNyMhIiI3IyIiIiZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKDcjLUZldTYjL0kkJWlkR0YoRlx1
It is easy to check that the two new vectors are orthogonal by computing their dot product:
DotProduct(ogu1,ogu2);
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIwRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiE=
If we want to orthonormalize them, we have to divide each of them by their norm:
onu1:=1/Norm(ogu1,2)*ogu1;
onu2:=1/Norm(ogu2,2)*ogu2;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvbnUxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JC1JJG10ckdGJTYjLUkkbXRkR0YlNiMtRiQ2JS1JJm1mcmFjR0YlNiotSSNtbkdGJTY5RmdwRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tRmNzNjlRIjJGKEYwRjNGNkZlc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZnNGXG8vJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRmB0LyUpYmV2ZWxsZWRHRjhGYnFGZHEtRl9vNjNRMSZJbnZpc2libGVUaW1lcztGKEZib0Zlb0Znby9Gam9RJDBlbUYoL0ZdcEZpdEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUkmbXNxcnRHRiU2JUZoc0ZicUZkcUZnci1GX282M1EiXUYoL0Zjb1EocG9zdGZpeEYoRl1yRmdvRl5yL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZhckZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkklb251MUdGKC1JJ1JUQUJMRUdGKDYlIigrN04lLUknTUFUUklYR0YoNiM3JDcjLCQqJiMiIiIiIiNGW3cpRlx3Rmp2Rlt3Rlt3Rmd2JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRl53NiMvSSQlaWRHRihGYnY=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvbnUyRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JC1JJG10ckdGJTYjLUkkbXRkR0YlNiMtRiQ2JC1GX282M1EqJnVtaW51czA7RihGW3JGZW9GZ28vRmpvUSQwZW1GKC9GXXBGY3NGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1JJm1mcmFjR0YlNiotSSNtbkdGJTY5RmdwRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tRlt0NjlRIjJGKEYwRjNGNkZddEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GXnRGXG8vJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRmh0LyUpYmV2ZWxsZWRHRjhGYnFGZHEtRl9vNjNRMSZJbnZpc2libGVUaW1lcztGKEZib0Zlb0Znb0Zic0Zkc0ZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUkmbXNxcnRHRiU2JUZgdEZicUZkcS1GaHI2Iy1GW3M2I0Zlcy1GX282M1EiXUYoL0Zjb1EocG9zdGZpeEYoRl1yRmdvRl5yL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZhckZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkklb251MkdGKC1JJ1JUQUJMRUdGKDYlIihTN04lLUknTUFUUklYR0YoNiM3JDcjLCQqJiMiIiIiIiNGZHcpRmV3RmN3RmR3ISIiNyMsJEZid0ZkdyZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKDcjLUZqdzYjL0kkJWlkR0YoRlt3
We'll plot the initial set of vectors {u1,u2} and the orthonormal set {onu1,onu2}.
plu1 := plots[arrow](u1, shape=arrow,color=green,thickness=2):
plu2 := plots[arrow](u2, shape=arrow,color=green,thickness=2):
plonu1 := plots[arrow](onu1, shape=arrow,color=red,thickness=5):
plonu2 := plots[arrow](onu2, shape=arrow,color=red,thickness=5):
display(plu1,plu2,plonu1,plonu2, scaling=CONSTRAINED, axes=FRAMED);
NigtSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2JzckNyQkIiIhRi1GLDckJCIiIkYtRi83JTckJCIrKysrK3YhIzUkIisrKysrJilGNUYuNyRGNkYzLUkmU1RZTEVHRiU2I0ksUEFUQ0hOT0dSSURHRiUtSSdDT0xPVVJHRiU2JkkkUkdCR0YlRiwkIiorKysrIiEiKUYsLUkqVEhJQ0tORVNTR0YlNiMiIiMtRiQ2JzckRis3JEYvJCIiJEYtNyU3JCQiKysrKytsRjUkIisrKytdQyEiKkZLNyQkIisrKysrJipGNSQiKysrK11CRlRGOUY9RkQtRiQ2JzckRis3JCQiKzV5MXJxRjVGaG43JTckJCIrZTNJLmBGNSQiK1F3UzVnRjVGZ243JEZeb0Zcb0Y5LUY+NiZGQEZBRixGLC1GRTYjIiImLUYkNic3JEYrNyQkISs1eTFycUY1RmhuNyU3JCQhK1F3UzVnRjVGXG9GaW83JCQhK2UzSS5gRjVGXm9GOUZhb0Zjby1JKkFYRVNTVFlMRUdGJTYjSSZGUkFNRUdGJS1JKFNDQUxJTkdHRig2I0ksQ09OU1RSQUlORURHRiU=
Note that onu1 is collinear with u1.
Note that Maple has also the command GramSchmidt:
GramSchmidt([u1,u2]);
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2JS1GJDYlRiwtRiQ2Iy1JJ210YWJsZUdGJTYkLUkkbXRyR0YlNiMtSSRtdGRHRiU2Iy1JI21uR0YlNjlGRy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGUy8lJWJvbGRHRjgvJSdpdGFsaWNHRjgvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHRlYvJStiYWNrZ3JvdW5kR0ZZLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y1LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHRlAvJSptYXRoY29sb3JHRlYvJS9tYXRoYmFja2dyb3VuZEdGWS8lK2ZvbnRmYW1pbHlHRmhvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0ZTRl1vLUYtNjNRIl1GKC9GMVEocG9zdGZpeEYoRjNGNkY5L0Y9UTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRj5GQEZCRkVGSEZKRkxGTkZRRlRGVy1GLTYzUSIsRigvRjFRJmluZml4RigvRjRGOC9GN0Y1L0Y6USQwZW1GKC9GPVEzdmVyeXRoaWNrbWF0aHNwYWNlRigvRj9GOEZARkJGRUZIRkpGTEZORlFGVEZXLUYkNiVGLC1GJDYjLUZbbzYkLUZebzYjLUZhbzYjLUZkbzY5USkmbWludXM7MUYoRmZvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmJyRl1vRmRyRmRyNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM3JC1JJ1JUQUJMRUdGKDYlIignXF5eLUknTUFUUklYR0YoNiM3JDcjIiIiRmN1JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoLUZcdTYlIihjTT4mLUZgdTYjNyQ3IyEiIkZjdUZldTcjNyQtRmV1NiMvSSQlaWRHRihGXnUtRmV1NiMvRmh2Rl12
GramSchmidt([u1,u2],normalized);
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2JS1GJDYlRiwtRiQ2Iy1JJ210YWJsZUdGJTYkLUkkbXRyR0YlNiMtSSRtdGRHRiU2Iy1GJDYlLUkmbWZyYWNHRiU2Ki1JI21uR0YlNjlGRy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGUy8lJWJvbGRHRjgvJSdpdGFsaWNHRjgvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHRlYvJStiYWNrZ3JvdW5kR0ZZLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y1LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHRlAvJSptYXRoY29sb3JHRlYvJS9tYXRoYmFja2dyb3VuZEdGWS8lK2ZvbnRmYW1pbHlHRl1wLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0ZTLUZpbzY5USIyRihGW3BGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGXnJGYHJGYnJGZHJGZ3IvJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRmFzLyUpYmV2ZWxsZWRHRjhGVEZXLUYtNjNRMSZJbnZpc2libGVUaW1lcztGKC9GMVEmaW5maXhGKC9GNEY4RjYvRjpRJDBlbUYoL0Y9Rl10L0Y/RjhGQEZCRkVGSEZKRkxGTkZRRlRGVy1GJDYjLUkmbXNxcnRHRiU2JUZpckZURldGXW8tRi02M1EiXUYoL0YxUShwb3N0Zml4RihGM0Y2RjkvRj1RMnZlcnl0aGlubWF0aHNwYWNlRihGPkZARkJGRUZIRkpGTEZORlFGVEZXLUYtNjNRIixGKEZpc0ZbdC9GN0Y1Rlx0L0Y9UTN2ZXJ5dGhpY2ttYXRoc3BhY2VGKEZfdEZARkJGRUZIRkpGTEZORlFGVEZXLUYkNiVGLC1GJDYjLUZbbzYkLUZebzYjLUZhbzYjLUYkNiQtRi02M1EqJnVtaW51czA7RihGMEZbdEY2Rlx0Rl50Rl90RkBGQkZFRkhGSkZMRk5GUUZURldGY29GXW9GZXRGZXQ3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3IzckLUknUlRBQkxFR0YoNiUiKC9uTSctSSdNQVRSSVhHRig2IzckNyMsJComIyIiIiIiI0ZkdylGZXdGY3dGZHdGZHdGYHcmSSdWZWN0b3JHNiQlKnByb3RlY3RlZEdGKjYjSSdjb2x1bW5HRigtRml2NiUiKGs6USctRl13NiM3JDcjLCRGYnchIiJGYHdGZ3c3IzckLUZndzYjL0kkJWlkR0YoRlt3LUZndzYjL0ZbeUZfeA==
We try next an example in R 3 . We take an arbitrary base:
v1 := <1, 1,1>; v2 := <-1, 3,2>; v3 := <-1, 0,5>;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USN2MUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiUtRl9vNjNRIltGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZfci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUknbXRhYmxlR0YlNiUtSSRtdHJHRiU2Iy1JJG10ZEdGJTYjLUkjbW5HRiU2OUZncEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvRmdyRmdyLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSN2MUdGKC1JJ1JUQUJMRUdGKDYlIihHd3MjLUknTUFUUklYR0YoNiM3JTcjIiIiRmp0Rmp0JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRlx1NiMvSSQlaWRHRihGZXQ=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USN2MkYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiUtRl9vNjNRIltGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZfci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUknbXRhYmxlR0YlNiUtSSRtdHJHRiU2Iy1JJG10ZEdGJTYjLUkjbW5HRiU2OVEpJm1pbnVzOzFGKEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvLUZocjYjLUZbczYjLUZeczY5USIzRihGMEYzRjZGYXNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmJzRlxvLUZocjYjLUZbczYjLUZeczY5USIyRihGMEYzRjZGYXNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmJzRlxvLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSN2MkdGKC1JJ1JUQUJMRUdGKDYlIigvc1onLUknTUFUUklYR0YoNiM3JTcjISIiNyMiIiQ3IyIiIyZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKDcjLUZfdjYjL0kkJWlkR0YoRmR1
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USN2M0YoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR1EldHJ1ZUYoLyUqdW5kZXJsaW5lR0Y4LyUqc3Vic2NyaXB0R0Y4LyUsc3VwZXJzY3JpcHRHRjgvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y7LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRC8lL21hdGhiYWNrZ3JvdW5kR0ZHLyUrZm9udGZhbWlseUdGMi8lLG1hdGh2YXJpYW50R1EnaXRhbGljRigvJSltYXRoc2l6ZUdGNS1JI21vR0YlNjNRIzo9RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y4LyUqc2VwYXJhdG9yR0Y4LyUnbHNwYWNlR1EvdGhpY2ttYXRoc3BhY2VGKC8lJ3JzcGFjZUdGW3AvJSlzdHJldGNoeUdGOC8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR0ZYLyUlc2l6ZUdGNS8lK2ZvcmVncm91bmRHRkQvJStiYWNrZ3JvdW5kR0ZHLUYkNiUtRl9vNjNRIltGKC9GY29RJ3ByZWZpeEYoL0Zmb0Y7RmdvL0Zqb1EudGhpbm1hdGhzcGFjZUYoL0ZdcEZfci9GX3BGO0ZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUknbXRhYmxlR0YlNiUtSSRtdHJHRiU2Iy1JJG10ZEdGJTYjLUkjbW5HRiU2OVEpJm1pbnVzOzFGKEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvLUZocjYjLUZbczYjLUZeczY5USIwRihGMEYzRjZGYXNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmJzRlxvLUZocjYjLUZbczYjLUZeczY5USI1RihGMEYzRjZGYXNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmJzRlxvLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSN2M0dGKC1JJ1JUQUJMRUdGKDYlIighWzxrLUknTUFUUklYR0YoNiM3JTcjISIiNyMiIiE3IyIiJiZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKDcjLUZfdjYjL0kkJWlkR0YoRmR1
We apply the Gramm-Schmidt Process to orthogonalize this base:
ogv1:=v1;
ogv2:=v2-DotProduct(v2,ogv1)/
DotProduct(ogv1,ogv1)*ogv1;
ogv3:=v3-DotProduct(v3,ogv1)/
DotProduct(ogv1,ogv1)*ogv1
-DotProduct(v3,ogv2)/
DotProduct(ogv2,ogv2)*ogv2;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvZ3YxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYjLUkkbXRkR0YlNiMtSSNtbkdGJTY5RmdwRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG9GZ3JGZ3ItRl9vNjNRIl1GKC9GY29RKHBvc3RmaXhGKEZdckZnb0Zeci9GXXBRMnZlcnl0aGlubWF0aHNwYWNlRihGYXJGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHE3Iy1fRilJLG1wcmludHNsYXNoR0YoNiQ3Iz5JJW9ndjFHRigtSSdSVEFCTEVHRig2JSIoR3dzIy1JJ01BVFJJWEdGKDYjNyU3IyIiIkZqdEZqdCZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKDcjLUZcdTYjL0kkJWlkR0YoRmV0
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvZ3YyRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYjLUkkbXRkR0YlNiMtSSZtZnJhY0dGJTYqLUkjbW5HRiU2OVEpJm1pbnVzOzdGKEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvLUZhczY5USIzRihGMEYzRjZGZHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmVzRlxvLyUubGluZXRoaWNrbmVzc0dRIjFGKC8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGKC8lKW51bWFsaWduR0ZfdC8lKWJldmVsbGVkR0Y4RmJxRmRxLUZocjYjLUZbczYjLUZeczYqLUZhczY5USI1RihGMEYzRjZGZHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmVzRlxvRmdzRmpzRl10RmB0RmJ0RmJxRmRxLUZocjYjLUZbczYjLUZeczYqLUZhczY5USIyRihGMEYzRjZGZHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmVzRlxvRmdzRmpzRl10RmB0RmJ0RmJxRmRxLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSVvZ3YyR0YoLUknUlRBQkxFR0YoNiUiKClRLUQtSSdNQVRSSVhHRig2IzclNyMjISIoIiIkNyMjIiImRmB3NyMjIiIjRmB3JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRmd3NiMvSSQlaWRHRihGaHY=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvZ3YzRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYjLUkkbXRkR0YlNiMtSSZtZnJhY0dGJTYqLUkjbW5HRiU2OVEqJm1pbnVzOzIxRihGMEYzRjYvRjpGOEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ24vRmpuUSdub3JtYWxGKEZcby1GYXM2OVEjMjZGKEYwRjNGNkZkc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZXNGXG8vJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRl90LyUpYmV2ZWxsZWRHRjhGYnFGZHEtRmhyNiMtRltzNiMtRl5zNiotRmFzNjlRKiZtaW51czs2M0YoRjBGM0Y2RmRzRjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZlc0Zcb0Znc0Zqc0ZddEZgdEZidEZicUZkcS1GaHI2Iy1GW3M2Iy1GXnM2Ki1GYXM2OVEjNDJGKEYwRjNGNkZkc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZXNGXG8tRmFzNjlRIzEzRihGMEYzRjZGZHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmVzRlxvRmpzRl10RmB0RmJ0RmJxRmRxLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSVvZ3YzR0YoLUknUlRBQkxFR0YoNiUiKDdMKm8tSSdNQVRSSVhHRig2IzclNyMjISNAIiNFNyMjISNqRmN3NyMjIiNVIiM4JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRlt4NiMvSSQlaWRHRihGW3c=
We check that the three new vectors are orthogonal by computing their dot product:
DotProduct(ogv1,ogv2);
DotProduct(ogv1,ogv3);
DotProduct(ogv2,ogv3);
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIwRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiE=
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIwRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiE=
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIwRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiE=
We orthonormalize them:
onv1:=1/Norm(ogv1,2)*ogv1;
onv2:=1/Norm(ogv2,2)*ogv2;
onv3:=1/Norm(ogv3,2)*ogv3;
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvbnYxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYjLUkkbXRkR0YlNiMtRiQ2JS1JJm1mcmFjR0YlNiotSSNtbkdGJTY5RmdwRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tRmNzNjlRIjNGKEYwRjNGNkZlc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZnNGXG8vJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRmB0LyUpYmV2ZWxsZWRHRjhGYnFGZHEtRl9vNjNRMSZJbnZpc2libGVUaW1lcztGKEZib0Zlb0Znby9Gam9RJDBlbUYoL0ZdcEZpdEZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUkmbXNxcnRHRiU2JUZoc0ZicUZkcUZnckZnci1GX282M1EiXUYoL0Zjb1EocG9zdGZpeEYoRl1yRmdvRl5yL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZhckZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkklb252MUdGKC1JJ1JUQUJMRUdGKDYlIiglbyIqcC1JJ01BVFJJWEdGKDYjNyU3IywkKiYjIiIiIiIkRlt3KUZcdyNGW3ciIiNGW3dGW3dGZ3ZGZ3YmSSdWZWN0b3JHNiQlKnByb3RlY3RlZEdGKjYjSSdjb2x1bW5HRig3Iy1GYHc2Iy9JJCVpZEdGKEZidg==
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvbnYyRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYjLUkkbXRkR0YlNiMtRiQ2JC1GX282M1EqJnVtaW51czA7RihGW3JGZW9GZ28vRmpvUSQwZW1GKC9GXXBGY3NGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1JJm1mcmFjR0YlNiotSSNtbkdGJTY5USI3RihGMEYzRjYvRjpGOEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ24vRmpuUSdub3JtYWxGKEZcby1GW3Q2OVEjNzhGKEYwRjNGNkZedEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GX3RGXG8vJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRml0LyUpYmV2ZWxsZWRHRjhGYnFGZHEtRl9vNjNRMSZJbnZpc2libGVUaW1lcztGKEZib0Zlb0Znb0Zic0Zkc0ZecEZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcS1GJDYjLUkmbXNxcnRHRiU2JUZhdEZicUZkcS1GaHI2Iy1GW3M2Iy1GJDYlLUZoczYqLUZbdDY5USI1RihGMEYzRjZGXnRGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRl90RlxvRmF0RmR0Rmd0Rmp0Rlx1RmJxRmRxRl51RmF1LUZocjYjLUZbczYjLUYkNiUtRmhzNiotRlt0NjlGZ3BGMEYzRjZGXnRGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRl90RlxvLUZbdDY5USMzOUYoRjBGM0Y2Rl50RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbkZfdEZcb0ZkdEZndEZqdEZcdUZicUZkcUZedUZhdS1GX282M1EiXUYoL0Zjb1EocG9zdGZpeEYoRl1yRmdvRl5yL0ZdcFEydmVyeXRoaW5tYXRoc3BhY2VGKEZhckZgcEZicEZlcEZocEZqcEZccUZecUZgcUZicUZkcTcjLV9GKUksbXByaW50c2xhc2hHRig2JDcjPkklb252MkdGKC1JJ1JUQUJMRUdGKDYlIigpPWFxLUknTUFUUklYR0YoNiM3JTcjLCQqJiMiIigiI3kiIiIpRmp4I0ZbeSIiI0ZbeSEiIjcjLCQqJiMiIiZGanhGW3lGXHlGW3lGW3k3IywkKiYjRlt5IiNSRlt5Rlx5Rlt5Rlt5JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoNyMtRmp5NiMvSSQlaWRHRihGYHg=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USVvbnYzRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiMtSSdtdGFibGVHRiU2JS1JJG10ckdGJTYjLUkkbXRkR0YlNiMtRiQ2JC1GX282M1EqJnVtaW51czA7RihGW3JGZW9GZ28vRmpvUSQwZW1GKC9GXXBGY3NGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2JS1JJm1mcmFjR0YlNiotSSNtbkdGJTY5RmdwRjBGM0Y2L0Y6RjhGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduL0ZqblEnbm9ybWFsRihGXG8tRlt0NjlRIzI2RihGMEYzRjZGXXRGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRl50RlxvLyUubGluZXRoaWNrbmVzc0dRIjFGKC8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGKC8lKW51bWFsaWduR0ZodC8lKWJldmVsbGVkR0Y4RmJxRmRxLUZfbzYzUTEmSW52aXNpYmxlVGltZXM7RihGYm9GZW9GZ29GYnNGZHNGXnBGYHBGYnBGZXBGaHBGanBGXHFGXnFGYHFGYnFGZHEtRiQ2Iy1JJm1zcXJ0R0YlNiVGYHRGYnFGZHEtRmhyNiMtRltzNiMtRiQ2JEZfcy1GJDYlLUZoczYqLUZbdDY5USIzRihGMEYzRjZGXXRGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRl50RlxvRmB0RmN0RmZ0Rml0Rlt1RmJxRmRxRl11RmB1LUZocjYjLUZbczYjLUYkNiUtRmhzNiotRlt0NjlRIjJGKEYwRjNGNkZddEY8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GXnRGXG8tRlt0NjlRIzEzRihGMEYzRjZGXXRGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRl50RlxvRmN0RmZ0Rml0Rlt1RmJxRmRxRl11RmB1LUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSVvbnYzR0YoLUknUlRBQkxFR0YoNiUiKG9iSiUtSSdNQVRSSVhHRig2IzclNyMsJComIyIiIiIjRUZbeSlGXHkjRlt5IiIjRlt5ISIiNyMsJComIyIiJEZceUZbeUZdeUZbeUZgeTcjLCQqJiNGX3kiIzhGW3lGXXlGW3lGW3kmSSdWZWN0b3JHNiQlKnByb3RlY3RlZEdGKjYjSSdjb2x1bW5HRig3Iy1GW3o2Iy9JJCVpZEdGKEZieA==
plv1 := plots[arrow](v1, shape=arrow,color=green,thickness=2):
plv2 := plots[arrow](v2, shape=arrow,color=green,thickness=2):
plv3 := plots[arrow](v3, shape=arrow,color=green,thickness=2):
plonv1 := plots[arrow](onv1, shape=arrow,color=red,thickness=5):
plonv2 := plots[arrow](onv2, shape=arrow,color=red,thickness=5):
plonv3 := plots[arrow](onv3, shape=arrow,color=red,thickness=5):
display(plv1,plv2,plv3,plonv1,plonv2,plonv3, scaling=CONSTRAINED, axes=normal);
NistJSpBWEVTU1RZTEVHNiMlJ05PUk1BTEctJSdDVVJWRVNHNic3JDclJCIiIUYtRixGLDclJCIrKioqKioqKioqKiEjNUYvRi83JTclJCIrMW1XWXdGMUY0JCIreW41MigpRjFGLjclJCIrKVFgTk4pRjFGOSQiKztLKkdIKEYxLSUmU1RZTEVHNiMlLFBBVENITk9HUklERy0lKlRISUNLTkVTU0c2IyIiIy0lJkNPTE9SRzYmJSRSR0JHJEYtISIiJCIjNUZKRkktRig2JzckRis3JSQhKysrKys1ISIqJCIrKysrK0lGUyQiKysrKys/RlM3JTclJCErTkF4JG8oRjEkIitxOzgwQkZTJCIrJClRNmU8RlNGUDclJCErbnhBOyQpRjEkIitJJG9bXCNGUyQiKzxoKT1XIkZTRj1GQUZFLUYoNic3JEYrNyUkISsqKioqKioqKioqRjFGLCQiKysrKytdRlM3JTclJCErKioqKioqKlwmRjFGLCQiKysrK11TRlNGZG83JSQhKysrK101RlNGLCQiKysrK11SRlNGPUZBRkUtRig2JzckRis3JSQiKyRwLU54JkYxRmhwRmhwNyU3JSQiKzQheVlUJUYxRlxxJCIrVi8wRl1GMUZncDclJCIrKUhFSCNbRjFGYXEkIitrUWI1VUYxRj0tRkI2IyIiJi1GRjYmRkhGS0ZJRkktRig2JzckRis3JSQhK1EjUmYjekYxJCIrcV5RaGNGMSQiK29TYmtBRjE3JTclJCErPVVoW2lGMSQiK3JlSGpXRjEkIitAU2wpSCNGMUZdcjclJCEraiYpKUdWJ0YxJCIrLS8jXGYlRjEkIisoW0tZSyJGMUY9RmVxRmhxLUYoNic3JEYrNyUkISteODtoPkYxJCErYlNbJCllRjEkIisvYWtXeUYxNyU3JSQhK1pWKltXIkYxJCErU0lvTVZGMSQiK2VKIWVlJ0YxRmZzNyUkISs7USdIcCJGMSQhK1o5Kil5XUYxJCIrJVtIYydmRjFGPUZlcUZocS0lLE9SSUVOVEFUSU9ORzYkJEZMRi0kIiNYRi0tJShTQ0FMSU5HRzYjJSxDT05TVFJBSU5FREc=
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGOi8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSkyRH5JbnB1dEYnLyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0LUYjNi0tRiw2OUYuRi9GMkY1RjhGO0Y9Rj9GQUZERkcvRkpGN0ZLRk1GT0ZRRlNGVUZYRlpGZm5GaG5GW28tSSdtc3BhY2VHRiQ2Ji8lJ2hlaWdodEdRJzAuMH5leEYnLyUmd2lkdGhHUScwLjV+ZW1GJy8lJmRlcHRoR0Znby8lKmxpbmVicmVha0dRJWF1dG9GJ0Zfb0Zib0Zfb0Zib0Zfb0Zib0Zfb0Zib0YrRl9vLUYjNi9GX29GYm9GX29GYm9GX29GYm9GX29GYm9GX29GYm9GX29GYm9GX29GKw==
Exercises:
1) Let {(-1,1,0,0),(1,-1,1,0),(0,0,1,2)} be a basis for a certain subspace of R4 . Use the Gramm-Schmidt Process to find an orthonormal basis for this subspace.
Demo: Gramm-Schmidt Process
We will try to write in this section a procedure that implements the Gramm-Schmidt Process for an arbitrary list of vectors from an Euclidean space. We'll use the program to check the work that we did for the first part.
myGrammSchmidt := proc(basis::list,opt::string)
local i,j,length,temp,ogbasis,onbasis,answer:
length:=nops(basis):
ogbasis:=[basis[1]]:
for i from 2 to length do
temp := basis[i];
for j from 1 to i-1 do
temp:=temp-
DotProduct(basis[i],ogbasis[j])/
DotProduct(ogbasis[j],ogbasis[j])*
ogbasis[j]:
od:
ogbasis:=[op(ogbasis),temp]:
od:
onbasis:=[]:
for i from 1 to length do
temp:=1/Norm(ogbasis[i],2)*ogbasis[i]:
onbasis:=[op(onbasis),temp]:
od:
if opt="orthogonal" then
answer:=ogbasis;
fi:
if opt="normal" then
answer:=onbasis;
fi:
answer;
end proc:
We check the procedure for the basis in R3 from part 1:
l:=[v1,v2,v3];
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtaUdGJTY5USJsRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjgvJStleGVjdXRhYmxlR0Y4LyUpcmVhZG9ubHlHRjsvJSljb21wb3NlZEdGOC8lKmNvbnZlcnRlZEdGOC8lK2ltc2VsZWN0ZWRHRjgvJSxwbGFjZWhvbGRlckdGOC8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZELyUvbWF0aGJhY2tncm91bmRHRkcvJStmb250ZmFtaWx5R0YyLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0Y1LUkjbW9HRiU2M1EjOj1GKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRjgvJSpzZXBhcmF0b3JHRjgvJSdsc3BhY2VHUS90aGlja21hdGhzcGFjZUYoLyUncnNwYWNlR0ZbcC8lKXN0cmV0Y2h5R0Y4LyUqc3ltbWV0cmljR0Y4LyUobWF4c2l6ZUdRKWluZmluaXR5RigvJShtaW5zaXplR1EiMUYoLyUobGFyZ2VvcEdGOC8lLm1vdmFibGVsaW1pdHNHRjgvJSdhY2NlbnRHRjgvJTBmb250X3N0eWxlX25hbWVHRlgvJSVzaXplR0Y1LyUrZm9yZWdyb3VuZEdGRC8lK2JhY2tncm91bmRHRkctRiQ2JS1GX282M1EiW0YoL0Zjb1EncHJlZml4RigvRmZvRjtGZ28vRmpvUS50aGlubWF0aHNwYWNlRigvRl1wRl9yL0ZfcEY7RmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNictRiQ2JUZocS1GJDYjLUknbXRhYmxlR0YlNiUtSSRtdHJHRiU2Iy1JJG10ZEdGJTYjLUkjbW5HRiU2OUZncEYwRjNGNi9GOkY4RjxGPkZARkJGRUZIRkpGTEZORlBGUkZURlZGWUZlbkZnbi9Gam5RJ25vcm1hbEYoRlxvRltzRltzLUZfbzYzUSJdRigvRmNvUShwb3N0Zml4RihGXXJGZ29GXnIvRl1wUTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRmFyRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUZfbzYzUSIsRihGYm9GZW8vRmhvRjsvRmpvUSQwZW1GKC9GXXBRM3Zlcnl0aGlja21hdGhzcGFjZUYoRl5wRmBwRmJwRmVwRmhwRmpwRlxxRl5xRmBxRmJxRmRxLUYkNiVGaHEtRiQ2Iy1GaXI2JS1GXHM2Iy1GX3M2Iy1GYnM2OVEpJm1pbnVzOzFGKEYwRjNGNkZkc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZXNGXG8tRlxzNiMtRl9zNiMtRmJzNjlRIjNGKEYwRjNGNkZkc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZXNGXG8tRlxzNiMtRl9zNiMtRmJzNjlRIjJGKEYwRjNGNkZkc0Y8Rj5GQEZCRkVGSEZKRkxGTkZQRlJGVEZWRllGZW5GZ25GZXNGXG9GZ3NGXnQtRiQ2JUZocS1GJDYjLUZpcjYlRlx1LUZcczYjLUZfczYjLUZiczY5USIwRihGMEYzRjZGZHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmVzRlxvLUZcczYjLUZfczYjLUZiczY5USI1RihGMEYzRjZGZHNGPEY+RkBGQkZFRkhGSkZMRk5GUEZSRlRGVkZZRmVuRmduRmVzRlxvRmdzRmdzNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSJsR0YoNyUtSSdSVEFCTEVHRig2JSIoR3dzIy1JJ01BVFJJWEdGKDYjNyU3IyIiIkZmeEZmeCZJJ1ZlY3Rvckc2JCUqcHJvdGVjdGVkR0YqNiNJJ2NvbHVtbkdGKC1GX3g2JSIoL3NaJy1GY3g2IzclNyMhIiI3IyIiJDcjIiIjRmh4LUZfeDYlIighWzxrLUZjeDYjNyVGZHk3IyIiITcjIiImRmh4NyM3JS1GaHg2Iy9JJCVpZEdGKEZheC1GaHg2Iy9GaXpGYHktRmh4NiMvRml6Rlx6
myGrammSchmidt(l,"orthogonal");
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Jy1GJDYlRiwtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiMtSSRtdGRHRiU2Iy1JI21uR0YlNjlGRy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGUy8lJWJvbGRHRjgvJSdpdGFsaWNHRjgvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHRlYvJStiYWNrZ3JvdW5kR0ZZLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y1LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHRlAvJSptYXRoY29sb3JHRlYvJS9tYXRoYmFja2dyb3VuZEdGWS8lK2ZvbnRmYW1pbHlHRmhvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0ZTRl1vRl1vLUYtNjNRIl1GKC9GMVEocG9zdGZpeEYoRjNGNkY5L0Y9UTJ2ZXJ5dGhpbm1hdGhzcGFjZUYoRj5GQEZCRkVGSEZKRkxGTkZRRlRGVy1GLTYzUSIsRigvRjFRJmluZml4RigvRjRGOC9GN0Y1L0Y6USQwZW1GKC9GPVEzdmVyeXRoaWNrbWF0aHNwYWNlRigvRj9GOEZARkJGRUZIRkpGTEZORlFGVEZXLUYkNiVGLC1GJDYjLUZbbzYlLUZebzYjLUZhbzYjLUkmbWZyYWNHRiU2Ki1GZG82OVEpJm1pbnVzOzdGKEZmb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZici1GZG82OVEiM0YoRmZvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmJyLyUubGluZXRoaWNrbmVzc0dRIjFGKC8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGKC8lKW51bWFsaWduR0ZfdS8lKWJldmVsbGVkR0Y4RlRGVy1GXm82Iy1GYW82Iy1GYnQ2Ki1GZG82OVEiNUYoRmZvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmJyRmd0Rmp0Rl11RmB1RmJ1RlRGVy1GXm82Iy1GYW82Iy1GYnQ2Ki1GZG82OVEiMkYoRmZvRmlvRltwRl1wRl9wRmFwRmNwRmVwRmdwRmlwRltxRl1xRl9xRmFxRmNxRmVxRmdxRmlxRltyRl1yRl9yRmJyRmd0Rmp0Rl11RmB1RmJ1RlRGV0ZkckZbcy1GJDYlRiwtRiQ2Iy1GW282JS1GXm82Iy1GYW82Iy1GYnQ2Ki1GZG82OVEqJm1pbnVzOzIxRihGZm9GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYnItRmRvNjlRIzI2RihGZm9GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYnJGanRGXXVGYHVGYnVGVEZXLUZebzYjLUZhbzYjLUZidDYqLUZkbzY5USombWludXM7NjNGKEZmb0Zpb0ZbcEZdcEZfcEZhcEZjcEZlcEZncEZpcEZbcUZdcUZfcUZhcUZjcUZlcUZncUZpcUZbckZdckZfckZickZld0ZqdEZddUZgdUZidUZURlctRl5vNiMtRmFvNiMtRmJ0NiotRmRvNjlRIzQyRihGZm9GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYnItRmRvNjlRIzEzRihGZm9GaW9GW3BGXXBGX3BGYXBGY3BGZXBGZ3BGaXBGW3FGXXFGX3FGYXFGY3FGZXFGZ3FGaXFGW3JGXXJGX3JGYnJGanRGXXVGYHVGYnVGVEZXRmRyRmRyNyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM3JS1JJ1JUQUJMRUdGKDYlIihHd3MjLUknTUFUUklYR0YoNiM3JTcjIiIiRlx6Rlx6JkknVmVjdG9yRzYkJSpwcm90ZWN0ZWRHRio2I0knY29sdW1uR0YoLUZleTYlIig/dHAjLUZpeTYjNyU3IyMhIigiIiQ3IyMiIiZGXVtsNyMjIiIjRl1bbEZeei1GZXk2JSIoWylHbC1GaXk2IzclNyMjISNAIiNFNyMjISNqRl1cbDcjIyIjVSIjOEZeejcjNyUtRl56NiMvSSQlaWRHRihGZ3ktRl56NiMvRmpcbEZmei1GXno2Iy9GalxsRmZbbA==
myGrammSchmidt(l,"normal");
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSNtb0dGJTYzUSJbRigvJSVmb3JtR1EncHJlZml4RigvJSZmZW5jZUdRJXRydWVGKC8lKnNlcGFyYXRvckdRJmZhbHNlRigvJSdsc3BhY2VHUS50aGlubWF0aHNwYWNlRigvJSdyc3BhY2VHRjsvJSlzdHJldGNoeUdGNS8lKnN5bW1ldHJpY0dGOC8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRjgvJS5tb3ZhYmxlbGltaXRzR0Y4LyUnYWNjZW50R0Y4LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSVzaXplR1EjMTJGKC8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigtRiQ2Jy1GJDYlRiwtRiQ2Iy1JJ210YWJsZUdGJTYlLUkkbXRyR0YlNiMtSSRtdGRHRiU2Iy1GJDYlLUkmbWZyYWNHRiU2Ki1JI21uR0YlNjlGRy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdGUy8lJWJvbGRHRjgvJSdpdGFsaWNHRjgvJSp1bmRlcmxpbmVHRjgvJSpzdWJzY3JpcHRHRjgvJSxzdXBlcnNjcmlwdEdGOC8lK2ZvcmVncm91bmRHRlYvJStiYWNrZ3JvdW5kR0ZZLyUnb3BhcXVlR0Y4LyUrZXhlY3V0YWJsZUdGOC8lKXJlYWRvbmx5R0Y1LyUpY29tcG9zZWRHRjgvJSpjb252ZXJ0ZWRHRjgvJStpbXNlbGVjdGVkR0Y4LyUscGxhY2Vob2xkZXJHRjgvJTBmb250X3N0eWxlX25hbWVHRlAvJSptYXRoY29sb3JHRlYvJS9tYXRoYmFja2dyb3VuZEdGWS8lK2ZvbnRmYW1pbHlHRl1wLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0ZTLUZpbzY5USIzRihGW3BGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGXnJGYHJGYnJGZHJGZ3IvJS5saW5ldGhpY2tuZXNzR1EiMUYoLyUrZGVub21hbGlnbkdRJ2NlbnRlckYoLyUpbnVtYWxpZ25HRmFzLyUpYmV2ZWxsZWRHRjhGVEZXLUYtNjNRMSZJbnZpc2libGVUaW1lcztGKC9GMVEmaW5maXhGKC9GNEY4RjYvRjpRJDBlbUYoL0Y9Rl10L0Y/RjhGQEZCRkVGSEZKRkxGTkZRRlRGVy1GJDYjLUkmbXNxcnRHRiU2JUZpckZURldGXW9GXW8tRi02M1EiXUYoL0YxUShwb3N0Zml4RihGM0Y2RjkvRj1RMnZlcnl0aGlubWF0aHNwYWNlRihGPkZARkJGRUZIRkpGTEZORlFGVEZXLUYtNjNRIixGKEZpc0ZbdC9GN0Y1Rlx0L0Y9UTN2ZXJ5dGhpY2ttYXRoc3BhY2VGKEZfdEZARkJGRUZIRkpGTEZORlFGVEZXLUYkNiVGLC1GJDYjLUZbbzYlLUZebzYjLUZhbzYjLUYkNiQtRi02M1EqJnVtaW51czA7RihGMEZbdEY2Rlx0Rl50Rl90RkBGQkZFRkhGSkZMRk5GUUZURlctRiQ2JS1GZm82Ki1GaW82OVEiN0YoRltwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmpxRlxyRl5yRmByRmJyRmRyRmdyLUZpbzY5USM3OEYoRltwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmZxRmhxRmpxRlxyRl5yRmByRmJyRmRyRmdyRlxzRl9zRmJzRmRzRlRGV0Zmcy1GJDYjLUZjdDYlRmh2RlRGVy1GXm82Iy1GYW82Iy1GJDYlLUZmbzYqLUZpbzY5USI1RihGW3BGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGXnJGYHJGYnJGZHJGZ3JGaHZGXHNGX3NGYnNGZHNGVEZXRmZzRlt3LUZebzYjLUZhbzYjLUYkNiUtRmZvNipGaG8tRmlvNjlRIzM5RihGW3BGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGXnJGYHJGYnJGZHJGZ3JGXHNGX3NGYnNGZHNGVEZXRmZzRlt3RmV0Rlx1LUYkNiVGLC1GJDYjLUZbbzYlLUZebzYjLUZhbzYjLUYkNiRGXnYtRiQ2JS1GZm82KkZoby1GaW82OVEjMjZGKEZbcEZecEZgcEZicEZkcEZmcEZocEZqcEZccUZecUZgcUZicUZkcUZmcUZocUZqcUZcckZeckZgckZickZkckZnckZcc0Zfc0Zic0Zkc0ZURldGZnMtRiQ2Iy1GY3Q2JUZleUZURlctRl5vNiMtRmFvNiMtRiQ2JEZedi1GJDYlLUZmbzYqRmlyRmV5RlxzRl9zRmJzRmRzRlRGV0Zmc0ZoeS1GXm82Iy1GYW82Iy1GJDYlLUZmbzYqLUZpbzY5USIyRihGW3BGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGXnJGYHJGYnJGZHJGZ3ItRmlvNjlRIzEzRihGW3BGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZnFGaHFGanFGXHJGXnJGYHJGYnJGZHJGZ3JGXHNGX3NGYnNGZHNGVEZXRmZzRmh5RmV0RmV0NyMtX0YpSSxtcHJpbnRzbGFzaEdGKDYkNyM3JS1JJ1JUQUJMRUdGKDYlIihHbWgoLUknTUFUUklYR0YoNiM3JTcjLCQqJiMiIiIiIiRGZ1xsKUZoXGwjRmdcbCIiI0ZnXGxGZ1xsRmNcbEZjXGwmSSdWZWN0b3JHNiQlKnByb3RlY3RlZEdGKjYjSSdjb2x1bW5HRigtRlxcbDYlIihTNW4oLUZgXGw2IzclNyMsJComIyIiKCIjeUZnXGwpRl1ebEZqXGxGZ1xsISIiNyMsJComIyIiJkZdXmxGZ1xsRl5ebEZnXGxGZ1xsNyMsJComI0ZnXGwiI1JGZ1xsRl5ebEZnXGxGZ1xsRlxdbC1GXFxsNiUiKGtxcSgtRmBcbDYjNyU3IywkKiYjRmdcbCIjRUZnXGwpRmRfbEZqXGxGZ1xsRl9ebDcjLCQqJiNGaFxsRmRfbEZnXGxGZV9sRmdcbEZfXmw3IywkKiYjRltdbCIjOEZnXGxGZV9sRmdcbEZnXGxGXF1sNyM3JS1GXF1sNiMvSSQlaWRHRihGXlxsLUZcXWw2Iy9GZGBsRmRdbC1GXF1sNiMvRmRgbEZcX2w=
Gramm-Schmidt Process for polynomials in LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2OVEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJTBmb250X3N0eWxlX25hbWVHUSpIZWFkaW5nfjFGJy8lKm1hdGhjb2xvckdGQy8lL21hdGhiYWNrZ3JvdW5kR0ZGLyUrZm9udGZhbWlseUdGMS8lLG1hdGh2YXJpYW50R1EnaXRhbGljRicvJSltYXRoc2l6ZUdGNC1JJW1zdWJHRiQ2Ji1GLDY5USJQRicvRjBRJlNlcmlmRicvRjNRIzE4RicvRjZGOkY4RjtGPUY/RkEvRkVGQ0ZHRklGS0ZNRk9GUUZTRlVGWC9GZW5GQy9GZ25GZG8vRmluUSxib2xkLWl0YWxpY0YnL0Zcb0Zmby1JI21uR0YkNjlRIjJGJ0Zjb0Zlb0Znby9GOUY3RjtGPUY/RkFGaG9GR0ZJRktGTUZPRlFGU0ZVRlhGaW9Gam8vRmluUSVib2xkRidGXXAvJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy8lLHBsYWNlaG9sZGVyR0Y3Ris= :
We'll try in this section to obtain an orthonormal basis for LUklbXN1Ykc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2OVEiUEYnLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRicvJSVzaXplR1EjMTJGJy8lJWJvbGRHUSV0cnVlRicvJSdpdGFsaWNHRjcvJSp1bmRlcmxpbmVHUSZmYWxzZUYnLyUqc3Vic2NyaXB0R0Y8LyUsc3VwZXJzY3JpcHRHRjwvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUrYmFja2dyb3VuZEdGQy8lJ29wYXF1ZUdGPC8lK2V4ZWN1dGFibGVHRjwvJSlyZWFkb25seUdGPC8lKWNvbXBvc2VkR0Y8LyUqY29udmVydGVkR0Y8LyUraW1zZWxlY3RlZEdGPC8lLHBsYWNlaG9sZGVyR0Y8LyUwZm9udF9zdHlsZV9uYW1lR1EoMkR+TWF0aEYnLyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSxib2xkLWl0YWxpY0YnLyUpbWF0aHNpemVHRjQtSSNtbkdGJDY5USIyRidGL0YyL0Y2RjwvRjlGPEY6Rj1GP0ZBRkRGRkZIRkpGTEZORlBGUkZURldGWUZlbi9GaG5RJ25vcm1hbEYnRmpuLyUvc3Vic2NyaXB0c2hpZnRHUSIwRicvJSxwbGFjZWhvbGRlckdGPA==
(the vector space of polynomials of degree less or equal than 2), where the inner product is defined by ( LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OFEicEYnLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRicvJSVzaXplR1EjMTJGJy8lJWJvbGRHUSZmYWxzZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUqdW5kZXJsaW5lR0Y3LyUqc3Vic2NyaXB0R0Y3LyUsc3VwZXJzY3JpcHRHRjcvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJy8lJ29wYXF1ZUdGNy8lK2V4ZWN1dGFibGVHRjcvJSlyZWFkb25seUdGNy8lKWNvbXBvc2VkR0Y3LyUqY29udmVydGVkR0Y3LyUraW1zZWxlY3RlZEdGNy8lLHBsYWNlaG9sZGVyR0Y3LyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0 , LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OFEicUYnLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRicvJSVzaXplR1EjMTJGJy8lJWJvbGRHUSZmYWxzZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUqdW5kZXJsaW5lR0Y3LyUqc3Vic2NyaXB0R0Y3LyUsc3VwZXJzY3JpcHRHRjcvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJy8lJ29wYXF1ZUdGNy8lK2V4ZWN1dGFibGVHRjcvJSlyZWFkb25seUdGNy8lKWNvbXBvc2VkR0Y3LyUqY29udmVydGVkR0Y3LyUraW1zZWxlY3RlZEdGNy8lLHBsYWNlaG9sZGVyR0Y3LyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0 )= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYrLUkobXN1YnN1cEdGJDYnLUkjbW9HRiQ2MlErJkludGVncmFsO0YnLyUlZm9ybUdRJ3ByZWZpeEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y3LyUnbHNwYWNlR1EkMGVtRicvJSdyc3BhY2VHRjwvJSlzdHJldGNoeUdRJXRydWVGJy8lKnN5bW1ldHJpY0dGNy8lKG1heHNpemVHUSlpbmZpbml0eUYnLyUobWluc2l6ZUdRIjFGJy8lKGxhcmdlb3BHRkEvJS5tb3ZhYmxlbGltaXRzR0Y3LyUnYWNjZW50R0Y3LyUlc2l6ZUdRIzEyRicvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJy1GIzYkLUYvNjJRKCZtaW51cztGJy9GM1EmaW5maXhGJ0Y1RjhGOkY9L0ZARjdGQkZERkcvRktGN0ZMRk5GUEZTRlYtSSNtbkdGJDY4RkkvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHRlIvJSVib2xkR0Y3LyUnaXRhbGljR0Y3LyUqdW5kZXJsaW5lR0Y3LyUqc3Vic2NyaXB0R0Y3LyUsc3VwZXJzY3JpcHRHRjcvJStmb3JlZ3JvdW5kR0ZVLyUrYmFja2dyb3VuZEdGWC8lJ29wYXF1ZUdGNy8lK2V4ZWN1dGFibGVHRjcvJSlyZWFkb25seUdGNy8lKWNvbXBvc2VkR0Y3LyUqY29udmVydGVkR0Y3LyUraW1zZWxlY3RlZEdGNy8lLHBsYWNlaG9sZGVyR0Y3LyUqbWF0aGNvbG9yR0ZVLyUvbWF0aGJhY2tncm91bmRHRlgvJStmb250ZmFtaWx5R0Zhby8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJSltYXRoc2l6ZUdGUi1GIzYjRlxvLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJy8lL3N1YnNjcmlwdHNoaWZ0R0Zfci1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EnMC4wfmV4RicvJSZ3aWR0aEdRJzAuNX5lbUYnLyUmZGVwdGhHRmdyLyUqbGluZWJyZWFrR1ElYXV0b0YnLUYjNiUtSSNtaUdGJDY4USJwRidGX29GYm9GZG8vRmdvRkFGaG9Gam9GXHBGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHEvRmdxUSdpdGFsaWNGJ0ZpcS1GLzYyUTAmQXBwbHlGdW5jdGlvbjtGJ0ZobkY1RjhGOkY9RmpuRkJGREZHRltvRkxGTkZQRlNGVi1JKG1mZW5jZWRHRiQ2Iy1GIzYjLUZjczY4USJ4RidGX29GYm9GZG9GZnNGaG9Gam9GXHBGXnBGYHBGYnBGZHBGZnBGaHBGanBGXHFGXnFGYHFGYnFGZHFGZ3NGaXEtRiM2JS1GY3M2OFEicUYnRl9vRmJvRmRvRmZzRmhvRmpvRlxwRl5wRmBwRmJwRmRwRmZwRmhwRmpwRlxxRl5xRmBxRmJxRmRxRmdzRmlxRmlzRlx0LUYvNjJRMCZEaWZmZXJlbnRpYWxEO0YnRjJGNUY4RjpGPUZqbkZCRkRGR0Zbb0ZMRk5GUEZTRlYtRmNzNjhGY3RGX29GYm9GZG9GZnNGaG9Gam9GXHAvRl9wUSxbMjAwLDAsMjAwXUYnRmBwRmJwRmRwRmZwRmhwRmpwRlxxL0ZfcUZBL0ZhcUZfdUZicUZkcUZnc0ZpcS1GLzYyUSIuRidGaG5GNUY4RjpGPUZqbkZCRkRGR0Zbb0ZMRk5GUEZTRlYtRi82MlExJkludmlzaWJsZVRpbWVzO0YnL0YzUSFGJ0Y1RjhGOkY9RmpuRkJGREZHRltvRkxGTkZQRlNGVi9JK21zZW1hbnRpY3NHRiRRJGludEYn We start with the initial basis {1, LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2OFEieEYnLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRicvJSVzaXplR1EjMTJGJy8lJWJvbGRHUSZmYWxzZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUqdW5kZXJsaW5lR0Y3LyUqc3Vic2NyaXB0R0Y3LyUsc3VwZXJzY3JpcHRHRjcvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJy8lJ29wYXF1ZUdGNy8lK2V4ZWN1dGFibGVHRjcvJSlyZWFkb25seUdGNy8lKWNvbXBvc2VkR0Y3LyUqY29udmVydGVkR0Y3LyUraW1zZWxlY3RlZEdGNy8lLHBsYWNlaG9sZGVyR0Y3LyUqbWF0aGNvbG9yR0ZDLyUvbWF0aGJhY2tncm91bmRHRkYvJStmb250ZmFtaWx5R0YxLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lKW1hdGhzaXplR0Y0 , LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2OFEhRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjcvJSpzdWJzY3JpcHRHRjcvJSxzdXBlcnNjcmlwdEdGNy8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y3LyUrZXhlY3V0YWJsZUdGNy8lKXJlYWRvbmx5R0Y3LyUpY29tcG9zZWRHRjcvJSpjb252ZXJ0ZWRHRjcvJStpbXNlbGVjdGVkR0Y3LyUscGxhY2Vob2xkZXJHRjcvJSptYXRoY29sb3JHRkMvJS9tYXRoYmFja2dyb3VuZEdGRi8lK2ZvbnRmYW1pbHlHRjEvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLyUpbWF0aHNpemVHRjQtSSVtc3VwR0YkNiUtRiw2OFEieEYnRi9GMkY1RjhGO0Y9Rj9GQUZERkdGSUZLRk1GT0ZRRlNGVUZXRllGZW5GaG4tRiM2Iy1JI21uR0YkNjhRIjJGJ0YvRjJGNS9GOUY3RjtGPUY/RkFGREZHRklGS0ZNRk9GUUZTRlVGV0ZZL0ZmblEnbm9ybWFsRidGaG4vJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRis= }.
p1:=x->1:
p2:=x->x:
p3:=x->x^2:
We orthogonalize first this set:
ogp1:=x->p1(x):
ogp2:=x->eval(p2(x)-int(p2(x)*ogp1(x),x=-1..1)/
int(ogp1(x)*ogp1(x),x=-1..1)*
ogp1(x)):
ogp3:=x->p3(x)-int(p3(x)*ogp1(x),x=-1..1)/
int(ogp1(x)*ogp1(x),x=-1..1)*
ogp1(x)
-int(p3(x)*ogp2(x),x=-1..1)/
int(ogp2(x)*ogp2(x),x=-1..1)*
ogp2(x):
ogp1(x);
ogp2(x);
ogp3(x);
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiI=
NiQtSSNtaUc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USJ4RigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHUSV0cnVlRigvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHRjgvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZBLyUvbWF0aGJhY2tncm91bmRHRkQvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGKC8lKW1hdGhzaXplR0YyNyNJInhHRig=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtRiQ2Iy1JJW1zdXBHRiU2JS1JI21pR0YlNjlRInhGKC8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYoLyUlc2l6ZUdRIzEyRigvJSVib2xkR1EmZmFsc2VGKC8lJ2l0YWxpY0dRJXRydWVGKC8lKnVuZGVybGluZUdGPS8lKnN1YnNjcmlwdEdGPS8lLHN1cGVyc2NyaXB0R0Y9LyUrZm9yZWdyb3VuZEdRKlswLDAsMjU1XUYoLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GKC8lJ29wYXF1ZUdGPS8lK2V4ZWN1dGFibGVHRj0vJSlyZWFkb25seUdGQC8lKWNvbXBvc2VkR0Y9LyUqY29udmVydGVkR0Y9LyUraW1zZWxlY3RlZEdGPS8lLHBsYWNlaG9sZGVyR0Y9LyUwZm9udF9zdHlsZV9uYW1lR1EqMkR+T3V0cHV0RigvJSptYXRoY29sb3JHRkkvJS9tYXRoYmFja2dyb3VuZEdGTC8lK2ZvbnRmYW1pbHlHRjcvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YoLyUpbWF0aHNpemVHRjotSSNtbkdGJTY5USIyRihGNUY4RjsvRj9GPUZBRkNGRUZHRkpGTUZPRlFGU0ZVRldGWUZlbkZobkZqbkZcby9GX29RJ25vcm1hbEYoRmFvLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGKC1JI21vR0YlNjNRKCZtaW51cztGKC8lJWZvcm1HUSZpbmZpeEYoLyUmZmVuY2VHRj0vJSpzZXBhcmF0b3JHRj0vJSdsc3BhY2VHUTBtZWRpdW1tYXRoc3BhY2VGKC8lJ3JzcGFjZUdGanAvJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKG1heHNpemVHUSlpbmZpbml0eUYoLyUobWluc2l6ZUdRIjFGKC8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUwZm9udF9zdHlsZV9uYW1lR0Znbi8lJXNpemVHRjovJStmb3JlZ3JvdW5kR0ZJLyUrYmFja2dyb3VuZEdGTC1JJm1mcmFjR0YlNiotRmRvNjlGZnFGNUY4RjtGZ29GQUZDRkVGR0ZKRk1GT0ZRRlNGVUZXRllGZW5GaG5Gam5GXG9GaG9GYW8tRmRvNjlRIjNGKEY1RjhGO0Znb0ZBRkNGRUZHRkpGTUZPRlFGU0ZVRldGWUZlbkZobkZqbkZcb0Zob0Zhby8lLmxpbmV0aGlja25lc3NHUSIxRigvJStkZW5vbWFsaWduR1EnY2VudGVyRigvJSludW1hbGlnbkdGYnMvJSliZXZlbGxlZEdGPUZhckZjcjcjLCYqJClJInhHRigiIiMiIiJGXXQjRl10IiIkISIi
We check that they are orthogonal with respect to this inner product:
int(ogp1(x)*ogp2(x),x=-1..1);
int(ogp1(x)*ogp3(x),x=-1..1);
int(ogp2(x)*ogp3(x),x=-1..1);
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIwRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiE=
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIwRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiE=
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIwRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiE=
The last operation is orthonormalization:
onp1:=x->1/sqrt(int(ogp1(x)*ogp1(x),x=-1..1))*ogp1(x):
onp2:=x->1/sqrt(int(ogp2(x)*ogp2(x),x=-1..1))*ogp2(x):
onp3:=x->1/sqrt(int(ogp3(x)*ogp3(x),x=-1..1))*ogp3(x):
onp1(x);onp2(x);onp3(x);
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSZtZnJhY0dGJTYqLUkjbW5HRiU2OVEiMUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR0Y7LyUqdW5kZXJsaW5lR0Y7LyUqc3Vic2NyaXB0R0Y7LyUsc3VwZXJzY3JpcHRHRjsvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y7LyUrZXhlY3V0YWJsZUdGOy8lKXJlYWRvbmx5R1EldHJ1ZUYoLyUpY29tcG9zZWRHRjsvJSpjb252ZXJ0ZWRHRjsvJStpbXNlbGVjdGVkR0Y7LyUscGxhY2Vob2xkZXJHRjsvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRi8lL21hdGhiYWNrZ3JvdW5kR0ZJLyUrZm9udGZhbWlseUdGNS8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGOC1GMDY5USIyRihGM0Y2RjlGPEY+RkBGQkZERkdGSkZMRk5GUUZTRlVGV0ZZRmZuRmhuRmpuRlxvRl9vLyUubGluZXRoaWNrbmVzc0dRIjFGKC8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGKC8lKW51bWFsaWduR0Zpby8lKWJldmVsbGVkR0Y7LyUrZm9yZWdyb3VuZEdGRi8lK2JhY2tncm91bmRHRkktSSNtb0dGJTYzUTEmSW52aXNpYmxlVGltZXM7RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y7LyUqc2VwYXJhdG9yR0Y7LyUnbHNwYWNlR1EkMGVtRigvJSdyc3BhY2VHRl9xLyUpc3RyZXRjaHlHRjsvJSpzeW1tZXRyaWNHRjsvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHRjIvJShsYXJnZW9wR0Y7LyUubW92YWJsZWxpbWl0c0dGOy8lJ2FjY2VudEdGOy8lMGZvbnRfc3R5bGVfbmFtZUdGZW4vJSVzaXplR0Y4Rl5wRmBwLUYkNiMtSSZtc3FydEdGJTYlRmFvRl5wRmBwNyMsJComIyIiIiIiI0ZecylGX3NGXXNGXnNGXnM=
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSZtZnJhY0dGJTYqLUkjbW5HRiU2OVEiMUYoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR0Y7LyUqdW5kZXJsaW5lR0Y7LyUqc3Vic2NyaXB0R0Y7LyUsc3VwZXJzY3JpcHRHRjsvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y7LyUrZXhlY3V0YWJsZUdGOy8lKXJlYWRvbmx5R1EldHJ1ZUYoLyUpY29tcG9zZWRHRjsvJSpjb252ZXJ0ZWRHRjsvJStpbXNlbGVjdGVkR0Y7LyUscGxhY2Vob2xkZXJHRjsvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRi8lL21hdGhiYWNrZ3JvdW5kR0ZJLyUrZm9udGZhbWlseUdGNS8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGOC1GMDY5USIyRihGM0Y2RjlGPEY+RkBGQkZERkdGSkZMRk5GUUZTRlVGV0ZZRmZuRmhuRmpuRlxvRl9vLyUubGluZXRoaWNrbmVzc0dRIjFGKC8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGKC8lKW51bWFsaWduR0Zpby8lKWJldmVsbGVkR0Y7LyUrZm9yZWdyb3VuZEdGRi8lK2JhY2tncm91bmRHRkktSSNtb0dGJTYzUTEmSW52aXNpYmxlVGltZXM7RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y7LyUqc2VwYXJhdG9yR0Y7LyUnbHNwYWNlR1EkMGVtRigvJSdyc3BhY2VHRl9xLyUpc3RyZXRjaHlHRjsvJSpzeW1tZXRyaWNHRjsvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHRjIvJShsYXJnZW9wR0Y7LyUubW92YWJsZWxpbWl0c0dGOy8lJ2FjY2VudEdGOy8lMGZvbnRfc3R5bGVfbmFtZUdGZW4vJSVzaXplR0Y4Rl5wRmBwLUYkNiUtSSZtc3FydEdGJTYlLUYwNjlRIjZGKEYzRjZGOUY8Rj5GQEZCRkRGR0ZKRkxGTkZRRlNGVUZXRllGZm5GaG5Gam5GXG9GX29GXnBGYHBGYnAtSSNtaUdGJTY5USJ4RihGM0Y2RjkvRj1GUEY+RkBGQkZERkdGSkZMRk5GUUZTRlVGV0ZZRmZuRmhuRmpuL0Zdb1EnaXRhbGljRihGX283IywkKigjIiIiIiIjRmhzKSIiJ0Znc0Zoc0kieEdGKEZoc0Zocw==
NiQtSSVtcm93RzYjL0krbW9kdWxlbmFtZUc2IkksVHlwZXNldHRpbmdHSShfc3lzbGliR0YoNiUtSSZtZnJhY0dGJTYqLUkjbW5HRiU2OVEiM0YoLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRigvJSVzaXplR1EjMTJGKC8lJWJvbGRHUSZmYWxzZUYoLyUnaXRhbGljR0Y7LyUqdW5kZXJsaW5lR0Y7LyUqc3Vic2NyaXB0R0Y7LyUsc3VwZXJzY3JpcHRHRjsvJStmb3JlZ3JvdW5kR1EqWzAsMCwyNTVdRigvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYoLyUnb3BhcXVlR0Y7LyUrZXhlY3V0YWJsZUdGOy8lKXJlYWRvbmx5R1EldHJ1ZUYoLyUpY29tcG9zZWRHRjsvJSpjb252ZXJ0ZWRHRjsvJStpbXNlbGVjdGVkR0Y7LyUscGxhY2Vob2xkZXJHRjsvJTBmb250X3N0eWxlX25hbWVHUSoyRH5PdXRwdXRGKC8lKm1hdGhjb2xvckdGRi8lL21hdGhiYWNrZ3JvdW5kR0ZJLyUrZm9udGZhbWlseUdGNS8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRigvJSltYXRoc2l6ZUdGOC1GMDY5USI0RihGM0Y2RjlGPEY+RkBGQkZERkdGSkZMRk5GUUZTRlVGV0ZZRmZuRmhuRmpuRlxvRl9vLyUubGluZXRoaWNrbmVzc0dRIjFGKC8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGKC8lKW51bWFsaWduR0Zpby8lKWJldmVsbGVkR0Y7LyUrZm9yZWdyb3VuZEdGRi8lK2JhY2tncm91bmRHRkktSSNtb0dGJTYzUTEmSW52aXNpYmxlVGltZXM7RigvJSVmb3JtR1EmaW5maXhGKC8lJmZlbmNlR0Y7LyUqc2VwYXJhdG9yR0Y7LyUnbHNwYWNlR1EkMGVtRigvJSdyc3BhY2VHRl9xLyUpc3RyZXRjaHlHRjsvJSpzeW1tZXRyaWNHRjsvJShtYXhzaXplR1EpaW5maW5pdHlGKC8lKG1pbnNpemVHUSIxRigvJShsYXJnZW9wR0Y7LyUubW92YWJsZWxpbWl0c0dGOy8lJ2FjY2VudEdGOy8lMGZvbnRfc3R5bGVfbmFtZUdGZW4vJSVzaXplR0Y4Rl5wRmBwLUYkNiUtSSZtc3FydEdGJTYlLUYwNjlRIzEwRihGM0Y2RjlGPEY+RkBGQkZERkdGSkZMRk5GUUZTRlVGV0ZZRmZuRmhuRmpuRlxvRl9vRl5wRmBwRmJwLUYkNiUtRmNwNjNRIihGKC9GZ3BRJ3ByZWZpeEYoL0ZqcEZQRltxL0ZecVEudGhpbm1hdGhzcGFjZUYoL0ZhcUZncy9GY3FGUEZkcUZmcUZpcUZcckZeckZgckZickZkckZecEZgcC1GJDYlLUYkNiMtSSVtc3VwR0YlNiUtSSNtaUdGJTY5USJ4RihGM0Y2RjkvRj1GUEY+RkBGQkZERkdGSkZMRk5GUUZTRlVGV0ZZRmZuRmhuRmpuL0Zdb1EnaXRhbGljRihGX28tRjA2OVEiMkYoRjNGNkY5RjxGPkZARkJGREZHRkpGTEZORlFGU0ZVRldGWUZmbkZobkZqbkZcb0Zfby8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRigtRmNwNjNRKCZtaW51cztGKEZmcEZpcEZbcS9GXnFRMG1lZGl1bW1hdGhzcGFjZUYoL0ZhcUZidUZicUZkcUZmcUZpcUZcckZeckZgckZickZkckZecEZgcC1GLTYqLUYwNjlGW3JGM0Y2RjlGPEY+RkBGQkZERkdGSkZMRk5GUUZTRlVGV0ZZRmZuRmhuRmpuRlxvRl9vRi9GZG9GZ29Gam9GXHBGXnBGYHAtRmNwNjNRIilGKC9GZ3BRKHBvc3RmaXhGKEZlc0ZbcUZmcy9GYXFRMnZlcnl0aGlubWF0aHNwYWNlRihGaXNGZHFGZnFGaXFGXHJGXnJGYHJGYnJGZHJGXnBGYHA3IywkKigjIiIkIiIlIiIiKSIjNSNGZXYiIiNGZXYsJiokKUkieEdGKEZpdkZldkZldiNGZXZGY3YhIiJGZXZGZXY=
We check that these three vectors are orthonormal:
int(onp1(x)*onp1(x),x=-1..1);
int(onp2(x)*onp2(x),x=-1..1);
int(onp3(x)*onp3(x),x=-1..1);
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiI=
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiI=
NiQtSSNtbkc2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGKDY5USIxRigvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GKC8lJXNpemVHUSMxMkYoLyUlYm9sZEdRJmZhbHNlRigvJSdpdGFsaWNHRjUvJSp1bmRlcmxpbmVHRjUvJSpzdWJzY3JpcHRHRjUvJSxzdXBlcnNjcmlwdEdGNS8lK2ZvcmVncm91bmRHUSpbMCwwLDI1NV1GKC8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRigvJSdvcGFxdWVHRjUvJStleGVjdXRhYmxlR0Y1LyUpcmVhZG9ubHlHUSV0cnVlRigvJSljb21wb3NlZEdGNS8lKmNvbnZlcnRlZEdGNS8lK2ltc2VsZWN0ZWRHRjUvJSxwbGFjZWhvbGRlckdGNS8lMGZvbnRfc3R5bGVfbmFtZUdRKjJEfk91dHB1dEYoLyUqbWF0aGNvbG9yR0ZALyUvbWF0aGJhY2tncm91bmRHRkMvJStmb250ZmFtaWx5R0YvLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGKC8lKW1hdGhzaXplR0YyNyMiIiI=