Why am I getting this error and how can I fix it?
古いコメントを表示
*the following is saved as a file/script f1.m
function F = f1(x)
F(5) = x(5)^3+2*x(-1)^2-10;
F(-1) = x(5)*x(-1)-2;
*when I type the following in the command window,
x0 = [1 1];
options=optimset('Display','iter');
x = fsolve('f1',x0,options)
*But I get the following error
??? Attempted to access x(5); index out of bounds because
numel(x)=2.
Error in ==> f1 at 9
F(5) = x(5)^3+4*x(-1)^2-10;
Error in ==> fsolve at 254
fuser = feval(funfcn{3},x,varargin{:});
Caused by:
Failure in initial user-supplied objective function
evaluation. FSOLVE cannot continue.
-- * Any help at all is much appericated, thank you.
採用された回答
その他の回答 (1 件)
Walter Roberson
2013 年 9 月 29 日
編集済み: Walter Roberson
2013 年 9 月 29 日
1 投票
You set x0 to [1 1], so a vector of length 2 will be passed in to f1. But in f1, you expect the vector to be length 5.
You are also going to have problems because your code includes x(-1) which is a request to access location negative 1 of the array "x". Arrays must be indexed by non-negative integers.
Notice too that you assign your outputs to F(5) and F(-1) . fzero() expects a single scalar as output.
Are you possibly trying to code a recursion equation ?
4 件のコメント
Sabbir
2013 年 9 月 29 日
Walter Roberson
2013 年 9 月 29 日
Please write out the equations you are trying to solve and indicate which parts are known and which parts are unknown.
Sabbir
2013 年 9 月 29 日
カテゴリ
ヘルプ センター および File Exchange で Mathematics and Optimization についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!