《数学实验》应用练习题5—数值计算实验一.请编程完成下列功能:1.用polyval请计算多项式函数1322xx在节点0:0.1:3上的函数值;2.绘制这些节点的散点图参考答案:closealla=[231];v=0:0.1:3;w=polyval(a,v);plot(v,w,'+')二.某种复合物质的主要成分为A。经过试验和分析,发现主要成分A与其性能指标E之间有一定的数量关系。下面有一组数据。A37.037.538.038.539.039.540.040.541.041.542.042.543.0E3.403.003.002.272.101.831.531.701.801.902.352.542.90请编写程序绘出散点图,并用二次多项式函数拟合数据,然后分别预测A=44,45时,指标E的值。参考程序:A=[37.037.538.038.539.039.540.040.541.041.542.042.543.0];E=[3.403.003.002.272.101.831.531.701.801.902.352.542.90];plot(A,E,'*')a=polyfit(A,E,2);Fnew=polyval(a,[4445])参考程序2:%A与其性能指标E之间有一定的数量关系。下面有一组数据。A=[37.037.538.038.539.039.540.040.541.041.542.042.543.0];E=[3.403.003.002.272.101.831.531.701.801.902.352.542.90];%请编写程序绘出散点图,并用二次多项式函数拟合数据,然后分别预测A=44,45时,指标E的值。a=polyfit(A,E,2)plot(A,E,'o')Enew=polyval(a,[4445])%%AA=linspace(37,43,100);holdonplot(AA,polyval(a,AA))三.编程调用fzero求解方程0543223xxx,并将所求根赋给变量xp。提示:实验过程1.编写一个function计算f的函数值2.调用fzero求根(找零点)参考程序:%%%求根函数fzerosymsxf=2*x^3-3*x^2+4*x-5%问题:解方程f(x)=0fun=inline(vectorize(char(f)),'x')x=-5:0.1:10;plot(x,fun(x))%绘制函数曲线[xp,val,flag]=fzero(fun,2)注:函数f(x)可以创建一个function文件来表示.四.请调用fsolve求解下列方程组:030101032123211322121xxxxxxxxxxx参考程序:functiontestmain[x,val,flag]=fsolve(@fun,[111])functionr=fun(x)r=[x(1)^2+x(1)*x(2)^2+x(3)-10;x(1)-x(1)*x(2)+x(3)^2+1;x(1)+x(2)+x(3)-3];注:[x,val,flag]=fsolve(fun,x0)x近似解val在x处函数值:等于fun(x)flag0找到近似解;0方程组(假设3个方程):c1(x)=0c2(x)=0c3(x)=0;则函数结构如下:functionr=fun(x)r=[c1(x)c2(x)c3(x)]五.编程调用ode23求解常微分方程组,并根据数值计算结果绘出未知函数的曲线,200,12)0(,20)0(,)011.01()013.01(21212121tyyyydtdyyydtdy参考程序:functiontestmain%求微分方程数值解并绘解函数图形Y0=[20,12];[t,Y]=ode23(@foxeqs,[0,20],Y0);x=Y(:,1);%第1个未知函数近似解y=Y(:,2);%第2个未知函数近似解figure(1),plot(t,x,'b',t,y,'r')figure(2),plot(x,y)functiondy=foxeqs(t,y)%z必须为列向量dy(1,1)=(1-0.013*y(2))*y(1);dy(2,1)=(-1+0.011*y(1))*y(2);六.请用欧拉法求解下列微分方程10)0()001.01(02.0yyydtdyfunctiontestmain[T,Y]=ode23('fun',[050],10)(黄色背景自变量对应函数值)functiondvar=fun(t,var)%dvardy/dt;varydvar=0.02*(1-0.001*var)*var;说明:htyhtyhtyhtydtdyh)()()()(lim0yyhtyhty)001.01(02.0)()(yyhtyhty)001.01(02.0)()((迭代)Euler法)())(001.01(02.0)()(tytyhtyhty(1)10)0(y令t=0,由(1)得)0())0(001.01(02.0)0()(yyhyhy令t=h,由(1)得)())(001.01(02.0)()2(hyhyhhyhy程序符号y(1)y(2)…y(i)数学符号y(0)y(h)…y((i-1)h)参考程序:clearcloseallclct=0;y(1)=10;h=0.02;fori=2:1000000,%给一个足够大的迭代次数y(i)=y(i-1)+0.02*h*(1-0.001*y(i-1))*y(i-1);%迭代公式if(i-1)*h=20,%(i-1)*h为当前y(i)对应时刻.到达这个时刻就停止得到break;endendx=(1:i)*h-h;%时间plot(x,y,'-')七.使用函数quad求定积分203521dxxx.参考程序1:调用quad求解程序放在主函数中;被积函数定义为一个子函数,functiontestmainQ=quad(@myfun,0,2)%定义函数functiony=myfun(x)y=1./(x.^3-2*x-5);参考程序2:使用inline表示被积函数(一个一元函数)f=inline('1./(x.^3-2*x-5)','x');Q=quad(f,0,2)《数学实验》应用练习题6—优化建模实验一.某化学品生产厂家生产A、B两种产品,产一吨A产品用R1资源3吨,R2资源5m3,R3资源9件.;产一吨B产品用R1资源4吨,R2资源5m3,R3资源7件.一吨A产品和B产品分别价值60万元和70万元,资源R1、R2、R3现有量分别为140吨、180m3和220件.另外要求生成的A产品不低于4吨,B产品不低于3吨。生产两种产品各多少才能使总价值最高?请为此建立优化模型并用linprog函数求解。问题分析:可建立最优化模型求解问题。第一步:将问题抽象为优化模型目标:生产的2种产品的总价值最高;决策:两种产品的产量约束条件:三种资源的限制变量:设x,y分别表示生产A、B两种产品的产量(5分)3,4220791805514043..7060),(maxyxyxyxyxtsyxyxf(目标函数:5分,条件:5分)第二步:调用Matlab解线性规划函数linprog求解模型f=[-60-70];A=[34;55;97];b=[140;180;220];lb=[34];ub=[infinf];[x,val,flag]=linprog(f,A,b,[],[],lb,ub)二.求一元函数xxexxxfsin5.0)(在区间[-2,10]上的一个极小值,并绘出函数图形标出极小值点。fun=inline('0.5*x-x.*exp(-x)');fplot(fun,[-2,10]),holdon[x0,y0,flag]=fminbnd(fun,-2,10)plot(x0,y0,'o')三.如果一元函数)(xf在区间[-10,10]上有多个极小值,请设计实验过程,找出所有的极小值点。参考步骤:绘出函数曲线观察极值点所在区间将各个区间端点分别传给函数fminbnd(多次调用),从而找出所有的极小值点。四.已知函数xexxxyxsin80102001.05.0)sin(23,请编程找出区间[-10,10]上的一个极大值点、极小值点。参考答案:f='0.5*x^3-0.01*x^2+20*x+10*exp(sin(x))+80*sin(x)';%函数表达式字符串f1=inline(vectorize(f),'x')%创建f(x)函数对象x=linspace(-10,10,100);plot(x,f1(x),'-.')%绘曲线f(x)[x,val,flag]=fminbnd(f1,-10,10)%求f(x)极小值点f2=inline(vectorize(['-',f]),'x')%创建-f(x)函数对象x=linspace(-10,10,100);plot(x,f2(x),'-.')%绘曲线-f(x)[x,val,flag]=fminbnd(f2,-10,10)%求-f(x)极小值点五.某投资者有10万元用于投资。他考虑的投资方式及其收益为:储蓄利率2.5%,债券5%,股票的平均收益为12%,他设定如下的投资目标:每年收益不少于9000元;股票投资额不低于20000元;股票投资额不超过储蓄和债券的投资额之和的2倍;储蓄额位于10000~30000元之间;聘请你作为顾问,帮助他做出投资决策。参考答案:问题分析这是一个最优化问题,先分析出三要素,然后建立此优化问题的数学表达式,变量说明设x,y,z分别表示选择储蓄、债券、股票的投资额(单位:万元).令向量Tzyxu,,简化问题假设10万元均用于投资.假设投资方式只有储蓄、债券、股票三种.建立模型即得到线性规划模型如下:10,,031)(229.0)(10..12.005.0025.0maxzyxxyxzzuFzyxtszyxuF模型求解模型可改写如下:10210031100229.0)12.005.0025.0(..12.005.0025.0maxzyxzyxzyxzyxtszyxuF根据上面的模型,可以很方便的编写调用linprog函数的求解代码:f=-[0.0250.050.12];A=[-0.025-0.05-0.12;-2-21];b=[-0.9;0];Aeq=[111];beq=10;lb=[102];ub=[31010];[optx,optvalue,flag]=linprog(f,A,b,Aeq,beq,lb,ub)附.运行结果:Optimizationterminatedsuccessfully.optx=1.00002.33336.6667optvalue=-0.9417flag=1由程序运行结果可知,预计投资的最大收益为0.9417万元,此时一种最佳投资方案为储蓄、债券、股票分别投资1、2.3333、6.6667(万元).《数学实验》应用练习题7—随机模拟实验一.请简述用蒙特卡罗法估算定积分的原理,及操作步骤。二.请编程产生区间[-10,30]上的2000随机数,赋给行向量x.参考:x=-10+40*rand(1,2000)%或者x=unifrnd(-10,30,1,2000)三.编写程序在区域}25,100|),{(yxyxD内随机投点,并绘出投点效果图.要求投点个数不低于10000个。实验步骤:产生随机数表示随机投点坐标绘图参考程序:N=10000;%投点个数x=10*rand(1,N);%投点x坐标y=-5+7*rand(1,N);%投点y坐标[-5,2]plot(x,y,'.')%描点四.请用蒙特卡罗法估算定积分202dxexx.