トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Tips-maxima-vect

  MAXIMA de vect

ベクトルの内積

inn(a,b):=transpose(a).b;

ベクトルの外積

ext(a,b):=matrix(
[a[2][1]*b[3][1]-a[3][1]*b[2][1]],
[a[3][1]*b[1][1]-a[1][1]*b[3][1]], 
[a[1][1]*b[2][1]-a[2][1]*b[1][1]]);

/* 
点pA=[ax, ay, az]を通る平面alphaを描く
法線ベクトル vH=[hx, hy, hz]
*/
pA:[1,-1,-2];
vH:[1,3,2];
alpha: vH[1]*(x-pA[1])+vH[2]*(y-pA[2])+vH[3]*(z-pA[3])=0;
alphaGraph: solve(alpha, z);
pi: vH[1]*x+vH[2]*y+vH[3]*z+1=0;
piGraph: solve(pi, z);
plot3d([rhs(alphaGraph[1]), rhs(piGraph[1]),[x,-4, 4],[y,-4,4]]);

/* 平面alphaと直線Lの交点Bの座標を求める */
L: [(x-2)/-2=t, y/2=t, (z+1)/1=t];
W: map(lambda([s,t], solve(s, t)),L,[x,y,z]);
WORKx:subst(rhs(W[1][1]), x, alpha);
WORKy:subst(rhs(W[2][1]), y, WORKx);
WORKz:subst(rhs(W[3][1]), z, WORKy);
Bt: rhs(solve(WORKz, t)[1]);
B: map(lambda([s],subst(Bt, t, rhs(s[1]))),W);