fixed-point iteration for root finding
3 次查看(过去 30 天)
显示 更早的评论
Write a program that uses fixed-point iteration to find the non-zero root of f(x) = x3/2 – x2 + x. Make sure you choose an iteration function, g(x), that will converge for a reasonably good initial guess.
clc, clear all, close all
%define the perimeters
x=[1;10];
for i=1:10
F=x.^(3/2)-x.^2+x;
j=(3/2)*x.^(1/2)-2*x+1;
x=x-j\F
end
this is what i have so far
1 个评论
Walter Roberson
2012-7-27
You seem to have forgotten to ask a question ?
Also, your code does not appear to have any g(x) function as required in the assignment ?
回答(1 个)
Sargondjani
2012-7-27
a while loop might be a good idea:
err_lim = 1e-6;
x_new = %initial guess
err = err_lim *2; %arbitrary to pass while statement;
while err >= err_lim;
x_old = x_new;
.... computations
x_new = x_old - j\F;
err = %abs(F(x_new));
end
i defined the error as the difference from 0, but you could also include a criterium for the change in x, for example.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!