资源描述:
《非线性最小二乘数据拟合高斯牛顿法复习课程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、非线性最小二乘数据拟合高斯牛顿法输入x=[502513630.5]’;y=[1.51130557088];b0=[11];%初始值[b,r,j]=nlinfit(x,y,′ep′,b0);b[yp,d]=nlperdci(′ep′,x,b,r,j);ci=nlparci(b,r,j)%输出预测值、残差及置信区间nlintool(x,y,′ep′,b0);%绘制非线性拟合曲线图3.14plot(x,r,′――′)%绘残差曲结果得b=91.41580.0855ci=90.208592.62310.08280.0883移动垂
2、直于x轴的虚线可以显示y随x的变化。数学模型为y=91.4158e-0.0855x例2已知浮煤累计灰分及产率为x和y,试进行非线性拟合。x=[3.467.339.4710.4811.1911.7912.7820.50];y=[10.6956.8476.8982.1584.7086.3288.45100];现采用含有双曲正切的函数拟合。f=100*(b(1)+b(2)*x+b(2)*b(3)*tanh(b(4)*(x-b(5))));输入x=x’;b0=[0.20-0.4-0.15];%初始值[b,r,j]=nlinfi
3、t(x,y,′mf′,b0);[yp,d]=nlpredci(′mf′,x,b,r,j);nlintool(x,y,′mf′,b0)结果b=0.34140.0136-0.3797-0.33656.2948即y=100*(0.3414+0.0136x-0.3797tanh(-0.3365(x-6.2948)))由计算出的yy可知,拟合效果很好。第三讲线性规划线性规划问题是目标函数和约束条件均为线性函数的问题minsub.to:其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。其它形式的线性规划问题都可经过适当变
4、换化为此标准形式。补充知识:解方程或方程组用solve符号解代数方程solve(′eq1′,′eq2′,′eqn′,′var1,var2,…,varn′)eqn为符与方程,varn为符号变量。解代数方程ax2+bx+c=0的根。symsabcxg=a*x^2+b*x+c;s=solve(g)s=[1/2/a*(-g+(g^2-4*2*c)^(1/2))][1/2/a*(-g+(g^2+4*2*c)^(1/2))]类似地,solve(′2*x^2+6*x+4′)得ans=[-2][-1]求解x2+xy+y=3,x为参数。
5、solve(′x^2+x*y+y=3′,′x′)ans=[-1/2*y+1/2*(y^2-4*y+12)^(1/2)][-1/2*y-1/2*(y^2-4*y+12)^(1/2)]解au2+υ2=0,u-υ=1。[u,v]=solve(′a*u^2+v^2=0′,′u-v=1′)u=[1/2/(a+1)*(-2*a+2*(-a)^(1/2))+1][1/2/(a+1)*(-2*a-2*(-a)^(1/2))+1]v=[1/2/(a+1)8(-2*a+2*(-a)^(1/2))][1/2/(a+1)8(-2*a-2*(-
6、a)^(1/2))]2解线性方程组MATLAB用函数linsolve求解线性方程组Ax=b,要求A的列数等于b的行数;也可用矩阵除等方法求解。linsolve的语法格式为x=linsolve(A,b)例题解线性方程组a=[121;223;-1-30];%rank(a)=3,有惟一解b=[032]’;x=linsolve(a,b)x=1-113非线性方程非线性方程的标准形式为f(x)=0函数fzero格式x=fzero(fun,x0)%用fun定义表达式f(x),x0为初始解。x=fzero(fun,x0,options
7、)[x,fval]=fzero(…)%fval=f(x)[x,fval,exitflag]=fzero(…)[x,fval,exitflag,output]=fzero(…)说明该函数采用数值解求方程f(x)=0的根。非线性方程解例题求x^3-2*x-5=0的根解:>>fun='x^3-2*x-5';>>z=fzero(fun,2)%初始估计值为2结果为z=2.0946非线性方程组求解非线性方程组的标准形式为:F(x)=0其中:x为向量,F(x)为函数向量。函数fsolve格式x=fsolve(fun,x0)%用fun
8、定义向量函数,其定义方式为:先定义方程函数functionF=myfun(x)。F=[表达式1;表达式2;…表达式m]%保存为myfun.m,并用下面方式调用:x=fsolve(@myfun,x0),x0为初始估计值。x=fsolve(fun,x0,options)[x,fval]=fsolve(…)%fval=F(x),即函数值