数学建模培训作业(MATLAB编程部分)
数学建模Matlab练习4
MATLAB练习四1. 绘制两个一元函数的曲线图(例如y=sin(x)、y=cos(x)),加上标注说明,包括坐标、抬头、曲线说明等。
%lianxi41.mx=0:pi/30:2*pi;y=sin(x);plot(x,y,'-ob','markersize',10);hold ony1=cos(x);plot(x,y1,'-.dm','markersize',10);legend('sinx','cosx');title('sin和cos函数的曲线图')xlabel('x');ylabel('y');2. 寻找一组数据拟合多项式,写出M文件,包括拟合的次数,数值的计算,数学表达式的呈现,图形的呈现等。
%lianxi42x=0:pi/20:pi;y=sin(x);n=input('n=');p=polyfit(x,y,n);x1=0:pi/20:pi*2;y1=sin(x1);y2=polyval(p,x1)plot(x1,y1,'-ob',x1,y2,':dm');legend('原曲线','拟合曲线');xlabel('x');ylabel('y');title('sin的拟合曲线和原曲线');axis([-0.2,6.5,-1.2,1.2])3. 求解一个代数方程,写出M文件,应该包括函数式M文件和命令式M文件。
%fc3.mfunction f=fc3(x)f='3*x-1=0';%lianxi43clc;clear;close;sprintf('原方程和其解析解的结果为:')s=solve(fc3)sprintf('保留10位有效数字的结果为:')digits(10)sprintf('数值解的结果为:')x=vpa(s)4. 求解一个代数方程组,写出M文件,应该包括函数式M文件和命令式M文件。
数学建模matlab例题参考及练习
数学实验与数学建模实验报告学院:专业班级:姓名:学号:完成时间:年月日承 诺 书本人承诺所呈交的数学实验与数学建模作业都是本人通过学习自行进行编程独立完成,所有结果都通过上机验证,无转载或抄袭他人,也未经他人转载或抄袭。
若承诺不实,本人愿意承担一切责任。
承诺人:年 月 日数学实验学习体会(每个人必须要写字数1200字以上,占总成绩的20%)练习1 一元函数的图形1. 画出x y arcsin =的图象.2. 画出x y sec =在],0[π之间的图象.3. 在同一坐标系中画出x y =,2x y =,3x y =,3x y =,x y =的图象. 4. 画出3232)1()1()(x x x f ++-=的图象,并根据图象特点指出函数)(x f 的奇偶性. 5. 画出)2ln(1++=x y 及其反函数的图象. 6. 画出321+=x y 及其反函数的图象.练习2 函数极限1.计算下列函数的极限.(1)xxx4cos12sin1lim4-+π→.程序:sym x;f=(1+sin(2*x))/(1-cos(4*x));limit(f,x,pi/4)运行结果:lx21ans =1(2).程序:sym x;f=(1+cos(x))^(3*sec(x));limit(f,x,pi/2)运行结果:lx22ans =exp(3)(3)22)2(sinlnlimxxx-ππ→.程序:sym x;f=log(sin(x))/(pi-2*x)^2;limit(f,x,pi/2)运行结果:lx23ans =-1/8(4)212lim xxex→.程序:x xx sec32)cos1(lim+π→sym x ;f=x^2*exp(1/x);limit(f,x,0)limit(f,x,0,'right')limit(f,x,0,'left')运行结果:lx24ans =NaNans =Infans =%左极限为零,存在,右极限为无穷大,在x 趋近于零时函数没有极限(5))215(lim 122x x x x +-∞→.程序:sym x ;f=5*x^2/(1-x^2)+2^(1/x);limit(f,x,inf)运行结果:>> lx25ans =-4(6)x x x x x -+-→32112lim .程序:sym x ;f=(x^2-2*x+1)/(x^3-x);limit(f,x,1)运行结果:>> lx26ans =0 (7)x x x 11lim 20-+→.程序:sym x ;f=(sqrt(1+x^2)-1)/x;limit(f,x,0)运行结果:>> lx27ans =0 (8))3sin(cos 21lim 3π--π→x xx .程序:sym x ;f=(1-2*cos(x))/sin(x-pi/3);limit(f,x,pi/3)运行结果:>> lx28ans =3^(1/2) (9)tgxx x )1(lim 0+→.程序:sym x ;f=(1/x)^tan(x);limit(f,x,0,'right')运行结果:>> lx29ans =(10)xx arctgx )2(lim π+∞→.程序:sym x ;f=(2/pi*atan(x))^x;limit(f,x,inf,'left')运行结果:>> lx210ans =Inf2. 解方程012=-⋅x x .程序:sym x ;X=solve(x*2^x-1)运行结果:>> lx202X =lambertw(0, log(2))/log(2)%方程有两个解3. 解方程1sin 3+=x x .程序:sym x ;X=solve(3*sin(x)+1-x)运行结果:>> lx203X =-0.538470451711254993610615326557454. 解方程03=++q px x .(p 、q 为实数)程序:X=solve('x^3+p*x+q=0','x')运行结果:X =((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3) - p/(3*((p^3/27 + q^2/4)^(1/2)- q/2)^(1/3))p/(6*((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)) - ((p^3/27 + q^2/4)^(1/2)- q/2)^(1/3)/2 - (3^(1/2)*i*(p/(3*((p^3/27 + q^2/4)^(1/2) -q/2)^(1/3)) + ((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)))/2p/(6*((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)) - ((p^3/27 + q^2/4)^(1/2)- q/2)^(1/3)/2 + (3^(1/2)*i*(p/(3*((p^3/27 + q^2/4)^(1/2) -q/2)^(1/3)) + ((p^3/27 + q^2/4)^(1/2) - q/2)^(1/3)))/2练习 3 导数及偏导数计算1.求下列函数的导数. (1))11)(1(-+=x x y程序:sym x ;f=(sqrt(x)+1)*(1/sqrt(x)-1);diff(f)运行结果:>> lx31ans =(1/x^(1/2) - 1)/(2*x^(1/2)) - (x^(1/2) + 1)/(2*x^(3/2))(2)x x x y ln sin =程序:sym x ;f=x*sin(x)*log(x);diff(f)运行结果:>> lx32ans =sin(x) + log(x)*sin(x) + x*cos(x)*log(x)2.求下列参数方程所确定的函数的导数.(1)⎩⎨⎧==t y t x 44程序:sym t ;f1=t^4;f2=4*t;diff(f2)/diff(f1)运行结果:>> lx321ans =1/t^3(2)⎩⎨⎧-=+=arctgt t y t x )1ln(2程序:sym t ;f1=log(1+t^2);f2=t-atan(t);diff(f2)/diff(f1)运行结果:>> lx322ans =-((t^2 + 1)*(1/(t^2 + 1) - 1))/(2*t)3.求下列隐函数的导数. (1)22ln y x x y arctg +=程序:syms x y ;f=atan(y/x)-log(sqrt(x^2+y^2));yx=-diff(f,x)/diff(f,y)运行结果;>> lx331yx =(x/(x^2 + y^2) + y/(x^2*(y^2/x^2 + 1)))/(1/(x*(y^2/x^2 + 1)) - y/(x^2 + y^2))(2)xy y x =程序:syms x y ;f=x^y-y^xyx=-diff(f,x)/diff(f,y)运行结果:>> lx332f =x^y - y^xyx =(x^(y - 1)*y - y^x*log(y))/(x*y^(x - 1) - x^y*log(x))4.设x e y x cos =,求)4(y .程序:sym x ;f=exp(x)*sin(x);diff(f,x,4)运行结果:>> lx34ans =(-4)*exp(x)*sin(x)5.验证x e y x sin =满足关系式:22=+'-''y y y程序: sym x ;f=exp(x)*sin(x);y2=diff(f,x,2);y1=diff(f,x,1);y=f;y2-y1*2+2*y=='0'运行结果:>> lx35ans =1%运行结果为1表示y2-y1*2+2*y=='0'成立6.设)ln(y x x u +=,求22x u ∂∂,22y u∂∂,y x u ∂∂∂2. 程序:syms x y ;f=x*log(x+y);uxx=diff(f,x,2)uyy=diff(f,y,2)f1=diff(f,x);uxy=diff(f1,y)运行结果:>> lx36uxx =2/(x + y) - x/(x + y)^2uyy =-x/(x + y)^2uxy =1/(x + y) - x/(x + y)^27.求下列多元隐函数的偏导数y zx z ∂∂∂∂,.(1)1cos cos cos 222=++z y x程序:syms x y z ;f=(cos(x))^2+(cos(y))^2+(cos(z))^2-1;zx=-diff(f,x)/diff(f,z)zy=-diff(f,y)/diff(f,z)运行结果:>> lx371zx =-(cos(x)*sin(x))/(cos(z)*sin(z))zy =-(cos(y)*sin(y))/(cos(z)*sin(z))(2)xyz e z =程序:syms x y z ;f=exp(z)-x*y*zzx=-diff(f,x)/diff(f,z)zy=-diff(f,y)/diff(f,z)运行结果:>> lx372f =exp(z) - x*y*zzx =(y*z)/(exp(z) - x*y)zy =(x*z)/(exp(z) - x*y)8.证明函数22)()(ln b y a x u -+-=(b a ,为常数)满足拉普拉斯方程: 02222=∂∂+∂∂y u x u(提示:对结果用simplify 化简)练习4 积分计算1.计算下列不定积分. (1)⎰+dx x x 12 (2)⎰+x xdx 2sin 12sin2.计算下列定积分.(1)⎰e xdx x 1ln (2)⎰ππ342sin dx x x 3.求⎰+t dx x x x 12)ln (ln 1并用diff 对结果求导.4.求摆线)cos 1(),sin (t a y t t a x -=-=的一拱(π≤≤20t )与x 轴所围成的图形的面积.5.计算二重积分(1)⎰⎰≤++122)(y x dxdy y x (2)⎰⎰≤++x y x dxdy y x 22)(22 6.计算⎰+L ds y x 22 L 为圆周)0(22>=+a ax y x7.计算⎰++-L dy y x dx y x )()(2222,其中L 为抛物线2x y =上从点(0,0)到点(2,4)的一段弧.练习5 matlab 自定义函数与导数应用1.建立函数x x a a x f 3sin 31sin ),(+=,当a 为何值时,该函数在3π=x 处取得极值,它是极大值还是极小值,并求此极值.2.确定下列函数的单调区间.(1)7186223---=x x x y (2))0(82>+=x x x y3.求下列函数的最大值、最小值.(1)2332xx y -=41≤≤-x (2)312824≤≤-+-=x x x y练习6 matab 矩阵运算与数组运算1. 计算(1)⎪⎪⎪⎭⎫ ⎝⎛--521111204321+⎪⎪⎪⎭⎫ ⎝⎛--232002101041221 (2)⎪⎪⎭⎫ ⎝⎛-01301213⎪⎪⎪⎪⎪⎭⎫ ⎝⎛030101020501⎪⎪⎪⎭⎫ ⎝⎛-205101 (3)52422⎪⎪⎭⎫ ⎝⎛- 2.设⎪⎪⎪⎭⎫ ⎝⎛-=243121013A ,⎪⎪⎪⎭⎫ ⎝⎛-=112111201B ,求满足关系B X A =-23的X .练习7 矩阵与线性方程组1.求下列矩阵的秩.(1)⎪⎪⎪⎭⎫ ⎝⎛-321110021 (2)⎪⎪⎪⎪⎪⎭⎫ ⎝⎛4820322513454947513253947543173125 2.求下列矩阵的行列式,如可逆,试用不同的方法求其逆矩阵.(1)⎪⎪⎪⎭⎫ ⎝⎛--285421122 (2)⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---6201111121324321 3.设X ⎪⎪⎪⎭⎫ ⎝⎛-111012111=⎪⎪⎪⎭⎫ ⎝⎛521234311求X . 4.解下列线性方程组.(1)⎪⎪⎩⎪⎪⎨⎧=--+=+-+=+-+=+-+6223312433862344224221432143214321x x x x x x x x x x x x x x x x (2)⎪⎪⎩⎪⎪⎨⎧-=+--=+--=-+-212201432143214321x x x x x x x x x x x x练习8 常微分方程与级数 求1-6题微分方程的通解1.1222+='y y y x 2.x y x y dx dy -+= 3.x x x y y +='cos 4.1)2sin cos (='+y y y x 5.x e y y y x 2cos 3=-'+'' 6.x x y y sin 14++=+'' 求7、8题初值问题的解7.⎪⎩⎪⎨⎧==-++-+=10)2(212222x y dx dy x xy y y xy x8.⎪⎪⎩⎪⎪⎨⎧===++==0000222,02V dt dxx x x a dt dx n dt x d t t9.给出函数x x e x f x x cos 2sin )(+=在点0=x 的7阶taylor 展开式以及在x=1处的 5阶taylor 展开式.10.判别下列级数的敛散性,若收敛求其和.(1)++++7151311(2)∑∞=+112n nntgπ11.求幂级数∑∞=--22)1(nnnnnx的和函数.12.求函数项级数∑∞=-1)2sin)1(nnnn xπ的和函数.。
matlab文件数学建模作业.docx
1.1(1)代码:syms x;m=433;limit((m*x-sin(m*x))/(x A3),^0) 结果:ans=81182737/6(2 )代码:syms x;m=433;limit((m*x-sin(m*x))/(x A3)/x/Inf) 结果:ans=01.2代码:syms x;m=433;y=exp(x)*cos(m*x/1000);diff(y,x,2)结果:(812511*cos((433*x)/1000)*exp(x))/1000000 - (433*sin((433*x)/1000)*exp(x))/5001.3代码:dblquad(,exp(x.*x+y.*y)'/0/l/0/l)结果:ans = 2.13941.4代码:syms x;m=433;i nt(x A4/(m A 2+4*x*x),x)结東:(81182737*atan((2*x)/433))/32 - (187489*x)/16 + x A3/121.5代码:syms x;m=433;diff(exp(x)*cos(m*x)/10)结果:-C231619285105554448813874688*cos(433*x)*exp(x) - 5350116883610368850333216*sin(433*x)*exp(x) 1.6代码:syms x;m=433;simple(taylor(sqrt(m/1000.0+x)/x/0/,Order,/5))结果:4330A(1/2)*(- (390625000*x A4)/35152125121 + (625000*x A3)/81182737 ・(1250*x A2)/187489 + (5*x)/433 + 1/100)1.7代码:n二2;A二g];while n<20;A(n+1)=A(n)+A(n-l);n=n+l;end;fprintf(,A=(,);for i = l:size(A/2);fprintf( %u,/A(i));if(i~=size(A/2)) fprintf(7);end;end;fprintfC)1);结果:0.24250.97011.8f.mfunction y 二f(x)if(x>=0 && x<=0.5);y=2*x; elseif(x>0.5 && x< = l);y=2*(l-x); else;y=NaN;e nd;1.10 代码:t=0:0.01*pi:6*pi;plot3(cos(t)z sinm/jhold on;grid on;plot3(2*cos(t)/2*sin(t)/t/k ,);1.11 代码:m=433;A=[4r 2/2;-3A5;l /5*m /3]; B=[l /3A-2/0/-3;2r l /l];det(A)/2*A-B /A*B /A.*B /A*B A (-l)/ inv(A)*B /A A 2/A ,⑴x=-3:0.1:3;m=433;a = m/600;f=@(x,a,b) l/sqrt(2*pi)/a*exp(-(x-b).A2./(2*a*a)); plot(x ,f(xaO»;hold on; plot&,f&a-i));hold on; plot (x,f (xai));⑵x 二二 433;f=@(x /a /b) l/sqrt(2*pi)/a*exp(-(x-b).A2./(2*a*a)); plot(x,f(x,l,0));hold on; plot(x,f&20»;hold on; plot(x,f(xAO));hold on;p I ot(x,f (x, m/100r 0));1.13m=433;ezmesh('433*x.*x+y A 4,,30); coIorm 叩([OQlj);4 9 108361.14绘图m=433;x=-2:0.01:2;y=x.A 5-m/200*x-0.1;plot(x,y);grid on;求根vpa(solve(y),3)得根为:1.22,-0.0462,-1.2求单调区间:vpa(solve(diff(y))z3)得:0.811,-0.811根据图象:单调增区间为(・8 , -0.811)4 0.811, +8 )单调减区间为:(-0.811A811)推理:当x<-0.811是"的导数大于0 ,故递增;-0.811<x<0.811时,y的导数小于0 ,故递减;x>0.811时,y的导数大于0 ,故递增。
数学建模Matlab作业
x=[-3:.1:3]; %确定x的值
y1=2.*x+5;
y2=x.^2-3.*x+1;
subplot(1,2,1); %建立二个窗口,并在第一个编辑
plot(x,y1);
axis([-4 4 -5 20]); %划定坐标范围
subplot(1,2,2); %建立二个窗口,并在第一个编辑
plot(x,y2);
axis([-4 4 -5 20]); %可省略,因为坐标范围就是以第二幅图为准的程序效果图:
x=[190 33 45 42 45];
explode = [0 1 0 0 0]; %输入分离切面向量
pie(x,explode,{'生活费','资料费','电话费','购买衣服费','其它费用'}); %绘图程序效果图:
第三题代码:(这一题我是按照点乘来做的,而且精度调的比较大,如果是按矩阵做,只需要把z的表达式一改就行了)
[x,y]=meshgrid(-5:.01:5); %x的精度为0.01
z=x.^2+y.^2+sin(x.*y);
meshc(x,y,z) %绘制等高图
执行效果图:
第四题代码:
x=0:pi/5:4*pi;
y=sin(x).*exp(-x/10);
xx=0:.1:4*pi; %取间隔为0.1
yy=spline(x,y,xx) %三次样条插值
plot(x,y,'o',xx,yy) %绘图,并用’o’标记执行效果图:。
北航5系—MATLAB编程部分练习大作业
MATLAB编程部分练习大作业班级_xxxx_ 姓名:_xxx_ 学号:_xxxxx_一、判断题:1)由矩阵a、b组成的方程组x*b=a的解,可以利用x=a/b进行求解。
(对)2)@符号作为子函数数柄,记录了子函数的详细信息,可作为主函数的输出参数。
(对)3)num2str函数表示将字符串或字符数组转换为数字或矩阵。
(错)4)n=nargin(‘fun’)用于返回函数fun定义的输入参数的个数。
(对)5)某m函数文件定义行语句为:Function varargout=myfun(x,varargin),如果调用方式为myfun(a,b,c)则varargin是长度为2的单元数组。
(对)6)Roots用于求多项式等于0的根,根用行向量表示。
(错)7)最小二乘法拟合函数ployfit(x,y,n)中输入参数n为样本数据个数。
(错)8)RTW(Real-Time Workshop)是MatLab提供的实时仿真工具,只要硬件性能允许,所有SimuLink建立的模型都可以通过RTW实现实时运行。
(错)9)在MATLAB中函数tf2zp()可以用来求传递函数的零极点和增益。
(对)10)MATLAB语言是由C语言开发的,执行效率高,一般能够快速实时运行。
(错)二、选择题:1)下列()函数可以创建一个m行、m列单位矩阵(对角线上为数值1,其它均为0):A)eye(m); B) zeros(m); C)ones(m); D)rand(m);2)下列变量名中()是合法的:A) Char_1; B) x*y; C) x\y; D) end2)定义a=['abc';'cde'] ,运行reshape(a,[3,2])语句产生矩阵为()A) ['ab','cd','de']; B) ['ab';'cd';'de']; C) ['ad';'cc';'be']; D) ['ab';'cc';'de'] 3)定义A=[1,2,3;4,5,6;7,8,9]; 运行A(1,:)*A(:,3)语句计算结果为():A) [ 30,36,42]; B) 36; C) 30; D) 424)下列计算表达式中()是错误的A)y=eval(‘sin(t)’); B) y=feval(‘sin(t)’,t); C) y=feval(@sin,t); D) y=feval(‘sin’,t);5)如果n阶方阵A可逆,则求A逆矩阵的命令是():A) inv(A); B) det(A); C) rank(A); D)以上都不对6)多项式x4-12x3+25x+116的系数向量为():A) [1,-12,25,116]; B) [116,25,-12,1]; C) [1,-12,0,25,116]; D) [116,25,0,-12,1];7)Varagin作为函数声明语句中最后一个输入参数,用于传送不定数目的参数,其数据类型为:A) 数值数组;B)单元数组;C)结构数组;D)函数数柄8)令y=[-1,6,15,-7,31,2,-4,-5],运行[ynew,indx]=sort(y),请问所得indx(2)的具体数值为:A) 1;B) 4;C) 7;D) 89)下列函数中,()用于绘制x,y,z三维空间曲线:A) plot;B) plot3;C) mesh;D) peak三、编程计算题:1)利用结构数据类型定义变量A,用于储存某个学生以下三方面信息:姓名——Dafei、排名——第3以及三门课的成绩:88,99和98。
数学建模matlab作业
数统应数20121323003 王妍数统应数20121323022 胡可旺1 生成5阶矩阵,使其元素满足均值为1,方差为4的正态分布;代码:y=1+sqrt(4)*randn(5)结果:2,生成一个20行5列矩阵A,其元素分别以概率0.7、0.1、0.2取自0、1、4这三个整数,然后将“删除A的全零行”之后的结果赋给矩阵B;for i = 1:20for j = 1:5p = rand();if p<=0.7A(i,j) = 0;elseif p>0.7&&p<=0.8A(i,j) = 1;elseA(i,j) = 4;endendendB = [];for i = 1:20flag = true;for j = 1:5if A(i,j)~=0flag=false;break;endendif ~flagB = [B;A(i,:)];endendB3, (函数文件)对于输入的正整数,判断其是否为素数function [ output_args ] = u3( n )%U3 Summary of this function goes here% Detailed explanation goes herey=1;for i=2:1:sqrt(n)if rem(n,i)==0y=0;breakendendif(y==1)fprintf('是素数')elsefprintf('不是素数')end4,(函数文件)对于输入的正整数,求出其中0的个数;function [ i ] = u4( n )%U4 Summary of this function goes here% Detailed explanation goes herei=0;while n/10~=0if rem(n,10)==0i=i+1;endn=fix(n/10);end5,(函数文件)有n个人围成一圈,按序列编号。
MATLAB编程作业
《Matlab编程训练》作业专业学生姓名班级学号指导教师完成日期实训一 MATLAB 语言介绍和数值计算1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存变量。
122sin 851z e =+.2. 已知 1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦,求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵) A+6*B:A-B+I:(2)A*B和A.*BA*B程序:A=[12 34 -4;34 7 87;3 65 7]B=[1 3 -1;2 0 3;3 -2 7]c=A*B结果:A.*B程序:A=[12 34 -4;34 7 87;3 65 7]B=[1 3 -1;2 0 3;3 -2 7]D=A.*B结果:(3)A^3和A.^3A^3程序:A=[12 34 -4;34 7 87;3 65 7]E=A^3结果:A.^3程序:A=[12 34 -4;34 7 87;3 65 7]C=A.^3(4)A/B及B\AA/B程序:A=[12 34 -4;34 7 87;3 65 7]B=[1 3 -1;2 0 3;3 -2 7]C=A/B结果:B\A程序:A=[12 34 -4;34 7 87;3 65 7]B=[1 3 -1;2 0 3;3 -2 7]D=B\A结果:(5)将矩阵C=B\A的右下角2*2子矩阵赋给D, 并(3)保存变量(mat文件)程序:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];C=B*inv(A);D=C(2:3,2:3)结果:3. 求得矩阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=34157864653434533145A 的每行最大元素所在的位置?(至少两种方法) 第一种:A=[5 14 33;45 43 3;65 4 6;78 15 34][RowMax Order]=max(A')结果:第二种:A=[5 14 33;45 43 3;65 4 6;78 15 34][Max_num,index]=max(A,[],2)结果:实训二 MATLAB 编程基础1. 求[25,1258]之间能被15整除的数的个数。
数学建模MATLAB培训2
模再型编设写在一t=个0时脚刻本缉M私文艇发件现走 Y
私c船lea,r 走私船以速度a平行于Y轴
正ts向=0行:0驶.05,:0缉.5私; 艇按速度b以指
向x走0=私[0船0]的'; 方向行驶(b>a),在任
Q(c, at)
意[时t x刻]=otd缉e45私(@艇ji位si,于ts,点x0P);(x,y),则 M文件以ex4t1作为文件
0.3500 12.8170 4.5552 15.0000 7.0000
0.4000 13.9806 6.1773 15.0000 8.0000
0.4500 14.7451 8.0273 15.0000 9.0000
0.5000 15.0046 9.9979 15.0000 10.0000
3、数据拟合、polyfit、人口预报.
v=[x(:,2);y(2:end,2)];
%速度函数
L=length(h);dt=(T+12)/(L-1);
%用三点公式求加速度
ac(1)=(-3*v(1)+4*v(2)-v(3))/2/dt;
%起始点加速度
for k=2:L-1
ac(k)=(v(k+1)-v(k-1))/2/dt;
%中间点加速度
设置的搜索路径,然后在解方程的脚本文件中调用:
[t, x]=ode23(@f,ts,x0,options) 或
ts=[a, b]表示自变量的 初值到终值的区间
[t, x]=ode45('f',tspan,x0,options) 或ts=[t0,t1,t2,…tf]
options用于设置误差限(缺省时相对误差为10-3,绝对误差 为10-6),用语句实现为:
数学建模-MATLAB-暑期培训资料
数学建模暑期培训-MATLAB^件庄思发1熟悉软件操作界面1.1命令窗口MATLAB 执行命令的主窗口,命令于提示符“ >>之后输入,回车确认执行;1.2命令历史窗口显示用户过去所使用过全部命令,可双击后重新执行,避免重新输入命令,或使用上、下方向键调出修改后再重新执行;甸Hi Edi Dtbyg Dtsttop wlnd»n mp □ •■■HE 2 *Hli Ed£ Di^v 吗音卅打Mdp□| ■¥ lb It K P*M T: |eWIUBTirat~ jJ I 的1.3工作空间窗口显示当前MATLA在计算机内存中存在的变量、数据等详细信息,以便用户查看,可删除其中若干个或全部删除;1.4当前工作目录窗口显示用户当前工作时所处在的目录位置,该目录是用户存放及打开文件时MATLA指向的默认目录,可通过其目录选择器重新指向新用户目录;在该窗口中可以观察到当前目录中所有文件的详细情况,可以直接选定某人文件,通过单击右键运行或打开该文件进行编辑。
2基本运算2.1四则运算+ - * /2.2乘方、开方“” sqrt()1例:23: >>2A3/2空:》2八(1/3) /2.3 指数函数exp(x), e: exp(1);;e2: exp(2);2.4标点符号逗号(,)输出结果;分号(;)不输出结果2.5常量与变量常量圆周率二:pi;无穷大:::inf;等变量定义变量不必事先声明,MATLAB会通过变量所获得的值自动识别, 变量名必须以字母开头,后可接字母、数字或下划线,不可使用空格与标点符号;注意:变量名区分大、小写;2.6常用函数:三角函数sin(x)、cos(x)、asin(x)、acos(x)、tan(x)、atan(x)、cot(x) acot(x).指数、对数函数exp(x) log(x) log10(x) log2(x).四舍五入roun d(x)求余mod(x,y):余数符号与y相同;rem(x,y):余数符号与x相同.舍入函数fix(x):与零最接近的整数;floor(x):不大于x的整数;ceil(x):不小于x的整数.求模(绝对值)abs(x)3数值运算3.1向量运算向量(数组)表示元素用中括号括起,元素间用逗号或空格或分号隔开;例: >>a=[2 4 6 7 8] />>b=[1;4;7;9] /等差向量冒号生成法初值:步长:终值;例:>>c=1:10;/ >>d=1:0.5:10/linspace (初值,终值,分段数)例:>>e=linspace(1,10,10)/ >>linspace(0,10,6)/向量(数组)运算向量(数组)与常数的加、减例:>>a=[2 3 5] / >>a+3,a-2/向量(数组)与常数的乘、除例:>>a*2,a/3/向量与向量的加、减法:元素个数必须相同例:>>a=[1 3 5],b=[2,4,6],c=1:4,a+b,a-b,a+c Z向量点积:dot(a,b);向量维数不超过3例:>>dot(a,b)/向量叉积:cross(a,b;向量维数不超过3例: >>cross(a,b)/数组的乘、除:.*; ./;例:>>a.*b, a./b/数组的乘方:.人例:>>a42/向量(数组)元素的选取单下标a([])例:>>a=1:10;a(7)/%选取向量a的第七个元素例:>>a([1 3 7]) /%选取向量a的第1、3、7个元素向量(数组)排序sort(a):从小到大;例:>>a=rand(1,10),sort(a/%产生10个元素的行向量,并进行升序排列向量(数组)长度或大小的检测len gth(a);例:>>length(a)/%显示向量元素个数size(a)例:>>size(a) / %将以向量形式显示矩阵a的行数与列数向量(数组)求和sum(a)例:>>sum(a)/%求向量a的元素总和向量与多项式表示:p(x) =a o X n - a!x n^ ■亠a.: p 二心。
matlab建模作业
Matlab建模作业9. 用MATLAB求解下列无约束极化问题:(1)function y=jxyh2_8fun(x)y=2*x(1)^2+x(2)^2-2*x(1)*x(2)-2*x(1);options(7)=0;options=optimset('Display','iter','LargeScale','off');x0=[1,0];[x,fval,exitflag,output]=fminunc(@ jxyh2_8fun,x0,options)First-order Iteration Func-count f(x) Step-size optimality0 3 0 21 9 -0.8 0.2 0.42 12 -0.856805 1 0.3383 15 -1 1 4.47e-08 Local minimum found.Optimization completed because the size of the gradient is less thanthe default value of the function tolerance.<stopping criteria details>x =1.0000 1.0000fval =-1.0000exitflag =1output =iterations: 3funcCount: 15stepsize: 1firstorderopt: 4.4703e-08algorithm: 'medium-scale: Quasi-Newton line search'message: [1x436 char](2)function y=jxyh2_6fun(x)y=(x(1)-2)^2+(x(1)-2*x(2))^2;options(7)=0;options=optimset('Display','iter','LargeScale','off');x0=[1,1];[x,fval,exitflag,output]=fminunc(@ jxyh2_6fun,x0,options)First-order Iteration Func-count f(x) Step-size optimality0 3 2 41 9 0.4 0.1 0.82 12 0.286391 1 0.6773 15 2.96833e-15 1 2.42e-08 Local minimum found.Optimization completed because the size of the gradient is less thanthe default value of the function tolerance.<stopping criteria details>x =2.0000 1.0000fval =2.9683e-15exitflag =1output =iterations: 3funcCount: 15stepsize: 1firstorderopt: 2.4238e-08algorithm: 'medium-scale: Quasi-Newton line search'message: [1x436 char](3)function y=jxyh2_7fun(x)y=sin(x(1))+cos(x(1))+sin(x(2))+cos(x(2))+cos(x(1))*cos(x(2)); options(7)=0;options=optimset('Display','iter','LargeScale','off');x0=[pi/3,pi/3];[x,fval,exitflag,output]=fminunc(@ jxyh2_7fun,x0,options)First-order Iteration Func-count f(x) Step-size optimality0 3 2.98205 0.7991 21 -2.35474 3.63835 0.4612 27 -2.45351 0.1 0.2493 30 -2.48411 1 0.02494 33 -2.48443 1 0.0008775 36 -2.48444 1 3.89e-066 39 -2.48444 1 1.9e-07Local minimum found.Optimization completed because the size of the gradient is less thanthe default value of the function tolerance.<stopping criteria details>x =4.2242 4.2242fval =-2.4844exitflag =1output =iterations: 6funcCount: 39stepsize: 1firstorderopt: 1.9049e-07algorithm: 'medium-scale: Quasi-Newton line search'message: [1x436 char]10.function y=jxyh2_5fun(x)y=x(1)^2+x(2)^2-x(1)*x(2)-10*x(1)-4*x(2)+60;options(7)=0;options=optimset('Display','iter','LargeScale','off');x0=[0,0];[x,fval,exitflag,output]=fminunc(@ jxyh2_5fun,x0,options)First-order Iteration Func-count f(x) Step-size optimality0 3 60 101 6 49.16 0.1 8.42 9 8.8863 1 1.873 12 8.03586 1 0.344 15 8.00002 1 0.007795 18 8 1 0.0001656 21 8 1 1.11e-06 Local minimum found.Optimization completed because the size of the gradient is less thanthe default value of the function tolerance.<stopping criteria details>x =8.0000 6.0000fval =8.0000exitflag =1output =iterations: 6funcCount: 21stepsize: 1firstorderopt: 1.1126e-06algorithm: 'medium-scale: Quasi-Newton line search'message: [1x436 char]11.目标函数的M文件:function f=objfun(x)f=4*x(1)-x(2)^2-12;非线性约束条件的M文件:function [c,ceq]=confun(x)c=x(1)^2+x(2)^2-25;ceq[];(1)当取初始值为X1=[2,1]优化函数文件:A=[];b=[];Aeq=[];beq=[];x0=[2,1]; lb=[0,0];ub=[5,5];>> options=optimset('Algorithm','interior-point','display','iter');[x,fval,exitflag,output]=fmincon(@objfun,x0,[],[],[],[],lb,ub,@confun,options)First-order Norm of Iter F-count f(x) Feasibility optimality step0 3 2.142826e+02 5.000e-01 2.941e+021 6 7.139569e+00 7.385e-01 4.598e+01 1.590e+002 9 6.661327e+00 7.706e-01 1.165e+01 5.034e-023 13 6.676263e+00 7.698e-01 2.956e+00 8.210e-044 16 1.646195e+01 4.254e-01 9.309e+00 3.558e-015 19 4.538102e+01 1.128e-03 2.914e+01 4.283e-016 22 4.482735e+01 0.000e+00 8.548e-01 8.301e-037 25 4.481729e+01 0.000e+00 1.025e-02 9.602e-058 28 4.481690e+01 0.000e+00 4.307e-05 3.825e-06 Local minimum found that satisfies the constraints.Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance,and constraints are satisfied to within the default value of the constraint tolerance. <stopping criteria details>x =1.5000 0.0000fval =44.8169exitflag =1output =iterations: 8funcCount: 28constrviolation: 0stepsize: 3.8252e-06algorithm: 'interior-point'firstorderopt: 4.3066e-05cgiterations: 0message: [1x777 char](2) 当取初始值为X1=[4,1]优化函数文件:A=[];b=[];Aeq=[];beq=[];x0=[4,1]; lb=[0,0];ub=[5,5];options=optimset('Algorithm','interior-point','display','iter');[x,fval,exitflag,output]=fmincon(@objfun,x0,[],[],[],[],lb,ub,@confun,options)First-order Norm of Iter F-count f(x) Feasibility optimality step0 3 4.640843e+03 5.000e-01 6.390e+031 6 4.132897e+00 6.766e-01 2.054e+02 3.984e+002 9 3.870005e+00 7.256e-01 4.834e+00 5.030e-023 14 4.015278e+00 6.929e-01 3.843e+00 3.487e-024 17 4.820503e+00 5.303e-01 4.669e+00 1.664e-015 20 8.705412e+00 0.000e+00 1.074e+01 5.420e-016 23 8.714622e+00 0.000e+00 1.226e-01 4.081e-037 26 8.513783e+00 0.000e+00 3.353e-01 1.564e-028 29 8.500271e+00 0.000e+00 3.901e-03 9.222e-049 32 8.500400e+00 0.000e+00 1.333e-04 8.357e-0610 35 8.500002e+00 0.000e+00 2.420e-04 3.211e-0511 38 8.500001e+00 0.000e+00 2.667e-07 9.655e-08 Local minimum found that satisfies the constraints.Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance,and constraints are satisfied to within the default value of the constraint tolerance. <stopping criteria details>x =0.0000 1.5000fval =8.5000exitflag =1output =iterations: 11funcCount: 38constrviolation: 0stepsize: 9.6548e-08algorithm: 'interior-point'firstorderopt: 2.6667e-07cgiterations: 0message: [1x777 char]>>(3) 当取初始值为X1=[4,1]优化函数文件:A=[];b=[];Aeq=[];beq=[];x0=[3,3]; lb=[0,0];ub=[5,5];options=optimset('Algorithm','interior-point','display','iter');[x,fval,exitflag,output]=fmincon(@objfun,x0,[],[],[],[],lb,ub,@confun,options)First-order Norm of Iter F-count f(x) Feasibility optimality step0 3 1.948297e+03 4.500e+00 2.583e+031 6 3.413410e+01 0.000e+00 2.134e+02 3.036e+002 9 3.244848e+01 0.000e+00 1.701e+01 9.253e-023 12 9.149280e+00 0.000e+00 8.340e+00 1.924e+004 16 9.027362e+00 0.000e+00 8.281e+00 1.460e-025 20 8.807374e+00 0.000e+00 6.507e+00 1.275e-026 24 8.716517e+00 0.000e+00 3.252e+00 5.343e-037 27 8.693287e+00 0.000e+00 6.601e-02 1.382e-038 30 8.504497e+00 0.000e+00 6.421e-02 1.533e-029 33 8.500385e+00 0.000e+00 6.168e-04 3.073e-0410 36 8.500004e+00 0.000e+00 2.495e-05 2.998e-0511 39 8.500000e+00 0.000e+00 3.377e-07 3.206e-07 Local minimum found that satisfies the constraints.Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance,and constraints are satisfied to within the default value of the constraint tolerance. <stopping criteria details>x =0.0000 1.5000fval =8.5000exitflag =1output =iterations: 11funcCount: 39constrviolation: 0stepsize: 3.2062e-07algorithm: 'interior-point'firstorderopt: 3.3773e-07cgiterations: 0message: [1x777 char]12目标函数的M文件:function f=objfun(x)f=x(1)+x(2);非线性约束条件的M文件:function [c,ceq] =confun(x)c=x(2)-x(1)^2;ceq[];优化函数文件:A=[];b=[];Aeq=[];beq=[];x0=[1,1]; lb=[0,1];ub=[];options=optimset('Algorithm','interior-point','display','iter');[x,fval,exitflag,output]=fmincon(@objfun,x0,[],[],[],[],lb,ub,@confun,options) Your initial point x0 is not between bounds lb and ub; FMINCONshifted x0 to strictly satisfy the bounds.First-order Norm of Iter F-count f(x) Feasibility optimality step0 3 6.757703e+01 5.000e-01 1.096e+021 6 1.118617e+01 0.000e+00 1.686e+01 1.013e+002 9 9.087361e+00 7.559e-04 2.638e+00 2.876e-013 15 9.225312e+00 0.000e+00 2.512e+00 2.371e-024 19 9.038822e+00 0.000e+00 2.192e+00 1.612e-025 23 8.808089e+00 0.000e+00 1.759e+00 1.329e-026 26 8.675067e+00 0.000e+00 1.035e-01 8.091e-037 29 8.502313e+00 0.000e+00 1.005e-01 1.491e-028 32 8.500387e+00 0.000e+00 9.967e-04 1.231e-049 35 8.500004e+00 0.000e+00 6.956e-05 3.054e-0510 38 8.500004e+00 0.000e+00 2.000e-06 4.335e-10 Local minimum found that satisfies the constraints.Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance,and constraints are satisfied to within the default value of the constraint tolerance. <stopping criteria details>x =0.0000 1.5000fval =8.5000exitflag =1output =iterations: 10funcCount: 38constrviolation: 0stepsize: 4.3351e-10algorithm: 'interior-point'firstorderopt: 2.0000e-06cgiterations: 0message: [1x777 char]。
数学建模(Matlab)
数学规划作业(MatLab)1、某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台.每季度的生产费用为 ()2f x ax bx=+(单位:元), 其中x 是该季度生产的台数.若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c 元.已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a =50、b =0.2、c =4,问:工厂应如何安排生产计划,才能既满足合同又使总费用最低.讨论a 、b 、c 变化对计划的影响,并作出合理的解释.解:问题的分析和假设: 分析:问题的关键在于由于工厂的生产能力足以满足每个季度用户的需求,但是为了使总费用最少,那么利用每个季度生产费用的不同,可用利用上个生产费用低的季度多生产来为下个季度进行准备,前提是本月节省下的费用减去总的发动机存储费用还有剩余,这样生产才有价值,才可能满足合同的同时又能使总费用最低。
基本假设:1工厂的生产能力不受外界环境因素影响。
2为使总费用最低,又能满足合同要求,各个季度之间的生产数量之间是有联系的。
3第一季度开始时无存货。
4工厂每季度的生关费用与本季度生产的发动机台数有关。
5生产要按定单的数量来进行,生产的数量应和订单的数量相同,以避免生产出无用的机器。
符号规定:X1―――第一季度生产发动机的数量 X2―――第二季度生产发动机的数量 X3―――第三季度生产发动机的数量 建模:1.三个季度发动机的总的生产量为180台。
2.每个季度的生产量和库存机器的数量之和要大于等于本季度的交货数量。
3.每个月的生产数量要符合工厂的生产能力。
4.将实际问题转化为非线性规划问题,建立非线性规划模型 目标函数min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(x1-40)+4(x1+x2-100) 整理,得min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(2x1+x2-140) 约束函数 s.t x1+x2≥100; x1+x2+x3=180; 40≤x1≤100; 0≤x2≤100;0≤x3≤100;求解的Matlab程序代码:M-文件 fun.m: function f=fun (x);f=50*(x(1)+x(2)+x(3))+0.2*(x(1)^2+x(2)^2+x(3)^2)+4*(2*x(1) +x(2)-140)主程序fxxgh.m:x0=[60;60;60];A=[-1 -1 0];b=[-100];Aeq=[1 1 1];beq=[180];vlb=[40;0;0];vub=[100;100;100];[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,vlb,vub)计算结果与问题分析讨论:计算结果:x = 50.000060.000070.0000fval = 11280问题分析讨论:由运算结果得:该厂第一季度、第二季度、第三季度的生产量分别是50台、60台和70台时,才能既满足合同又使总费用最低,费用最低为11280元。
2.建模作业_MATLAB(1)
《数学建模》课程作业题第七章MATLAB(1)1.一般所说的MATLAB的六个窗口是什么?主窗口、命令窗口、历史窗口、当前目录窗口、工作间管理窗口、系统帮助窗口2.编写MATLAB程序是在哪个窗口进行的?一般编写程序在编辑器窗口中M文件模式进行编写,也可在command window进行编写。
3.MATLAB程序默认存在哪里?如何保存到自己的优盘中?默认存储路径在MATLAB安装路径的work文件夹下,在current directory window 进行修改M文件的路径到自己U盘即可。
4. M文件的特点是什么?M文件语法简单,调试容易,人机交互性强。
用户可以使用任何字处理软件对其进行编写和修改。
5. 什么是命令式M文件?什么是函数式M文件?命令式M文件命令式M文件就是命令行的简单叠加,MATLAB会自动按顺序执行文件中的命令。
这样就解决了用户在命令窗口运行许多命令的玛法,还可以避免用户做许多重复性的工作。
函数式M文件函数式文件主要用以解决参数传递和函数调用的问题,他的第一个语句以function语句为引导6. 编写如下问题的M文件(1). 计算第n个Fibonnaci数运行程序%fibfun.m duanfunction f=fibfun(n)if n>2f=fibfun(n-1)+fibfun(n-2);elsef=1;end运行结果:fibfun(18)ans = 2584(2). 通过循环计算矩阵的幂exp(A)=1+A+A2/2!+A3/3!+...运行程序%2-2 duanA=[2 3;3 4];e=zeros(size(A));f=eye(size(A));k=1;while norm(e+f-e,1)>0e=e+f;f=A*f/k;k=k+1;enddisp(e)运行结果e =162.7871 224.6754224.6754 312.5707(3). 找一个分段函数,计算函数值运行程序:clccleardisp('请输入一个x值:');x=input('x=');if(x>0)y=x^2+5elsey=x^3-5end运行结果:请输入一个x值:x=2y =9(4). 输入20个数,求其中最大数和最小数.要求分别用循环结构和调用MATLAB的max函数、min函数来实现.运行程序:clear;clc;input('请在中括号内连续随机输入20个数,每个数间用空格隔开')a=input('');maxx=a(1);for i=2:length(a)if a(i)>=maxxmaxx=a(i);elsemaxx;endendminn=a(1);for i=2:length(a)if a(i)<=minnminn=a(i);elseminn;endendmax=max(a);min=min(a);disp('循环结构结果:')disp(['最大数为maxx=',num2str(maxx)])disp(['最小数为minx=',num2str(minn)])disp('调用库函数结果')disp(['max=',num2str(max)])disp(['min=',num2str(min)])运行结果:请在中括号内连续随机输入20个数,每个数间用空格隔开[6 10 2 15 1 2 3 4 5 6 7 8 9 88 51 14 22 64 46 55]循环结构结果:最大数为maxx=88最小数为minx=1调用库函数结果:max=88min=1(5). 用if-else-end 语句语句实现以下计算,其中a 、b 、c 的值从键盘输入.⎪⎪⎪⎩⎪⎪⎪⎨⎧<≤+<≤+<≤++=55.3.5 ,ln 53.1.5 ,sin 51.0.5 ,2x x c b x x b a x c bx ax y c 运行程序function y = work25(a,b,c,x)if (x>=0.5&&x<1.5)y=a*x^2+b*x+c;elseif (x>=1.5&&x<3.5)y=a*(sin(c))^b+x;elseif (x>=3.5&&x<5.5)y=log(abs(b+x/c));end运行结果work25(1,2,3,1)ans =6(6). 编写一个函数文件,用于求两个矩阵的乘积和点乘,然后再命令文件中调用该函数.运行程序函数:function [x,y]=mul(a,b)x=a*b;y=a.*b;end%主函数a=input('请输入一个矩阵:')b=input('请再输入一个矩阵:(注意两矩阵要可以相乘)')[x,y]=mul(a,b);disp('这两个矩阵的乘积为:')xdisp('这两个矩阵的点乘为:')y运行结果请输入一个矩阵:[1 1;2 2]a =1 12 2请再输入一个矩阵:(注意两矩阵要可以相乘)[2 2;1 1]b =2 21 1这两个矩阵的乘积为:x =3 36 6这两个矩阵的点乘为:y =2 22 2。
数学建模中30道经典MATLAB程序
编程1、编写一程序,要求输入五个整数,然后由小到大排序再输出。
%输入n个数,然后由小到大输出a=input('输入数据:')n=length(a); %输入数据的长度i=1;j=1; %赋初值for i=1:n %需要进行n次比较for j=2:n %与相邻的进行n-1次比较if a(j-1)>a(j)b=a(j-1);a(j-1)=a(j);a(j)=b; %比较前者是否比后者大,大的就互换endendendfprintf(' %d',a) ;2、将一个整型数组的元素按逆序重新存放(如原序为:8,6,5,4改为4,5,6,8)。
function lin5a=input('输入数据:')n=length(a);%求输入a的长度for i=1:n/2b=a(i);a(i)=a(n+1-i);a(n+1-i)=b;endfprintf(' %d',a)3、输入一个字符,如果是大写字母,则将其转换成小写并输出,若是小写,则直接输出;若是非字母字符则打印:‘datarror’.function xin2a=input('输入数据:','s')if a>=65&a<=90fprintf('shuchu is %c\n',a+32);elseif a>=97&a<=122fprintf('shuchu is %c\n',a);elsea='dataerror';fprintf('shuchu is %s',a);end4、输入一个整数,写一程序输出它是几位数。
function lin6a=input('输入数据:','s')n=length(a)%求输入a的长度b=n;fprintf('weishu %d',b);end5、写一程序求1!+2!+ (10)function wi=1;j=1;s=0; %赋初值while i<=10j=j*i;s=s+j;i=i+1;endfprintf('s is %d\n',s);6、从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+……(共n项)的和。
数学建模matlab编程三
数学建模matlab编程三水仙花数水仙花数是指一个3位自然数,其各位数字的立方和等于该数本身,输出1000以内的水仙花数,并求其个数。
y=[];%空矩阵count=0;for i=100:999a=rem(i,10);b=rem(fix(i/10),10);c=fix(i/100);if(a^3+b^3+c^3==i)y=[y,i];%不断扩充count=count+1;endendy,count突变素数当一个素数(只有两个正因数(1和自己)的自然数即为素数)与其前一个素数的差值大于等于5时,将其称之为“突变素数”(2不是“突变素数”),求10000以内的“突变素数”的个数.y=[];k=0;count=0;for i=1:10000if isprime(i)==1if (i-k)>=5y=[y,i];count=count+1;endk=i;endendy,count结果:count=820方差分析1试验3种猪饲料的饲养效果,得到9头猪的增重(单位:kg)如下:用matlab编程做作方差分析,估计各个总体的未知参数μi 和μ。
(不允许用anova1工具箱)先用sas得到结果方便后面检验:data ex;do a=1 to 3;input n@@;do i=1 to n;input x@@;output;end;end;cards;4 51 40 43 483 23 25 262 23 28;proc anova data=ex;class a;model x=a;run;sst——(每个因素的均值-总均值)^2的和ssa——每个水平的个数*(每个水平的均值-总均值)^2的和sse=sst-ssaf=(ssa/(r-1))/(sse/(n-r)) r为水平个数a1=[51,40,43,48];a2=[23,25,26];a3=[23,28];a=[a1,a2,a3];n=length(a);b=[1 1 1 1 2 2 2 3 3];sst=0;for i=1:nsst=sst+(a(i)-mean(a))^2;endssa=0;for i=1:3an=a(b==i);num=length(an);ssa=ssa+num*(mean(an)-mean(a))^2;endsse=sst-ssa;f=(ssa/2)/(sse/(n-3));p=1-fcdf(f,2,n-3);ssa,sse,sst,f,p可以看出和sas所得结果一样方差分析2测定4种种植密度下金皇后玉米的千粒重(单位:g)如下:用matlab编程做作方差分析,估计各个总体的未知参数mi和μ。
数学建模训练习题(含代码程序)
5组 于金龙 王超 焦艳彬快速评卷策略摘要本文研究的是快速评卷问题,在保证准确率和公平公正的原则下,使每位评卷人评阅的试卷总数最小,即满足总的工作量最小。
为解决该问题,在考虑系统误差的前提下,本文建立了多目标优化模型和圆桌评卷模型,利用计算机仿真,建立了以下两种方案,并验证了方案的合理性。
对于方案一,采取了截至分数线淘汰制,每一轮我们将试卷尽可能的平均分成8份,根据该轮试卷的期望值设定一个截至分数线,淘汰分数线以下的所有试卷,剩下的试卷带编号进入下一轮。
当最后的试卷数在2W 附近时,停止进行下一轮仿真,将2W 左右份试卷分给每一位评卷老师进行评阅打分,然后各试卷取平均分进行排名,取前三名为最终优胜者,并记录这三份试卷的编号进行对应。
最后我们通过对上述批卷次数进行统计,一组仿真结果如下:总阅卷次数平均阅卷次数准确率 2182797.1%对于方案二,采用了圆桌评卷模型,将所有试卷尽可能平均分成8份(对应8位带有标号的评卷老师),以第一份试卷为例,首先由第一位老师进行评分,淘汰60%,将余下试卷(含试卷标号)交给右手边的第二位老师进行评分,然后将评分与第一位老师的评分取平均值进行排名,淘汰40%,传给右手边的第三位老师进行评分,按照上一回合的排名制继续淘汰,直至该份试卷只剩下一个则不再淘汰。
将这个试卷依次交给右手边未评过此卷的老师,进行平均打分,最后得出此份中的最优试卷分数及标号。
同样方法,得到剩余7份试卷各自的最优试卷份数及标号,最后对所得8份试卷进行排名,取成绩较高者前三名为优胜试卷,并记录这三份试卷的标号,统计评卷总次数,一组仿真结果如下:总阅卷次数平均阅卷次数准确率 21226.598.3%最后对方案进行分析和改进,对于三种变量:试卷数量、评卷人数和优胜者数量,当其中两种变量不变,调整第三变量时,观察各方案准确率的浮动,得出三者变动规律,寻求出最优评卷策略。
关键字关键字::计算机仿真 圆桌模型 系统误差 多目标优化1.问题重述在确定像数学建模竞赛这种形式比赛的优胜者时,常常要评阅大量的答卷,比如说,有P=100份答卷。
数学建模 Matlab编程练习2
第2章 MATLAB 矩阵运算基础2.1 在MATLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? 2.5 计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。
2.6 求⎥⎦⎤⎢⎣⎡+−+−+−+−++=i 44i 93i 49i 67i23i 57i41i 72i 53i 84x 的共轭转置。
2.7 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
2.8 “左除”与“右除”有什么区别?2.9 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
2.10 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
2.11 ⎥⎦⎤⎢⎣⎡−=463521a ,⎥⎦⎤⎢⎣⎡−=263478b ,观察a 与b 之间的六种关系运算的结果。
2.12 []7.0802.05−−=a ,在进行逻辑运算时,a 相当于什么样的逻辑量。
2.14 角度[]604530=x ,求x 的正弦、余弦、正切和余切。
2.15 用四舍五入的方法将数组[2.4568 6.39823.9375 8.5042]取整。
2.16 矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=728365219a ,分别对a 进行特征值分解、奇异值分解、LU 分解、QR 分解及Chollesky 分解。
2.17 将矩阵⎥⎦⎤⎢⎣⎡=5724a 、⎥⎦⎤⎢⎣⎡=3817b 和⎥⎦⎤⎢⎣⎡=2695c 组合成两个新矩阵: (1)组合成一个4×3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡237912685574 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即[]296531877254第3章 数值计算基础3.2 求解多项式x 3-7x 2+2x +40的根。
数学建模Matlab上机实训题目
数学建模Matlab上机实训题目一、矩阵及数组操作:1.利用基本矩阵产生3×3和15×8的单位矩阵、全1矩阵、全0矩阵、均匀分布随机矩阵([-1,1]之间)、正态分布矩阵(均值为1,方差为4)。
2.利用fix及rand函数生成[0,10]上的均匀分布的10×10的整数随机矩阵a,然后统计a中大于等于5的元素个数。
3.在给定的矩阵中删除含有整行内容全为0的行,删除整列内容全为0的列。
二、绘图:4.在同一图形窗口画出下列两条曲线图像:y1=2x+5;y2=x^2-3x+1,并且用legend标注。
5.画出下列函数的曲面及等高线:z=x^2+y^2+sin(xy).三、程序设计:6.编写程序计算(x在[-3,3],间隔0.01)7.有一列分数序列:求前15项的和。
8.用至少三种方法编写函数实现求任意整数n的阶乘。
9*.将任意偶数m写成两个素数p1、p2的和(试着写出所有的m=p1+p2的可能形式)。
10*.是否任意3的倍数m可以写成两个素数p1、p2、p3的和(试着写出所有的m=p1+p2+p3 的可能形式)?四、数据处理与拟合初步:分别采用y=c1+c2e^(-t)和y=d1+d2te^(-t)进行拟合,并画出拟合曲线进行对比。
12.计算下列定积分:13.微分方程组当t=0时,x1(0)=1,x2(0)=-0.5,求微分方程t在[0,25]上的解,并画出相空间轨道图像。
14.设通过测量得到时间t与变量y的数据:t=[0 0.3 0.8 1.1 1.6 2.3];y=[0.5 0.82 1.14 1.25 1.35 1.41];分别采用多项式:y=a0+a1t+a2t2和指数函数y=b0+b1e-t+b2te-t进行拟合,并计算均方误差、画出拟合效果图进行比较。
15.V an der Pol(范德堡)方程是典型的二阶非线性方程之一:y”-u(1-y^2)y’+y=0,y(0)=2,y‘(0)=0;其中u>0为标量。
数学建模竞赛培训之编程MATLAB实用教程
数学建模竞赛培训之编程MATLAB实用教程在当今的学术和工程领域,数学建模竞赛越来越受到重视,而MATLAB 作为一款强大的数学计算和编程软件,在其中发挥着至关重要的作用。
如果你正在为数学建模竞赛做准备,那么掌握 MATLAB 的编程技巧将为你在竞赛中取得优异成绩提供有力的支持。
接下来,让我们一起开启 MATLAB 编程的实用教程之旅。
一、MATLAB 基础首先,我们来了解一下 MATLAB 的基本操作界面。
当你打开MATLAB 时,会看到一个命令窗口,这是我们输入命令和查看结果的地方。
变量是编程中的重要概念,在 MATLAB 中,变量无需事先声明类型,直接赋值即可使用。
例如,我们可以输入`x = 5` ,此时`x` 就被赋值为 5 。
MATLAB 支持多种数据类型,如数值型(包括整数和浮点数)、字符型、逻辑型等。
二、矩阵操作矩阵在数学建模中经常用到,MATLAB 对矩阵的操作非常方便。
可以通过直接输入元素来创建矩阵,比如`A = 1 2 3; 4 5 6` 就创建了一个 2 行 3 列的矩阵`A` 。
矩阵的运算也十分简单,加法、减法、乘法等都有相应的运算符。
例如,两个矩阵相加可以直接使用`A + B` 。
三、函数的使用MATLAB 拥有丰富的内置函数,大大提高了编程效率。
比如求矩阵的行列式可以使用`det()`函数,求矩阵的逆可以使用`inv()`函数。
我们还可以自己定义函数,语法如下:```matlabfunction output_args = function_name(input_args)%函数体end```四、绘图功能在分析数据和展示结果时,绘图是必不可少的。
MATLAB 能够绘制各种类型的图形,如折线图、柱状图、饼图等。
以绘制简单的折线图为例,使用`plot()`函数,如`plot(x,y)`,其中`x` 和`y` 是数据向量。
五、数值计算在数学建模中,常常需要进行数值计算,如求解方程、求积分等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学建模培训作业 (MATLAB 编程部分)
1. 请使用switch 语句将百分制的学生成绩转换为五级制的成绩输出。
2. 猜数游戏:首先由计算机随机产生一个 [1,100] 之间的一个整数,然后由用户猜测所产生的这个数。
根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示 “High” ,小于则显示 “ Low ” ,等于则显示 “You won !”,同时退出游戏。
用户最多有 7 次机会。
3. 使用for 结构计算1+2+3+…+100。
4. 设计一个九九乘法表。
5. 使用while 结构计算1+2+3+…+100。
6. 求1!+2!+ …+10!的值。
7. 编程生成三对角矩阵。
1
10000011100000001110000000111000000011100
000001110000000111000000011100
1
1
轾犏犏犏犏犏犏犏
犏犏
犏犏犏犏犏犏犏犏臌
8. 计算分段函数的值,要求根据不同的x 输入,给出相应的结果。
223135
x x y x x ìï-ïïï+ïï=íï-ïïïï+ïî 110011x x x x ?-< ?>
9. 已知1
1111
1(1)435721
n n p -?+-++-- ,编程求 的近似值。
10.
输入下面的矩阵
12345678
910111213141516A 轾犏犏犏=犏犏
犏臌
编程求该矩阵的对角线元素之和,并找出最大和最小元素的值以及其所在的行、列号。
11.
求水仙花数。
如果一个三位数的个位数、十位数和百位数的立方和等于该数自身,
则称该数为水仙花数。
编一程序求出所有的水仙花数。
12. 给定两个实数a 、b 和一个正整数n ,计算()k a b +和()k a b -,其中n k ,,2,1 。
13. 编写函数,生成一个1!,2!,…,n!的阶乘表。
14. 编一个函数统计字符串中单词的个数。
15.
求n 阶勒让德多项式的值,其递归公式为:
(,)((2*
1)**(1,)
(p n x n x p n x n p n
n
=----- (0,)
1;(1,p x p x x
== 16. 编写一个判断任意输入正整数是否为素数的函数文件,并在命令窗口调用。
17.
编写一个万年历计算程序,当输入年月日后,能够计算出该日是星期几。