作者joe7078 (Science & Truth)
看板MATLAB
標題[問題] 迴圈內的答案無法...
時間Fri Oct 19 04:31:05 2012
有個小問題 煩請高手解答 ORZ
___________________________________________________________
format short e;
%一些初始參數~ 不用鳥他@@
wa=2997.6090; wb=2998.0895; wc=2998.0111;
w1=2973.5256; w2=2998.0304; w3=3003.9367;
ga1=1-(wa/w1)^2; gb1=1-(wb/w1)^2; gc1=1-(wc/w1)^2;
ga2=1-(wa/w2)^2; gb2=1-(wb/w2)^2; gc2=1-(wc/w2)^2;
ga3=1-(wa/w3)^2; gb3=1-(wb/w3)^2; gc3=1-(wc/w3)^2;
M1=ga1*gb1*gc1 ; M2=ga2*gb2*gc2 ; M3=ga3*gb3*gc3 ;
% Solutions:
options = optimset('MaxFunEvals',1e+18);
options = optimset('TolFun',1e-50,'TolX',1e-50);
for i=1:50;
a(1)=0; b(1)=0; c(1)=0;
guess=[a(i) b(i) c(i)],
f=@(x)([ga1*x(1)^2+gb1*x(2)^2+gc1*x(3)^2-2*x(1)*x(2)*x(3)-M1;ga2*x(1)^2+gb2*x(2)^2+gc2*x(3)^2-2*x(1)*x(2)*x(3)-M2;ga3*x(1)^2+gb3*x(2)^2+gc3*x(3)^2-2*x(1)*x(2)*x(3)-M3]);
[x,fval,exitflag,output]=fsolve(f,guess,options),
[x]=[a(i+1) b(i+1) c(i+1)];
end
___________________________________________________________________
這樣算是希望前一次fsolve解完的答案可以當作下一次的猜值, 看看會不會變準.
我想問的是 當我運行完了以後 出現:
Attempted to access a(2); index out of bounds because numel(a)=1.
fsolve算出來的解有三個, 但為什麼沒辦法指定x到新的參數呢?
~~~崩潰~~~
拜託哩 @@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.50.188
1F:推 Gwaewluin:你的abc三個變數是什麼?你只有設a(1)是多少 10/19 11:01
2F:→ Gwaewluin:訊息是跟你說這個a沒有a(2) 10/19 11:01
3F:→ joe7078:我是想把fsolve算出來的x值(3個)存到 a b c 10/19 13:41
4F:→ joe7078:然後讓這組abc當做下一圈裡fsolve的初始猜值 10/19 13:42
5F:→ joe7078:只是不知道這樣寫為什麼不行@@ 10/19 13:44