スクリプトの実行方法
- 01スクリプトを入力または貼り付けます。文は改行またはセミコロンで終わります。末尾のセミコロンはエコーを抑制し、MATLAB とまったく同じです。
- 02角かっことセミコロンで行列を組み立てます。
A = [2 1 -1; -3 -1 2; -2 1 2] はセミコロン区切りの3行、列はスペース区切りです。 - 03解きます。逆行列は使いません。
x = A\b は LU ベースの求解を使います。inv(A)*b は別の、通常は精度の低い経路です。 - 04ワークスペースを見ます。実行のたびに変数一覧がサイズ、クラス、プレビューを表示します。セッションは実行間で保持されるので、2番目のセルが1番目の変数を使えます。
- 05エラーを行番号で読みます。失敗した実行はメッセージと行番号を示し、ワークスペースには失敗前に正常に代入された変数が残ります。
計算例
このスクリプト:
は、そのまま次を出力します:
残差ノルム 8.882e-16 は機械精度です。求解は x = [2, 3, −1] を見つけ、3本の式に戻しても丸め誤差しか残りません。コロン範囲 0:0.25:1 は 1×5 ベクトル t を生成し、要素単位の積 exp(-t).*cos(2*pi*t) は行 1.0000 0.0000 −0.6065 −0.0000 0.3679 を生成し、max は値 1 とそのインデックス 1 を返しました。最後の行は s に代入し、mean(y) が ans = **0.1523** と答えました。別々に実行すると、フィボナッチ関数と総和の確認も期待どおりです: fib(10) は 55、sum(1:100) は 5050 を出力します。format long は表示だけを変えます: π は 3.1416 ではなく 3.141592653589793 として返ります。
matlabA = [2 1 -1; -3 -1 2; -2 1 2];
b = [8; -11; -3];
x = A\b
detA = det(A)
fprintf("residual norm = %.3e\n", norm(A*x - b));
t = 0:0.25:1;
y = exp(-t).*cos(2*pi*t);
disp(y)
[ymax, idx] = max(y)
s = sum(y); mean(y)
textx =
2.0000
3.0000
-1.0000
detA = -1.0000
residual norm = 8.882e-16
1.0000 0.0000 -0.6065 -0.0000 0.3679
ymax = 1
idx = 1
ans = 0.1523
表示と演算が食い違う理由
MATLAB の short 形式は既定で小数4桁を表示し、カーネルもそれを再現します。x は格納値が正確でも 2.0000, 3.0000, −1.0000 と表示されます。この違いは端で効いてきます。fprintf で出力した残差は指数部の有効数字3桁を保ち — 8.882e-16 —、同じ量を変数として表示するとゼロに丸められます。2つの結果を比べるときは、表示値ではなく格納値を比較してください。
バックスラッシュが2つ目の教材ポイントです。A\b は逆行列を作りません。A を分解して三角系を解きます。これは inv(A)*b より安価で条件数も良く、後者は求解が正確でも最後の桁が狂うことがあります。要素単位と行列演算子が2つ目の区別です: * は行列積、.* は要素ごとの積で、スクリプトが .* を必要とするのは両因子が 1×5 ベクトルだからです。* に置き換えると、インタープリタは推測せず次元不一致を報告します。
限界と端のケース
- サブセットであり、製品全体ではありません。
- ツールボックス、クラス、グラフィックスハンドルオブジェクト、Simulink はありません。プロット支援はパネルが描画する範囲に限られ、ファイルシステムアクセスも存在しません。これらに依存するスクリプトは、黙って誤動作せず明確なエラーで失敗します。
- 実行は有界です。
- 長時間または無限のループは演算と実時間のバジェットで停止し、エラーがその上限を名指しします。これは意図的です。ブラウザタブは無制限のカーネルを抱えられず、パネルはハングより拒否を選びます。
要素単位の罠
実務でのインタープリタエラーのほとんどは形状エラーで、カーネルはブロードキャストせずに報告します。3×3 行列に対する A(3,1) は問題ありませんが、A(3,4) は Index exceeds matrix dimensions. (line 1) で失敗します — MATLAB のインデックスは1始まりで、行・列の順序は (row, column) であり (x, y) ではありません。2つ目の罠はエコー規則です: s = sum(y); mean(y) は ans 行だけを表示します。セミコロンが s を抑制したからで、「何も表示しない」スクリプトはたいてい各行をセミコロンで終えています。3つ目はセッションの永続性です: 変数は実行間で生き残り、REPL には便利ですが、前のセルから残った x がバグを覆い隠すことがあります。ワークスペース一覧とそのプレビュー列はまさにそのためにあります。
どこで役立つか
線形代数の演習を確認する
手計算で解いた 3×3 系を1回の実行で検証できます: x = [2, 3, −1]、行列式 −1、残差 8.882e-16。答えが正しい証拠は残差であり、表示された桁ではありません。
デスクトップへ移す前に数値スクリプトを試作する
サブセットは教育・工学スクリプトの中核 — 行列構築、コロン範囲、要素単位のベクトル演算、関数、ループ — をカバーするので、試作をブラウザで書いて確認し、MATLAB や Octave にコピーできます。ワークスペースブリッジは行列とベクトルをスクリーンショットではなく型付きの値として持ち出します。
\ の働きを教える
ヒルベルト行列風の行列で A\b と inv(A)*b を比べると、残差の差は測定可能です。パネルは数値と、それを保持するワークスペースの両方を提供します。
プライバシー
スクリプトと変数はブラウザ内で評価されます。サーバーには何も送信されず、カーネルはランタイムをダウンロードしません。
参考文献
- MathWorks, mldivide, \, mathworks.com (访问日期:2026-10-07)— バックスラッシュ求解とその分解。
- MathWorks, Array vs. Matrix Operations, mathworks.com (访问日期:2026-10-07)—
* と .* の対比。
- MathWorks, Colon, :, mathworks.com (访问日期:2026-10-07)— start:step:stop 範囲。
- Wikipedia, MATLAB, en.wikipedia.org (访问日期:2026-10-07)— 言語と1始まりのインデックス。
- Wikipedia, LU decomposition, en.wikipedia.org (访问日期:2026-10-07)— 求解の背後にある分解。
Calculators in this hub
Hand-picked tools, one click away. The mini versions compute live and carry your values into the full calculator.
Sources & review
- Updated