190 likes | 339 Views
问题: 一个建筑公司计划建三类楼房 A 类 B 类 C 类 投资(万元 / 栋): 150 90 60 售价(万元 / 栋): 270 170 110 现在要求每类房至少建一栋,但不超过 5 栋;总资本 为 1250 万 . 问如何确定建楼方案,能获得最大利润. 分析: 可以用“穷举法”,即 step1 三类楼房数量 a,b,c 分别为 1-5 1.1 计算出每种方案总投资, <=1250 万为有效方案 ; 1.1.1 计算总利润,记录相应方案;
E N D
问题:一个建筑公司计划建三类楼房 • A类 B类 C类 • 投资(万元/栋): 150 90 60 • 售价(万元/栋): 270 170 110 • 现在要求每类房至少建一栋,但不超过5栋;总资本 • 为1250万. 问如何确定建楼方案,能获得最大利润. 分析:可以用“穷举法”,即 step1三类楼房数量a,b,c分别为1-5 1.1计算出每种方案总投资,<=1250万为有效方案; 1.1.1计算总利润,记录相应方案; step2最后找出利润最大时的方案.
程序: • for a=1:5 • for b=1:5 • for c=1:5 • f=[a b c]; • tz=t*f '; • if tz<=z • r=(p-t)*f '; • A(k,:)=f; • B=[B r]; • k=k+1; • end • end • end • end t=[150 90 60]; p=[270 170 110]; z=1250; k=1; A=[ ];B=[ ]; [m n]=max(B); zt=A(n,:)*t'; fprintf('fang an\n'); fprintf(' %d',A(n,:)); fprintf('\nli run %d',m);
例12-2:设A(0,0)为一导弹发射点,发现位于B(0,100)处一架敌机沿水平方向逃离(如图),随即发射一枚导弹予以打击,现已知导弹时刻对准敌机,且速率为飞机速率的两倍(设飞机速度为1)。试编程模拟导弹打击敌机的动态过程,并实时给出飞机和导弹的位置坐标。 分析:现将整个动态过程离散化, 即以dt为时间间隔,实时观测飞机 与导弹的位置: 假定敌机从B点飞行到B1点, 导弹沿向量AB1到A1点; 此时敌机又到B2点,导弹则 沿向量A1B2到A2点; 以此类推,计算飞机的位置 坐标和导弹的位置坐标。
步骤: • step1画出导弹与飞机A、B点位置; • step2求出dt时间段后的B1点坐标; • 2.1求出向量A0B1的方向, • 2.2 求出A1点坐标 • 2.3求出导弹与飞机间的距离d; • step3判断距离d是否达到精度要求;如果没有 • 达到要求,转向step1重复画点、计算新的位置…… • 直到d达到要求.
hold on • axis([0 100 0 120]); • k=0;A=[0,0];B=[0,100]; • v=1;dt=1;d=100; • while d>0.5 • plot(A(1),A(2),'r.'); • plot(B(1),B(2),'b*'); • pause(0.2); • k=k+1; • B=B+[v*dt,0]; • e=B-A; • d=norm(e); • A=A+2.0*v*dt*e/d; • fprintf('k=%.0f B(%.2f,100) A(%.2f,%.2f) d=%.2f\n', • k,B(1),A(1),A(2),d); • end
例12-3设在2×4m房间的顶部,距离地面高度 为2m处安装两盏照明灯,两灯相距2m,距离墙面 为1m. 现假设灯的光强为1个单位,空间任一点处 的光强与它们之间的距离成反比。试分析地面上 光强的分布情况. 距离地面1m的层面上光强分布 又如何?距离地面1.5m呢? 分析:以地面为xoy平面, 以中心点为坐标原点建立空 间坐标系则两灯的位置为 A(0,-1,2)、B(0,1,2),则 距离地面高为h的空间点 p(x,y,h)处的光强根据光 的迭加原理有:
程序: x=-1:.1:1; y=-2:.1:2; [X,Y]=meshgrid(x,y); h=1; q1=1./sqrt(X.^2+(Y-1).^2+(h-2)^2); q2=1./sqrt(X.^2+(Y+1).^2+(h-2)^2); q=q1+q2; surf(X,Y,q);
实验问题: 试求五次曲线 与直线 的交点横坐标. 分析:该问题转化为方程 的根. 显然该方程为一元五次方 程,其解没有求解公式 用常规方法求很困难. 画图: hold on f=inline(' x^5 '); g=inline(' 1-x '); fplot(f,[0,1]); fplot(g,[0,1]); grid 方程近似解的求法 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
画出函数 的图象. y=inline('x^5+x-1'); fplot(y,[0,1]); grid • 如何求得零点: • MATLAB命令 • “二分法” • 切线迭代法 • 输入:fzero(y,[0,1]) • 输出:Zero found in the interval: [0, 1]. • ans = 0.75488
二分法 条件: 分析: 误差:
程序: f=inline('x^5+x-1'); fplot(f,[0,1]); grid; hold on; a=0;b=1; dlt=1.0e-5; k=1; N=log((b-a)/dlt)/log(2); while k< =fix(N)+1 c=(a+b)/2; plot(c,0,'*'); fprintf('k=%d, x=%.5f\n',k,c); if abs(f(c))==0 break; elseif f(c)*f(b)<0 a=c; else b=c; end k=k+1; end
切线迭代法 条件: 分析:
程序: f=inline('x^5+x-1'); df=inline('5*x^4+1'); d2f=inline('20*x^3'); a=0;b=1;dlt=1.0e-5; if f(a)*d2f(a)>0 x0=a; else x0=b; end m=min(abs(df(a)),abs(df(b))); k=1; while abs(f(x0))>m*dlt x1=x0-f(x0)/df(x0); x0=x1; fprintf('k=%d x=%.5f\n',k,x0); k=k+1; end
例5-3已知 ,设该曲线在 区间[0,x]上所围曲边梯形面积为s,试求当s 分别为5,10,20时的x的取值。 分析:s= , 所求解为方程 即方程 的根。 建立二元函数 f=inline('1/4*x^4-5/3*x^3+3*x^2+5*x-s','x','s')
程序: s=5; f=inline('1/4*x^4-5/3*x^3+3*x^2+5*x-s','x','s') df=inline('x^3-5*x^2+6*x+5'); d2f=inline('3*x^2-10*x+6'); a=0;b=s;dlt=1.0e-5; if f(a,s)*d2f(a)>0 x0=a; else x0=b; end m=min(abs(df(a)),abs(df(b))); k=1; while abs(f(x0,s))>m*dlt x1=x0-f(x0,s)/df(x0); x0=x1; fprintf('k=%d x=%.5f\n',k,x0); k=k+1; end
本次实验上机要求 • 求解讲义中P28上的问题4 或 问题6. • 每个实验小组完成一份实验报告(封面已发,内容填写到A4纸上),于第16周交给机房籍老师. • 第15周数学实验课移至下学期,其周末上机时间,有需要的实验小组提前登记,每组2小时.