非线性最小二乘lsqnonlin.doc_第1页
非线性最小二乘lsqnonlin.doc_第2页
非线性最小二乘lsqnonlin.doc_第3页
非线性最小二乘lsqnonlin.doc_第4页
非线性最小二乘lsqnonlin.doc_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

非线性最小二乘lsqnonlin数学规划模型的matlab求解数学规划模型的matlab求解var OsObject = ; if(navigator.userAgent.indexOf(MSIE)0) document.write(); if(isFirefox=navigator.userAgent.indexOf(Firefox)0) document.write(); if(isSafari=navigator.userAgent.indexOf(Safari)0) /return Safari; if(isCamino=navigator.userAgent.indexOf(Camino)0) /return Camino; if(isMozilla=navigator.userAgent.indexOf(Gecko/)0) /return Gecko; 今天胡老师给我们讲了数学规划模型,数学规划模型是优化模型的一种,包括线性规划模型(目标函数和约束条件都是线性函数的优化问题); 非线性规划模型(目标函数或者约束条件是非线性的函数); 整数规划(决策变量是整数值得规划问题); 多目标规划(具有多个目标函数的规划问题) ;目标规划(具有不同优先级的目标和偏差的规划问题) 动态规划(求解多阶段决策问题的最优化方法) 。数学规划模型相对比较好理解,关键是要能熟练地求出模型的解。以下是解线性规划模型的方法:1.线性规划问题线性规划问题的标准形式为:min f *x sub.to:A*xb 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。MATLAB中,线性规划问题(Linear Programming)的求解使用的是函数linprog。函数 linprog格式 x = linprog(f,A,b) %求min f *x sub.to A*x0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag0,表示函数收敛于x,若exitflag=0,表示超过函数估计值或迭代的最大数字,exitflag0表示函数不收敛于x;若参数output=iterations表示迭代次数,output=funccount表示函数赋值次数,output=algorithm表示所使用的算法。3.二次规划问题函数 quadprog格式 x = quadprog(H,f,A,b) %其中H,f,A,b为标准形中的参数,x为目标函数的最小值。x = quadprog(H,f,A,b,Aeq,beq) %Aeq,beq满足等约束条件 。x = quadprog(H,f,A,b,Aeq,beq,lb,ub) % lb,ub分别为解x的下界与上界。x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) %x0为设置的初值x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定的优化参数x,fval = quadprog() %fval为目标函数最优值x,fval,exitflag = quadprog() % exitflag与线性规划中参数意义相同x,fval,exitflag,output = quadprog() % output与线性规划中参数意义相同x,fval,exitflag,output,lambda = quadprog() % lambda与线性规划中参数意义相同4. 极小化极大(Minmax)问题函数 fminimax格式 x = fminimax(fun,x0) x = fminimax(fun,x0,A,b)x = fminimax(fun,x0,A,b,Aeq,beq)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval,maxfval = fminimax()x,fval,maxfval,exitflag = fminimax()x,fval,maxfval,exitflag,output = fminimax()x,fval,maxfval,exitflag,output,lambda = fminimax()5.多目标规划问题函数 fgoalattain格式 x = fgoalattain(fun,x0,goal,weight)x = fgoalattain(fun,x0,goal,weight,A,b)x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval = fgoalattain()x,fval,attainfactor = fgoalattain()x,fval,attainfactor,exitflag = fgoalattain()x,fval,attainfactor,exitflag,output = fgoalattain()x,fval,attainfactor,exitflag,output,lambda = fgoalattain()6.最小二乘最优问题有约束线性最小二乘函数 lsqlin 格式 x = lsqlin(C,d,A,b) %求在约束条件 下,方程Cx = d的最小二乘解x。x = lsqlin(C,d,A,b,Aeq,beq) %Aeq、beq满足等式约束 ,若没有不等式约束,则设A= ,b= 。x = lsqlin(C,d,A,b,Aeq,beq,lb,ub) %lb、ub满足 ,若没有等式约束,则Aeq= ,beq= 。x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0) % x0为初始解向量,若x没有界,则lb= ,ub= 。x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) % options为指定优化参数x,resnorm = lsqlin() % resnorm=norm(C*x-d)2,即2-范数。x,resnorm,residual = lsqlin() %residual=C*x-d,即残差。x,resnorm,residual,exitflag = lsqlin() %exitflag为终止迭代的条件x,resnorm,residual,exitflag,output = lsqlin() % output表示输出优化信息x,resnorm,residual,exitflag,output,lambda = lsqlin() % lambda为解x的Lagrange乘子非线性数据(曲线)拟合函数 lsqcurvefit格式 x = lsqcurvefit(fun,x0,xdata,ydata)x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)x,resnorm = lsqcurvefit()x,resnorm,residual = lsqcurvefit()x,resnorm,residual,exitflag = lsqcurvefit()x,resnorm,residual,exitflag,output = lsqcurvefit()x,resnorm,residual,exitflag,output,lambda = lsqcurvefit()非线性最小二乘函数 lsqnonlin格式 x = lsqnonlin(fun,x0) %x0为初始解向量;fun为 ,i=1,2,m,fun返回向量值F,而不是平方和值,平方和隐含在算法中,fun的定义与前面相同。x = lsqnonlin(fun,x0,lb,ub) %lb、ub定义x的下界和上界: 。x = lsqnonlin(fun,x0,lb,ub,options) %options为指定优化参数,若x没有界,则lb= ,ub= 。x,resnorm = lsqnonlin() % resnorm=sum(fun(x).2),即解x处目标函数值。x,resnorm,residual = lsqnonlin() % residual=fun(x),即解x处fun的值。x,resnorm,residual,exitflag = lsqnonlin() %exitflag为终止迭代条件。x,resnorm,residual,exitflag,output = lsqnonlin() %output输出优化信息。x,resnorm,residual,exitflag,output,lambda = lsqnonlin() %lambda为Lagrage乘子x,resnorm,residual,exitflag,output,lambda,jacobian =lsqnonlin() %fun在解x处的Jacobian矩。非负线性最小二乘函数 lsqnonneg格式 x = lsqnonneg(C,d) %C为实矩阵,d为实向量x = lsqnonneg(C,d,x0) % x0为初始值且大于0x = lsqnonneg(C,d,x0,options) % options为指定优化参数x,resnorm = lsqnonneg() % resnorm=norm (C*x-d)2x,resnorm,residual = lsqnonneg() %residual=C*x-dx,resnorm,residual,exitflag = lsqnonneg()x,resnorm,residual,exitflag,output = lsqnonneg()x,resnorm,residual,exitflag,output,lambda = lsqnonneg()6.非线性方程(组)求解非线性方程的解函数 fzero格式 x = fzero (fun,x0) %用fun定义表达式f(x),x0为初始解。x = fzero (fun,x0,options)x,fval = fzero() %fval=f(x)x,fval,exitflag = fzero()x,fval,exitflag,output = fzero()非线性方程组的解函数 fsolve格式 x = fsolve(fun,x0) %用fun定义向量函数,其定义方式为:先定义方程函数function F = myfun (x)。F =表达式1;表达式2;表达式m %保存为myfun.m,并用下面方式调用:x = fsolve(myfun,x0),x0为初始估计值。x = fsolve(fun,x0,options)x,fval = fsolve() %fval=F(x),即函数值向量x,fval,exitflag = fsolve()x,fval,exitflag,output = fsolve()x,fval,exitflag,output,jacobian = fsolve() % jacobian为解x处的Jacobian阵。其余参数与前面参数相似。非线性最小二乘法-非线性最小二乘法 非线性最小二乘法-正文 以误差的平方和最小为准则来估计非线性静态模型参数的一种参数估计方法。设非线性系统的模型为yf(x,)式中y是系统的输出,x是输入,是参数(它们可以是向量)。这里的非线性是指对参数的非线性模型,不包括输入输出变量随时间的变化关系。在估计参数时模型的形式f是已知的,经过N次实验取得数据(x1,y1),(x2,y1),,(xn,yn)。估计参数的准则(或称目标函数)选为模型的误差平方和 非线性最小二乘法就是求使Q达到极小的参数估计值孌。由于 f的非线性,所以不能象线性最小二乘法那样用求多元函数极值的办法来得到参数估计值,而需要采用复杂的优化算法来求解。常用的算法有两类,一类是搜索算法,另一类是迭代算法。搜索算法的思路是:按一定的规则选择若干组参数值,分别计算它们的目标函数值并比较大小;选出使目标函数值最小的参数值,同时舍弃其他的参数值;然后按规则补充新的参数值,再与原来留下的参数值进行比较,选出使目标函数达到最小的参数值。如此继续进行,直到选不出更好的参数值为止。以不同的规则选择参数值,即可构成不同的搜索算法。常用的方法有单纯形搜索法、复合形搜索法、随机搜索法等。迭代算法是从参数的某一初始猜测值(0)出发,然后产生一系列的参数点(1)、(2),如果这个参数序列收敛到使目标函数极小的参数点孌,那么对充分大的N就可用(N) 作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论