作者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