一、最大最小值问题:例1编程:
functionf=myfun(x)
f=[2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304;-x(2)^2-3*x(2)^2;x(1)+3*x(2)-18;-x(1)-x(2);
x(1)+x(2)-8];
> x0=[0.1;0.1];
> [x,fval,maxfval,exitflag,output,lambda]=fminimax(@myfun,x0)
例2编程:到最远销售点的距离尽可能小?
functionf=funmail(x)a=[1 4 3 5 9 12 6 20 17 8];b=[2 10 8 18 1 4 5 10 8 9];i=1:10;
f(i)=abs(x(1)-a(i))+abs(x(2)-b(i));
> x0=[6;6];>lb=[5;5];>ub=[8,8];
> [x,fval,maxfval,exitflag,output,lambda]=fminimax(@funmail,x0lb,ub)
二、多目标规划问题:
例1编程(多目标规划化成多个优化问题):
步骤1:>>c=[2;-3];>a=[3 2;1 1];>b=[12;8];>lb=[0;0];
> [x,fval]=linprog(c,a,b,lb,最优值-18.步骤2:>>c=[-5;-3];>a=[3 2;1 1];>b=[12;8];>lb=[0;0];
> [x,fval]=linprog(c,a,b,lb,最优值-20.步骤3:
functionf=objfun(x)
f=sqrt((2*x(1)-3*x(2)+18)^2+(5*x(1)+3*x(2)+20)^2);
> a=[3 2;1 1];
> b=[12;8];>lb=[0;0];>x0=[0;0];
> [x,fval,exitflag]=fmincon(@objfun,x0,a,b,lb,
例2编程(多目标规划化成最大最小值问题)
三、多维有约束条件最优化问题:
例1编程([x,fval]=fmincon(fun,x0,a,bnonlcon,options)nonlcon非线性%目标函数。
fonctionf=objfun(x)
f=exp(x(1)*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1));
非线性约束条件。
function[c,ceq] =confun(x)
c = 1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];ceq=
> x0=[-1,1];
> options=optimset('algorithm','active-set');
> [x,fval]=fmincon(@objfun,x0confun,options)%
> [x,fval]=fmincon(@objfun,x0confun)%
> x0=[-1,1];>lb=[0,0];>ub=
> options=optimset('algorithm','active-set');
> [x,fval]=fmincon(@objfun,x0lb,ub,@confun)
四、求一元函数零点或根的问题%目标函数。
functionf=funexp(x)f=exp(x)+10*x-2;
> [x,fval,exitflag]=fzero(@funexp,3)
五、非线性方程组的优化解的问题。例1(无参数)
function f=fun21(x)
f=[2*x(1)-x(2)-exp(-x(1));3*x(1)+6*x(2)-exp(-x(2))]
>x0=[-5;4];
> options=optimset('display','iter');
> [x,fval,exitflag,output,jacb]=fsolve(@fun21,x0,options)例2(有参数)
function f=funzb(x)
f=[2*x(1)-x(2)-exp(-a*x(1));3*x(1)+6*x(2)-exp(-a*x(2))]
> a=-1;
>x0=[-5;4];
> options=optimset('display','iter');
x,fval,exitflag,output,jacb]=fsolve(@funzb,x0,options);
一阶导数的微分方程组的数值解function xdot=shier(t,x)
r=1;d=0.5;a=0.1;b=0.02;xdot=[(r-a*x(2)).x(1);(d+b*x(1)).x(2)];
> ts=0:0.1:15;>>x0=[25,2];
> [t,x]=ode45('shier',ts,x0);[t,x],>plot(t,x),grid,gtext('x(t)')gtext('y(t)')pause,> plot(x(:,1),x(:,2)),grid,另一种画图方法:
>>subplot(211);
plot(t,x),grid,gtext('x(t)')gtext('y(t)')subplot(212);
plot(x(:,1),x(:,2)),grid,二次函数交叉项编程。
x1=[0.6 0 0.25 0.
20 0.15 0.05 -0.
15 0.15 0.20 0.
10 0.40 0.45 0.
35 ];x2=[7.25 5.5 7 6.
5 6.75 5.25 5.
25 6 6.5 6.25 7 6.
9 6.8];>x=[x1', x2'];
> y=[9.25 7.5 9.
33 8.28 8.75 7.
87 7.1 8 7.89 8.
15 9.1 8.86 8.
9];>rstool(x,y,'interaction')在图上直接**;在方格中选项,‘linear’‘interaction’‘quadratic’‘pure quadractic’,确定后,在工作窗口差模型残数,残差。
另一种非线性最小二乘法以模型为例:y=(bx)/(a+x)
function y=huaxue(beta,x)y=(beta(1)*x)./beta(2)+x);
> [beta,r,j]=nlinfit(x,y,'huaxue',beta0);
> x=[0.02 0.02 0.
06 0.06 0.11 0.
11 0.22 0.22 0.
56 0.56 1.1 1.
1];>y=[76 47 97 107 123 139 159 152 191 201 207 200];>beta0=[195.802 0.0484];
> [beta,r,j]=nlinfit(x,y,'huaxue',beta0);>betaci=nlparci(beta,r,j)
betaci =
> beta
beta =
> yy=beta(1)*x./(beta(2)+x);>plot(x,y,'^x,yy,'+pause>> nlintool(x,y,'huaxue',beta)
在方格中选项,确定后,在工作窗口查模型残数,残差。
logistic方程的曲线拟合。
> age=[24.5 32 37 42 47 52 57 64.5]';chd=[1 2 3 5 6 5 13 8]';
> total=[10 15 12 15 13 8 17 10]';proport=chd./total;
> [b dev,stats]=glmfit(age,[chd total],'binomial','logit');logitfit=glmval(b,age,'logit');
> plot(age,proport,'*age,logitfit,'r -'xlabel('age');ylabel('proportion of chd')>b,bi= =
5.03820.1050bi =
dev =
> [b2,dev2]=glmfit([age age.^2],[chd total],'binomial','logit');b2,pval=1-chi2cdf(dev-dev2,1)b2 =
pval =
> x2=chi2cdf(dev-dev2,1)x2 =
Matlab1习题
第一章matlab 入门1 习题11.执行下列指令,观察其运算结果,理解其意义 1 12 34 10 2i 5 exp 12 34 6 log 110100 7 prod 12 34 8 a,b min 1020 3040 9 abs 12 34 pi 11 find 1020 3040 40,30...
MATLAB程序作业
1.画出对数和指数函数曲线,并分别加上标题 轴标记和曲线说明 这里可采用多种方法来标注曲线 解 x 0.01 0.1 10 y1 log10 x y2 exp x figure 1 subplot 2,1,1 plot x,y1,k grid on legend ity1 log x title y...
Matlab 3 MATLAB程序设计
辽宁工程技术大学上机实验报告。1,已知函数计算。function y f x if x 1 x 0 y x 1elseif x 0 x 1 y 1else x 1 x 2 y x 2end f 1 y ans f 0.5 y ans f 1.5 ans y ans 2 用for end循环语句求 1...