matlabの4元連立一次方程式です。解を分数で表示できるものはそのまま小数にせず分数で出力できるようにしたいです。あと解がうまく出力できないです。初歩的で申し訳ないです。
%% % disp('4本の4元1次連立方程式して解きます。');
% /* 4×4の係数行列を入力してください。: */
a11=input('a11 = ');
a12=input('a12 = ');
a13=input('a13 = ');
a14=input('a14 = ');
a21=input('a21 = ');
a22=input('a22 = ');
a23=input('a23 = ');
a24=input('a24 = ');
a31=input('a31 = ');
a32=input('a32 = ');
a33=input('a33 = ');
a34=input('a34 = ');
a41=input('a41 = ');
a42=input('a42 = ');
a43=input('a43 = ');
a44=input('a44 = ');
% /*4×1の定数ベクトルBを入力してください。 */
b1=input('b1 = ');
b2=input('b2 = ');
b3=input('b3 = ');
b4=input('b4 = ');
%/クラメルで解く/
w=[a11 a12 a13 a14;a21 a22 a23 a24;a31 a32 a33 a34;a41 a42 a43 a44];
W=det(w);
if W ~=0
A=[b1 b2 b3 b4;a21 a22 a23 a24;a31 a32 a33 a34;a41 a42 a43 a44];
X=det(A);
x1 =X/W;
B=[a11 a12 a13 a14;b1 b2 b3 b4;a31 a32 a33 a34;a41 a42 a43 a44];
X2=det(B);
x2=(X2/W);
C=[a11 a12 a13 a14;a21 a22 a23 a24;b1 b2 b3 b4;a41 a42 a43 a44];
X3=det(C);
x3=X3/W;
D=[a11 a12 a13 a14;a21 a22 a23 a24;a31 a32 a33 a34;b1 b2 b3 b4];
X4=det(D);
x4=(X4/W);
fprintf ('連立方程式の解\n x1=%d\n x2=%d\n x3=%d\n x4=%d\n', x1,x2,x3,x4);
elseif W == 0
fprintf("解なし\n");
end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。