!! MAXIMA de vect Tips-maxima ! ベクトルの内積 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); ---- *https://pianofisica.hatenablog.com/entry/2018/12/03/092153#%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E5%86%85%E7%A9%8D