0

不動点法で関数の根を入力として求めるコードを作るのに苦労しました。

ここでは、ニュートン・ラフソン法を使用してそれを行いました。

clc,close all
syms x;
fprintf('Newton Raphson\n');
Fun = input('\nType a function \n');
x0 = input('\nType initial value \n');
f = sym(Fun);
df = diff(f,x);
while (1)
   a = subs(f, 'x', x0);
   b = subs(df, 'x', x0);
   x1 = x0 - a/b
   er = (abs((x1 - x0)/x1))*100
   if ( er <= 0.05)
      break;
   end
   x0 = x1;
end

そして、これは固定小数点法を使用するコードですが、固定関数は入力として取り込まれません:

clc,close all
x0 = 0.5
while (1)
   x1 = (exp(-x0) - sin(x0)) / 5
   er = (abs((x1 - x0)/x1))*100
   if ( er <= 0.05)
      break;
   end
x0 = x1;

終わり

しかし、固定小数点法は変数 x を左辺で処理するため、関数を入力として使用することはできません。どうすればいいですか?

4

0 に答える 0