the question is: Create a function which finds the root of an equation numerically by using the following recursive formula :

1 次查看(过去 30 天)
Xn+1=Xn-f(Xn)/g(Xn) for n-1,2,3,...
where g(Xn)=f(Xn+f(Xn))-f(Xn)/f(Xn). This iterative procedure must stop when the absolute difference between Xn and Xn+1 is less than a given tolerance epsilon. The funtion must accept as inputs a scalar function f, an initial number 'x' and a positive number epsilon to terminate the procedure. Hence use this numerical technique to find the root of the equation e^x-x^2=0.
HELP PLEASE :(
syms x
f=exp(x)-x^2;
y(1)=1;
if x(n)-x(n+1)<0.25;
for n=0:1:inf;
x(k+1)=yk-subs(f,x,yk)/subs(g(xn),x,yk);
where g(xn)=(f(xn+f(xn))-f(xn))/(f(xn))
end
end
  4 个评论
Walter Roberson
Walter Roberson 2013-5-10
syms x g(xn) f(x)
f(x) = exp(x)-x^2;
g(xn) = (f(xn+f(xn))-f(xn))/(f(xn));
That takes care of the "where" part.
Note: this requires a fairly recent version of MATLAB, R2011b or later.

请先登录,再进行评论。

采纳的回答

Friedrich
Friedrich 2013-5-10
Hi,
why using symblic math when doing it nurmerically anyway? You can do this with plain MATLAB right away:
f = @(x) exp(x) - x^2;
g = @(x) (f(x + f(x)) - f(x))/f(x);
x(1) = 0;
x(2) = x(1) - f(x(1))/g(x(1));
n = 2;
while abs(x(n) - x(n-1)) > eps
n = n + 1;
x(n) = x(n-1) - f(x(n-1))/g(x(n-1));
end

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by