82778


mylist1,mylist2,mylist3を使わない方法を教えて下さい。関数だと助かります。

参考 3点 A(1,1,2),B(0,-2,1),C(3,-1,0) を通る平面の方程式を計算せよ。

<https://manabitimes.jp/math/679>  
<http://meg.aalip.jp/python/math01.html>  
<https://atatat.hatenablog.com/entry/sympy12_vectormodule1>

[code]

    from sympy import *
    from sympy.vector import CoordSys3D
    import itertools
    var('x y z')
    myTitle="1：外積と法線ベクトルを用いる方法"
    N = CoordSys3D('N')
    vA= 1*N.i+1*N.j+2*N.k
    vB= 0*N.i-2*N.j+1*N.k
    vC= 3*N.i-1*N.j+0*N.k
    myGaiseki=(vB-vA).cross(vC-vA).to_matrix(N)
    mylist1 =[0,0,0]
    for i in range(len(mylist1)):
        mylist1[i] = myGaiseki[i, 0]
    myxyz    =Matrix([x,y,z])
    myvA     =vA.to_matrix(N)
    mylist2 =[0,0,0]
    for i in range(len(mylist2)):
        mylist2[i] = (myxyz-myvA).transpose()[0, i]
    mylist3=0
    for i in range(len(mylist2)):
        mylist3 = mylist3+mylist1[i]*mylist2[i]
    print("#",myTitle,mylist3/4)
    # 1：外積と法線ベクトルを用いる方法 x - y + 2*z - 4
    
[/code]


CC BY-SA 4.0
2021-09-30T10:31:55.067
82776
2021-10-01T09:59:00.090
2021-10-01T09:59:00.090
17199
17199
question
python sympy
sympyのlistの使い方(matrix-->list)を教えて下さい。 3点の平面の方程式

[code]

    from sympy import Plane, factor_list
    
    points = ((1, 1, 2), (0, -2, 1), (3, -1, 0))
    fac, equation = factor_list(Plane(*points).equation())
    equation = (-1 if fac < 0 else 1) * equation[0][0]
    
    print(equation)
    
    # 
    x - y + 2*z - 4
    
[/code]


CC BY-SA 4.0
2021-09-30T12:03:23.580
82778
2021-09-30T12:03:23.580
47127
82776
answer