MATLAB Answers

1

fixed-point iteration for root finding

libin danial さんによって質問されました 2012 年 7 月 27 日
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 ?

サインイン to comment.

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 件のコメント

サインイン to comment.



Translated by