早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请Matlab高手看看我的程序问题出在哪用Levenberg-Marquardt法进行非线性拟合,运行发现前后维数不匹配,方程是D=a*t^b,其中D和b的数据在开头引用了,syms a b y x real;f=a*(x^b);Jsym=jacobian(f,[a b])A=textread('dat

题目详情
请Matlab高手看看我的程序问题出在哪
用Levenberg-Marquardt法进行非线性拟合,运行发现前后维数不匹配,方程是D=a*t^b,其中D和b的数据在开头引用了,
syms a b y x real;
f=a*(x^b);
Jsym=jacobian(f,[a b])
A=textread('data.txt');
data_1=A(1:100,1:1);
obs_1=A(1:100,2:2);
a0=10; b0=0.5;
Ndata=length(obs_1); %the number of data
Nparams=2; %dimension of parameters
n_iters=50;
lamda=0.01; %fudge factor
updateJ=1; %variable assignment
a_est=a0;
b_est=b0;
for it=1:n_iters
if updateJ==1
J=zeros(Ndata,Nparams);
for i=1:length(data_1)
J(i,:)=[(data_1(i)^b_est)+a_est*data_1(i)*(data_1(i)^b_est)]; %compute Jacobian Matrix
end
y_est = a_est*(data_1^b_est);
d=obs_1-y_est; %compute the error
H=J'*J; %compute Hessian Matrix
if it==1 % if it is the first iteration,calculate the error
e=dot(d,d);
end
end
H_lm=H+(lamda*eye(Nparams,Nparams));
dp=inv(H)*(J'*d(:)); %compute the step
g = J'*d(:);
a_lm=a_est+dp(1);
b_lm=b_est+dp(2);
y_est_lm = a_lm*(data_1^b_lm); %compute the new y and error corresponding to the estimate value
d_lm=obs_1-y_est_lm;
e_lm=dot(d_lm,d_lm);
if e_lm
▼优质解答
答案和解析
你没有正确使用点乘,y_est = a_est*(data_1^b_est)应改为y_est = a_est*(data_1.^b_est);y_est_lm = a_lm*(data_1^b_lm)改为y_est_lm = a_lm*(data_1.^b_lm)就OK了.中间一定要加“.”.
看了 请Matlab高手看看我的程...的网友还看了以下:

阅读《看科技的奥运》,回答问题。看科技的奥运朱言齐明①今天,奥运竞技场已经成了现代尖端技术的展示舞  2020-05-13 …

有一条2米长的传送带在运行5-6小时后为什么老是跑偏单根传送带是1CM宽,使用的是腰鼓形幅轮.间断  2020-05-17 …

为什么说运动和静止相互依赖?看马哲时出现的问题——运动是物质的根本属性,是绝对的、无条件的;而静止  2020-06-18 …

问一道质点运动学的问题起重机用轻钢丝吊运质量为m的物体时正以速率v匀速下降,此时起重机突然刹车,因  2020-06-19 …

通过随机询问72名不同性别的大学生在购买食物时是否看营养说明,得到如下列联表:性别与读营养说明列联表  2020-11-02 …

下面这段话反映了作者一种冲动的感情、“冰冷”的心态、低沉的情绪。请你写一段话鼓励他理性地看问题。要求  2020-11-21 …

蹦极运动员将一根长绳系在身上,弹性长绳的另一端固定在跳台上。运动员从跳台上跳下,直到最低点,然后在弹  2020-11-22 …

线性代数设V是N维向量构成的非空集合,若V对于向量的线性运算封闭,则称集合V是Rn的子空间,称为向量  2020-12-01 …

植物关于生长素极性运输以及非极性运输的问题.极性运输,是纵向运输,需要消耗ATP,原因是由于只有形态  2020-12-15 …

2010年11月12日至27日,第十六届亚洲运动会在广州隆重举办,这是中国继2008年北京奥运会之后  2020-12-17 …