cpf933 发表于 2008-6-5 11:56

代码已出,最速下降法参数拟合,求改

<p></p><p>tic</p><p>clc;clear;<br/>syms x1 x2 x3 x4<br/>t=;<br/>p=;<br/>i=;<br/>for m=1:8<br/>    for n=1:9<br/>F(m,n)=(x1.*(1+x2.*log(p(m,1)))/(t(1,n)+x3).^x4-i(m,n)).^2;<br/>    end<br/>end<br/>Q=sum(sum(F))<br/>dQ1=diff(Q,x1);dQ2=diff(Q,x2);dQ3=diff(Q,x3);dQ4=diff(Q,x4);%对函数进行求一阶导<br/>DQ=;<br/>dQ11=diff(dQ1,x1);dQ12=diff(dQ1,x2);dQ13=diff(dQ1,x3);dQ14=diff(dQ1,x4);<br/>dQ21=diff(dQ2,x1);dQ22=diff(dQ2,x2);dQ23=diff(dQ2,x3);dQ24=diff(dQ2,x4);<br/>dQ31=diff(dQ3,x1);dQ32=diff(dQ3,x2);dQ33=diff(dQ3,x3);dQ34=diff(dQ3,x4);<br/>dQ41=diff(dQ4,x1);dQ42=diff(dQ4,x2);dQ43=diff(dQ4,x3);dQ44=diff(dQ4,x4);<br/>%这里进行求函数二阶导数<br/>DQQ=;<br/>%海赛矩阵<br/>disp('x1 x2 x3 x4 分别代表 A c b n 取初值')<br/>x=input('请输入x1 x2 x3 x4的初始值为x=,x=:');<br/>x=x';<br/>%矩阵转置<br/>E=input('请输入你所要求的最速下降法的精度数E=:');<br/>%这里进行一些相关初始值的计算<br/>T=[];<br/>d=T;<br/>TH=[];<br/>%给d,t赋空矩阵<br/>T(:,1)=subs(DQ,,)<br/>% T(:,1)指数组的第一列 res=subs(es,old,new)用new置换es中的old后产生res<br/>TH=subs(DQQ,,)<br/>GG(1)=subs(Q,,)<br/>%这里进行一些相关初始值的计算<br/>disp('由于你输入的初始值,这里将开始最速下降法搜寻:');<br/>% 显示内容<br/>for k=1:1000<br/>    d(:,1)=-T(:,1) %d(k)是x(k+1)=x(k)+R(k)*d(k)<br/>    %d(k)为计算搜索方向即负梯度方向<br/>    R(1)=(T(:,1)'*T(:,1))/(T(:,1)'*TH*T(:,1))<br/>    %R(k)为近似最佳步长<br/>    TH=subs(DQQ,,)<br/>    T(:,k)=subs(DQ,,)<br/>    d(:,k+1)=-T(:,k)<br/>    R(k)=(T(:,k)'*T(:,k))/(T(:,k)'*TH*T(:,k))<br/>    GG(k)=subs(Q,,)<br/>    %while k&gt;=2<br/>    %while GG(k)&gt;=GG(k-1)<br/>   %   R(k)=R(k)/2;<br/>    %end<br/>   % end<br/> if norm(T(:,k))&lt;E     %norm() 范-2误差<br/>            disp('                             ');<br/>            disp('QX就是最速下降法的解  ')<br/>            QX=subs(Q,,)<br/>            disp('                   ');<br/>            disp('对应的x值为   ');<br/>            x(:,k)<br/>            break;<br/>  end<br/> x(:,k+1)=x(:,k)+R(k)*d(:,k)<br/>
                <br/>end<br/>
                <br/>toc</p><p>给为兄弟姐妹,谁知道我编的这个哪里错了啊?</p><p>TH=subs(DQQ,,) 这句运行起来时间非常长。</p><p>有谁知道我这应该怎么改啊,希望好心人帮忙一下</p>

dugumen 发表于 2011-1-28 01:35

{:3_50:}{:3_50:}{:3_50:}
页: [1]
查看完整版本: 代码已出,最速下降法参数拟合,求改