数学建模社区-数学中国
标题:
急求问题解答
[打印本页]
作者:
lyyy
时间:
2011-4-23 14:34
标题:
急求问题解答
问题:
麻烦高手帮忙看看这个程序问题出在哪?谢谢
采用最小二乘拟合进行参数估计:
数据是:
t yield
20 0.3558
40 0.4922
60 0.6034
80 0.6129
100 0.7248
120 0.6714
%%%%%%%%%%%%%%%%
%fun11.m函数的建立
%a(1)=N,a(2)=A;
function E=fun11(a,t,yield)
t=t(
;
yield=yield(
;
Y=((a(1)/a(2)*0.01)^0.5)*(1/((tan((1+((a(1)/a(2)*0.01)^0.5)^2)/exp(2*a(1)*t)))^0.5)-1/(tan((a(1)/a(2)*0.01)^0.5)));
E=sum((yield-Y).^2);
%%%%%%%%%%%%%%%%%%%%%%%
%%程序为
t=z(:,1);
yield=z(:,2);
a0=[1 1]';
t=z(:,1);
yield=z(:,2);
a0=[1 1]';
options=optimset('fminsearch');
options.TolX=0.01;
options.Display='off';
a=fminsearch(@fun11,a0,options,t,yield);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Malab报错为:
??? Error using ==> mpower
Matrix must be square.
Error in ==> fun11 at 6
Y=((a(1)/a(2)*0.01)^0.5)*(1/((tan((1+((a(1)/a(2)*0.01)^0.5)^2)/exp(2*a(1)*t)))^0.5)-1/(tan((a(1)/a(2)*0.01)^0.5)));
Error in ==> fminsearch at 175
fv(:,1) = funfcn(x,varargin{:});
是因为函数构建上的问题吗?感觉exp后的函数是一个标量与矩阵的相乘,应该没什么太大的问题啊?是使用的初值的问题吗?初值使用其它软件带入的方法未能计算出来,所以随意给出的,如果要忽略初值问题该用什么方法估计好点呢?是迭代吗?谢谢高手指点???
作者:
水木年华zzu
时间:
2011-4-26 12:57
矩阵必须是方阵,检查下
作者:
lyyy
时间:
2011-4-28 20:05
看了一下,还是不知熬这个方阵的错误怎么处理,看了一下不是程序的问题,应该是tan函数的问题吧。目前已经知道怎么处理了,谢谢版主!!
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5