dポイントプレゼントキャンペーン実施中!

数式処理ソフトmaximaで、ある部分をまとめて反復処理したいのですがどのようなコマンドを使いどのようなプログラムを書けばよいのか詳しい方ご教示ください。
具体的には下記のプログラム中、8行目にあるP[i]から最終行までの部分を4回ほど繰り返したいのですが。

/* fixed point on the mirror [A1x,A1y,A2x,A2y,A3x,A3y,A4x,A4y]*/
a:[-2,0,-4,-3,4,-3,2,0];
/* direction vector parallel to mirror surface */
m:[1,1,1,-1,1,1,-1,1];
/* fixed point and direction vector of initial line */
p[0]:[0,0];
l[0]:[1,0.1];
P[i]:matrix([p[i][1],p[i][2]]);
L[i]:matrix([l[i][1],l[i][2]]);
M[i+1]:matrix([m[i+1],m[i+2]]);
T:addrow(L[i],M[i+1]);
A[i+1]:matrix([a[i+1],a[i+2]]);
sol:(A[i+1]-P[i]).invert(T);
t:sol[1][1];
/* Coordinates of cross point of two lines */
P[i+1]:P[i]+t*L[i];

A 回答 (1件)

do

    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!