📄 chap6.bas
字号:
Attribute VB_Name = "chap6"
Public Sub PutOnClipboard(str As Variant)
Dim MyDataObj As New DataObject
MyDataObj.SetText Format(str)
MyDataObj.PutInClipboard
End Sub
Sub f1()
CR = Chr(13) + Chr(10)
PutOnClipboard ("ezplot('exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5',[0 5])" + CR + "hold on, line([0,5],[0,0])")
End Sub
Sub f2()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms x; t=3.5203; " + CR + "vpa(exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5)")
End Sub
Sub f3()
PutOnClipboard ("ezplot('x^2*exp(-x*y^2/2)+exp(-x/2)*sin(x*y)')")
End Sub
Sub f4()
CR = Chr(13) + Chr(10)
PutOnClipboard ("hold on" + CR + "ezplot('y^2 *cos(y+x^2) +x^2*exp(x+y)')")
End Sub
Sub f5()
CR = Chr(13) + Chr(10)
PutOnClipboard ("ezplot('x^2+y^2-1'); hold on" + CR + "ezplot('0.75*x^3-y+0.9')")
End Sub
Sub f6()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms x y;" + CR + "[x,y]=solve('x^2+y^2-1=0','75*x^3/100-y+9/10=0')")
End Sub
Sub f7()
PutOnClipboard ("[eval('x.^2+y.^2-1') eval('75*x.^3/100-y+9/10')]")
End Sub
Sub f8()
PutOnClipboard ("[x,y,z]=solve('x+3*y^3+2*z^2=1/2','x^2+3*y+z^3=2','x^3+2*z+2*y^2=2/4')")
End Sub
Sub f9()
CR = Chr(13) + Chr(10)
PutOnClipboard ("err=[x+3*y.^3+2*z.^2-1/2, x.^2+3*y+z.^3-2, x.^3+2*z+2*y.^2-2/4];" + CR + "norm(double(eval(err)))")
End Sub
Sub f10()
CR = Chr(13) + Chr(10)
PutOnClipboard ("[x,y,z]=solve('x+3*y^3+2*z^2=1/2','x^2+3*y+z^3=2','x^3+2*z*y^2=2/4');" + CR + "err=[x+3*y.^3+2*z.^2-1/2, x.^2+3*y+z.^3-2, x.^3+2*z.*y.^2-2/4];" + CR + "norm(double(eval(err)))")
End Sub
Sub f11()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms x y;" + CR + "[x,y]=solve('x^2/2+x+3/2+2/y+5/(2*y^2)+3/x^3=0',..." + CR + "'y/2+3/(2*x)+1/x^4+5*y^4','x,y');" + CR + "size(x)")
End Sub
Sub f12()
CR = Chr(13) + Chr(10)
PutOnClipboard ("err=[x.^2/2+x+3/2+2./y+5./(2*y.^2)+3./x.^3,y/2+3./(2*x)+1./x.^4+5*y.^4];" + CR + "norm(double(eval(err)))")
End Sub
Sub f13()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms a b x y; " + CR + "[x,y]=solve('x^2+a*x^2+6*b+3*y^2=0','y=a+(x+3)','x,y')")
End Sub
Sub f14()
CR = Chr(13) + Chr(10)
PutOnClipboard ("y=[]; xx=0:.05:10; x0=0; h=optimset; h.Display='off';" + CR + "for x=xx" + CR + "f=inline(['w.*exp(w)-' num2str(x)],'w');" + CR + "y1=fsolve(f,x0,h); x0=y1; y=[y,y1];" + CR + "end" + CR + "plot(xx,y)")
End Sub
Sub f15()
PutOnClipboard ("y0=lambertw(xx); plot(xx,yy)")
End Sub
Sub f16()
CR = Chr(13) + Chr(10)
PutOnClipboard ("OPT=optimset; OPT.LargeScale='off';" + CR + "[x,Y,c,d] = fsolve('my2deq',[1; 2],OPT),")
End Sub
Sub f17()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=inline('[p(1)*p(1)+p(2)*p(2)-1; 0.75*p(1)^3-p(2)+0.9]','p');" + CR + "[x,Y] = fsolve(f,[1; 2],OPT)")
End Sub
Sub f18()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=@(p)[p(1)*p(1)+p(2)*p(2)-1; 0.75*p(1)^3-p(2)+0.9]" + CR + "[x,Y] = fsolve(f,[1; 2],OPT)")
End Sub
Sub f19()
PutOnClipboard ("[x,Y,c,d]=fsolve(f,[-1,0]',OPT); x, Y, kk=d.funcCount")
End Sub
Sub f20()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms t x; " + CR + "solve(exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5)")
End Sub
Sub f21()
CR = Chr(13) + Chr(10)
PutOnClipboard ("y=inline('exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5','t');" + CR + "ff=optimset; ff.Display='iter'; " + CR + "[t,f]=fsolve(y,3.5203,ff)")
End Sub
Sub f22()
CR = Chr(13) + Chr(10)
PutOnClipboard ("ff=optimset;" + CR + " ff.TolX=1e-16; ff.TolFun=1e-30;ff.Display='iter'; " + CR + "[t,f]=fsolve(y,3.5203,ff)")
End Sub
Sub f23()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms t; " + CR + " y=exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5;" + CR + " y1=diff(y,t);ezplot(y1,[0,4])")
End Sub
Sub f24()
PutOnClipboard ("t0=solve(y1)")
End Sub
Sub f25()
PutOnClipboard ("y2=diff(y1); b=subs(y2,t,t0)")
End Sub
Sub f26()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=inline('(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-x(1)*x(2))','x');" + CR + "x0=[0; 0]; ff=optimset; ff.Display='iter';" + CR + "x=fminsearch(f,x0,ff)")
End Sub
Sub f27()
PutOnClipboard ("x=fminunc(f,[0;.0],ff)")
End Sub
Sub f28()
CR = Chr(13) + Chr(10)
PutOnClipboard ("xx=[2 0.2401 -0.1398 0.2168 0.3355 0.5514 0.6129 0.6111" + CR + "1 1.0502 0.5752 1.0210 -0.5508 -0.1775 -0.3053 -0.3058];")
End Sub
Sub f29()
CR = Chr(13) + Chr(10)
PutOnClipboard ("[x,y]=meshgrid(-3:.1:3, -2:.1:2);" + CR + "z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);" + CR + "contour(x,y,z,30); line(xx(1,:),xx(2,:))" + CR + "h=line(xx(1,:),xx(2,:)); set(h,'Marker','o')")
End Sub
Sub f30()
PutOnClipboard ("f=inline('exp(-2*t).*cos(10*t)+exp(-3*(t+2)).*sin(2*t)','t');")
End Sub
Sub f31()
PutOnClipboard ("t0=1; [t1,f1]=fminsearch(f,t0); [t1 f1]")
End Sub
Sub f32()
PutOnClipboard ("t0=0.1; [t2,f2]=fminsearch(f,t0); [t2 f2]")
End Sub
Sub f33()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms t;" + CR + " y=exp(-2*t)*cos(10*t)+exp(-3*(t+2))*sin(2*t);" + CR + "ezplot(y,[0,2.5]);" + CR + " set(gca,'Ylim',[-0.6,1])")
End Sub
Sub f34()
CR = Chr(13) + Chr(10)
PutOnClipboard ("ezplot(y,[-0.5,2.5]); set(gca,'Ylim',[-2,1.2])" + CR + "t0=-0.2; [t3,f3]=fminsearch(f,t0);" + CR + " [t3 f3]")
End Sub
Sub f35()
CR = Chr(13) + Chr(10)
PutOnClipboard ("[x,y]=meshgrid(0.5:0.01:1.5);" + CR + " z=100*(y.^2-x).^2+(1-x).^2;" + CR + "contour3(x,y,z,100), set(gca,'zlim',[0,310])")
End Sub
Sub f36()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=inline('100*(x(2)-x(1)^2)^2+(1-x(1))^2','x');" + CR + "ff=optimset; ff.TolX=1e-10; ff.TolFun=1e-20; ff.Display='iter';" + CR + "x=fminunc(f,[0;0],ff)")
End Sub
Sub f37()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms x1 x2; f=100*(x2-x1^2)^2+(1-x1)^2;" + CR + "J=jacobian(f,[x1,x2])")
End Sub
Sub f38()
PutOnClipboard ("ff.GradObj='on'; x=fminunc('c6fun3',[0;0],ff)")
End Sub
Sub f39()
CR = Chr(13) + Chr(10)
PutOnClipboard ("[x1,x2]=meshgrid(-3:.1:3);" + CR + "z=-x1.^2-x2;")
End Sub
Sub f40()
CR = Chr(13) + Chr(10)
PutOnClipboard ("i=find(x1.^2+x2^2>9); z(i)=NaN;" + CR + "i=find(x1+x2>1); z(i)=NaN;" + CR + "surf(x1,x2,z); shading interp;")
End Sub
Sub f41()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=-[2 1 4 3 1]'; A=[0 2 1 4 2; 3 4 5 -1 -1];" + CR + "B=[54; 62]; Ae=[]; Be=[]; xm=[0,0,3.32,0.678,2.57];" + CR + "ff=optimset; ff.LargeScale='off';" + CR + "ff.TolX=1e-15; ff.TolFun=1e-20; ff.TolCon=1e-20; ff.Display='iter';" + CR + "[x,f_opt,key,c]=linprog(f,A,B,Ae,Be,xm,[],[],ff)")
End Sub
Sub f42()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=[-3/4,150,-1/50,6]; Aeq=[]; Beq=[];" + CR + "A=[1/4,-60,-1/50,9; 1/2,-90,-1/50,3]; B=[0;0];" + CR + "xm=[-5;-5;-5;-5]; xM=[Inf;Inf;1;Inf]; ff=optimset;" + CR + "ff.TolX=1e-15; ff.TolFun=1e-20; TolCon=1e-20; ff.Display='iter';" + CR + "[x,f_opt,key,c]=linprog(f,A,B,Aeq,Beq,xm,xM,[],ff)")
End Sub
Sub f43()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=[-2,-4,-6,-8]; H=diag([2,2,2,2]);" + CR + "OPT=optimset; OPT.LargeScale='off';" + CR + "A=[1,1,1,1; 3,3,2,1]; B=[5;10]; Aeq=[]; Beq=[]; LB=zeros(4,1);" + CR + "[x,f_opt]=quadprog(H,f,A,B,Aeq,Beq,LB,[],[],OPT)")
End Sub
Sub f44()
CR = Chr(13) + Chr(10)
PutOnClipboard ("ff=optimset; ff.LargeScale='off'; ff.Display='iter';" + CR + "ff.TolFun=1e-30; ff.TolX=1e-15; ff.TolCon=1e-20;" + CR + "x0=[1;1;1]; xm=[0;0;0]; xM=[]; A=[]; B=[]; Aeq=[]; Beq=[];" + CR + "[x,f_opt,c,d]=fmincon('opt_fun1',x0,A,B,Aeq,Beq,xm,xM,'opt_con1',ff);")
End Sub
Sub f45()
PutOnClipboard ("x,f_opt,kk=d.funcCount")
End Sub
Sub f46()
CR = Chr(13) + Chr(10)
PutOnClipboard ("x0=[1;1;1]; Aeq=[8,14,7]; Beq=56;" + CR + "[x,f_opt,c,d]=fmincon('opt_fun1',x0,A,B,Aeq,Beq,xm,xM,'opt_con2',ff);" + CR + "x, f_opt, kk=d.funcCount")
End Sub
Sub f47()
CR = Chr(13) + Chr(10)
PutOnClipboard ("syms x1 x2 x3;" + CR + " f=1000-x1*x1-2*x2*x2-x3*x3-x1*x2-x1*x3;" + CR + "J=jacobian(f,[x1,x2,x3])")
End Sub
Sub f48()
CR = Chr(13) + Chr(10)
PutOnClipboard ("x0=[1;1;1]; xm=[0;0;0]; xM=[]; A=[]; B=[]; Aeq=[]; Beq=[];" + CR + "ff=optimset; ff.GradObj='on'; ff.Display='iter'; ff.LargeScale='off';" + CR + "ff.TolFun=1e-30; ff.TolX=1e-15; ff.TolCon=1e-20;" + CR + "[x,f_opt,c,d]=fmincon('opt_fun2',x0,A,B,Aeq,Beq,xm,xM,'opt_con1',ff);")
End Sub
Sub f49()
PutOnClipboard ("x,f_opt,kk=d.funcCount")
End Sub
Sub f50()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=-[2 1 4 3 1]'; A=[0 2 1 4 2; 3 4 5 -1 -1];" + CR + " intlist=ones(5,1);" + CR + "B=[54; 62]; ctype=[-1; -1]; xm=[0,0,3.32,0.678,2.57]; xM=inf*ones(5,1);" + CR + "[res,b]=ipslv_mex(f,A,B,intlist,xM,xm,ctype)")
End Sub
Sub f51()
CR = Chr(13) + Chr(10)
PutOnClipboard ("[x1,x2,x3,x4,x5]=ndgrid(1:20,0:20,4:20,1:20,3:20);" + CR + " i=find((2*x2+x3+4*x4+2*x5<=54) & (3*x1+4*x2+5*x3-x4-x5<=62));" + CR + " f=-2*x1(i)-x2(i)-4*x3(i)-3*x4(i)-x5(i); [fmin,ii]=sort(f);" + CR + " index=i(ii(1));" + CR + " x=[x1(index),x2(index),x3(index),x4(index),x5(index)]")
End Sub
Sub f52()
PutOnClipboard ("fmin(1:10)'")
End Sub
Sub f53()
CR = Chr(13) + Chr(10)
PutOnClipboard ("in=i(ii(1:15));" + CR + " x=[x1(in),x2(in),x3(in),x4(in),x5(in),fmin(1:15)]")
End Sub
Sub f54()
CR = Chr(13) + Chr(10)
PutOnClipboard ("intlist=[1,0,0,1,1];" + CR + " [res,b]=ipslv_mex(f,A,B,intlist,xM,xm,ctype)")
End Sub
Sub f55()
CR = Chr(13) + Chr(10)
PutOnClipboard ("A=[0 2 1 4 2; 3 4 5 -1 -1]; " + CR + " intlist=ones(5,1); Aeq=[]; Beq=[];" + CR + "B=[54; 62]; ctype=[-1; -1];" + CR + "xm = [0,0,4,1,3]'; xM=20000*ones(5,1); x0=xm;" + CR + " [errmsg,f,X]=bnb20('mmm',x0,intlist,xm,xM,A,B,Aeq,Beq); X=X'")
End Sub
Sub f56()
CR = Chr(13) + Chr(10)
PutOnClipboard ("intlist=[1,0,0,1,1]';xm=[0,0,3.32,1,3]';" + CR + "[errmsg,f,X]=bnb20('mmm',x0,intlist,xm,xM,A,B,Aeq,Beq);" + CR + " X")
End Sub
Sub f57()
CR = Chr(13) + Chr(10)
PutOnClipboard ("x0=[1;1]; xm=-100*[1;1]; xM=100*[1;1];" + CR + "A=[]; B=[]; Aeq=[]; Beq=[]; intlist=[1,1]';" + CR + "[errmsg,f,x]=bnb20('c6fun1',x0,intlist,xm,xM,A,B,Aeq,Beq);" + CR + " x'")
End Sub
Sub f58()
PutOnClipboard ("if length(errmsg)==0, x=round(x), end; x=x'")
End Sub
Sub f59()
CR = Chr(13) + Chr(10)
PutOnClipboard ("xm=-20*[1;1]; xM=20*[1;1];" + CR + "[errmsg,f,x]=bnb20('c6fun1',x0,intlist,xm,xM,A,B,Aeq,Beq);" + CR + "if length(errmsg)==0, x=round(x), end; x=x';")
End Sub
Sub f60()
CR = Chr(13) + Chr(10)
PutOnClipboard ("[x1,x2]=meshgrid(-200:200); f=100*(x2-x1.^2).^2+(4.5543-x1).^2;" + CR + "[fmin,i]=sort(f(:)); x=[x1(i(1)),x2(i(1))]")
End Sub
Sub f61()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=[-3,2,-5]; A=[1 2 -1; 1 4 1; 1 1 0; 0 4 1]; B=[2;4;5;6];" + CR + "x = bintprog(f, A, B, [], []) '")
End Sub
Sub f62()
CR = Chr(13) + Chr(10)
PutOnClipboard ("[x1,x2,x3]=meshgrid([0,1]);" + CR + "i=find((x1+2*x2-x3<=2) & (x1+4*x2+x3<=4) & (x1+x2<=3) & (4*x1+x3<=6));" + CR + "f=-3*x1(i)+2*x2(i)-5*x3(i); [fmin,ii]=sort(f);" + CR + "index=i(ii(1)); x=[x1(index),x2(index),x3(index)]")
End Sub
Sub f63()
CR = Chr(13) + Chr(10)
PutOnClipboard ("x=[x1(i(ii)),x2(i(ii)),x3(i(ii))]; [x fmin]")
End Sub
Sub f64()
CR = Chr(13) + Chr(10)
PutOnClipboard ("f=[-3,2,-5]; xm=[0;0;0]; xM=[1;1;1]; intlist=[1;1;1];" + CR + "A=[1 2 -1; 1 4 1; 1 1 0; 0 4 1]; B=[2;4;5;6]; ctype=-1*ones(4,1);" + CR + "[res,b]=ipslv_mex(f,A,B,intlist,xM,xm,ctype)")
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -