clear; // *** データの作成 *** X = linspace(-2,2); Y = X .^ 2; // *** 解くべき関数の定義 *** function y = func(x) y = x .^ 2 - yp; endfunction // *** 非線形方程式ソルバ *** yp = 1; // yp = f(x) x0 = 2; // ソルバ―の初期値 // 非線形方程式を解く xp = fsolve(x0, func) // *** 非線形方程式の初期値依存性 *** X0 = X; XP = fsolve(X0, func); // *** グラフのプロット *** subplot(2,1,1); plot(X, Y, '-b'); plot(X, yp * ones(Y), '--k'); plot(xp, yp, 'or'); xlabel("x") ylabel("y") subplot(2,1,2); plot(X0, XP, '-or') xlabel("x0") ylabel("xp")