How do I iterate f(x)

1 回表示 (過去 30 日間)
LILIA VERGARA
LILIA VERGARA 2023 年 1 月 26 日
回答済み: Alan Weiss 2023 年 1 月 27 日
using x^(0) = 0 and x^(1) = 5 as inital condition
I am trying to iterate f(x) up to 60 iterations or till the estimated relative error is less than 10^-6
note that f(x) = e^x - 2 - x - (x^2 / 2)
The code I have startead with has been giving me errors:
f = @(x)exp(x) - 2 - x - x.^2./2
f = function_handle with value:
@(x)exp(x)-2-x-x.^2./2
x_true = fzero(f,[0.01 0.1],optimset("Display","iter"));
Error using fzero
Function values at the interval endpoints must differ in sign.
  2 件のコメント
Torsten
Torsten 2023 年 1 月 26 日
What do you mean by
I am trying to iterate f(x) up to 60 iterations or till the estimated relative error is less than 10^-6
?
Walter Roberson
Walter Roberson 2023 年 1 月 26 日
f = @(x)exp(x) - 2 - x - x.^2./2
f = function_handle with value:
@(x)exp(x)-2-x-x.^2./2
fplot(f, [0.01 0.1])
There is no zero of the function within that range.

サインインしてコメントする。

回答 (1 件)

Alan Weiss
Alan Weiss 2023 年 1 月 27 日
Is this what you are looking for?
f = @(x)exp(x) - 2 - x - x.^2./2;
t = linspace(0,5);
plot(t,f(t))
OK, there is a root in that interval. Find it.
[x,fval,eflag,output] = fzero(f,[0 5])
x = 1.5681
fval = 2.2204e-16
eflag = 1
output = struct with fields:
intervaliterations: 0 iterations: 11 funcCount: 13 algorithm: 'bisection, interpolation' message: 'Zero found in the interval [0, 5]'
Number of iterations is not too high.
Alan Weiss
MATLAB mathematical toolbox documentation

カテゴリ

Help Center および File ExchangeNumerical Integration and Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by