У меня есть уравнение f(x)=exp(x)+3x^2
, f(x)=0
, x=?
тогда я использую scilab
решить это уравнение с помощью итераций с фиксированной точкой, это мой кодрешить уравнение с использованием фиксированной точки в scilab?
function fixed_point(fung,x0,err)
x=zeros(100);
ea = 100;
i = 1;
x(i)=x0;
printf(" \t i \t x(i) \t ea(%%)");
printf("\n\t %d \t %f \t %f", i, x(i), abs(ea));
while (abs(ea) >err) do
i=i+1;
z =x(i-1);
x(i) = evstr(fung)+z;
ea =100*(x(i)-x(i-1))/x(i);
printf("\n\t %d \t %f \t %f", i, x(i), abs(ea));
end
printf("\n Akar = %f", x(i));
endfunction
тогда я называю его с помощью:
fixed_point ('exp(z)-(3 .* z .*z)',0.00000000001,0.5)
Я получил x(i)=inf
наконец, но я думаю, что это не ответ, может кто-нибудь объяснить мне, что случилось с моим кодом?
Я не понимаю метод, который вы пытаетесь реализовать. Специально здесь: 'x (i) = evstr (fung) + z;' Здесь вы вычисляете 'f (x (i-1)) + x (i-1)', не могли бы вы объяснить этот метод или связать алгоритм? – Daniel
Реальных решений нет: http://www.wolframalpha.com/input/?i=f%28x%29%3Dexp%28x%29%2B3x%5E2 – Daniel
спасибо за ваш комментарий, я использую итерацию с фиксированной точкой, https : //mat.iitm.ac.in/home/sryedida/public_html/caimna/transcendental/iteration%20methods/fixed-point/iteration.html, http://en.wikipedia.org/wiki/Fixed-point_iteration, function x (i) = evst ... означает x (i) = f (z) + z или x (i) = f (x (i-1)) + x (i-1) @ Daniel –