基于MATLAB的数学建模题
- 格式:docx
- 大小:426.28 KB
- 文档页数:6
第四周3.中的三个根。
,在求8] [0,041.76938.7911.1-)(23=-+=x x x x ffunction y=mj()for x0=0:0.01:8x1=x0^3-11.1*x0^2+38.79*x0-41.769;if (abs(x1)<1.0e-8)x0endend4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。
简单迭代法: function y=jddd(x0)x1=(20+10*x0-2*x0^2-x0^3)/20;k=1;while (abs(x1-x0)>=1.0e-3)x0=x1;x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1;endx1k埃特金法:function y=etj(x0)x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10;x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=1;while (abs(x3-x0)>=1.0e-3)x0=x3;x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10;x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1;end2,020102)(023==-++=x x x x x fx3k牛顿法:function y=newton(x0)x1=x0-fc(x0)/df(x0);k=1;while (abs(x1-x0)>=1.0e-3)x0=x1;x1=x0-fc(x0)/df(x0);k=k+1;endx1kfunction y=fc(x)y=x^3+2*x^2+10*x-20;function y=df(x)y=3*x^2+4*x+10;第六周1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。
1.某市为了创建园林型城市,计划在该市的望湖公园里栽花1800支,由于施工队加强了施工力量,实际每天栽花的数量是原计划的3倍,最终提前2天完成了栽花任务,
问题一:原计划每天栽花的数量是多少支?
问题二:用Matlab求出问题一中的值。
解:问题一:设原计划每天栽花的数量是x支,由题意可得等量关系为:
原计划所用天数-实际所用天数=2,
所以根据等量关系可以列出方程:
18001800
-=
2
3
x x
x =600
故原计划每天栽花的数量是600支。
问题二:
输入命令:
syms x
x=solve(1800/x-1800/(3*x)==2,x) %解方程
运行结果:
x =600
2.一牧场每天支出15元经费用于养一头牛,估计可使一头250公斤重的生牛每天增加5公斤。
目前生牛市场售价为每公斤70元,但是预测每天会降低0.5元,问该牧场应该什么时候出售这样的生牛,可以使获得的利润最大。
(要求用Matlab求解,并附有Matlab 截图)
解:设在第x天出售这样的生牛(初始重250公斤的牛)可以获得的利润为y元。
每头牛投入:15x元
产出:(70-0.5x)(250+5x)元
利润:y=(70-0.5x)(250+5x)-15x=-2.5x^2+210x+17500
使用Matlab软件计算,得
当天数x=42时,利润y取得最大值21910(元)。
故该牧场应该在第42天时候出售这样的生牛,可以使获得的利润最大。
附Matlab计算截图:
①利润y取得最大值的Matlab计算截图
②天数x=42天的Matlab计算截图。
matlab数学建模100例Matlab是一种强大的数学建模工具,广泛应用于科学研究、工程设计和数据分析等领域。
在这篇文章中,我们将介绍100个使用Matlab进行数学建模的例子,帮助读者更好地理解和应用这个工具。
1. 线性回归模型:使用Matlab拟合一组数据点,得到最佳拟合直线。
2. 多项式拟合:使用Matlab拟合一组数据点,得到最佳拟合多项式。
3. 非线性回归模型:使用Matlab拟合一组数据点,得到最佳拟合曲线。
4. 插值模型:使用Matlab根据已知数据点,估计未知数据点的值。
5. 数值积分:使用Matlab计算函数的定积分。
6. 微分方程求解:使用Matlab求解常微分方程。
7. 矩阵运算:使用Matlab进行矩阵的加减乘除运算。
8. 线性规划:使用Matlab求解线性规划问题。
9. 非线性规划:使用Matlab求解非线性规划问题。
10. 整数规划:使用Matlab求解整数规划问题。
11. 图论问题:使用Matlab解决图论问题,如最短路径、最小生成树等。
12. 网络流问题:使用Matlab解决网络流问题,如最大流、最小费用流等。
13. 动态规划:使用Matlab解决动态规划问题。
14. 遗传算法:使用Matlab实现遗传算法,求解优化问题。
15. 神经网络:使用Matlab实现神经网络,进行模式识别和预测等任务。
16. 支持向量机:使用Matlab实现支持向量机,进行分类和回归等任务。
17. 聚类分析:使用Matlab进行聚类分析,将数据点分成不同的类别。
18. 主成分分析:使用Matlab进行主成分分析,降低数据的维度。
19. 时间序列分析:使用Matlab进行时间序列分析,预测未来的趋势。
20. 图像处理:使用Matlab对图像进行处理,如滤波、边缘检测等。
21. 信号处理:使用Matlab对信号进行处理,如滤波、频谱分析等。
22. 控制系统设计:使用Matlab设计控制系统,如PID控制器等。
数学建模MATLAB 语言及应用上机作业11. 在matlab 中建立一个矩阵135792468101234501234A ⎡⎤⎢⎥⎢⎥=⎢⎥-----⎢⎥⎣⎦答案:A = [1,3,5,7,9;2,4,6,8,10;-1,-2,-3,-4,-5;0,1,2,3,4]2. 试着利用matlab 求解出下列方程的解(线性代数22页例14)123412423412342583692254760x x x x x x x x x x x x x x +-+=⎧⎪--=⎪⎨-+=-⎪⎪+-+=⎩ 答案:A=[2 ,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6]; B=[8;9;-5;0]; X=A\B 或A=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6] b=[8,9,-5,0]' X=inv(A)*b3. 生成一个5阶服从标准正态分布的随机方阵,并计算出其行列式的值,逆矩阵以及转置矩阵。
答案:A=randn(5) det(A) inv(A) A'4. 利用matlab 求解出110430002A -⎡⎤⎢⎥=-⎢⎥⎢⎥⎣⎦的特征值和特征向量。
答案:A=[-1,1,0;-4,3,0;0,0,2] [V,D]=eig(A)5.画出衰减振荡曲线3sin3t y et -=在[0,4]π上的图像。
要求,画线颜色调整为黑色,画布底面为白色。
(在实际中,很多打印机时黑白的,因此大多数作图要考虑黑白打印机的效果。
) 给出恰当的x ,y 坐标轴标题,图像x 轴的最大值为4π。
6. 生成一个0-1分布的具有10个元素的随机向量,试着编写程序挑选出向量中大于0.5的元素。
数学建模和Matlab 上机作业2(2016-9-20)跟老师做(不用整合进作业中):上机演示讲解:函数,递归的两个例子的写法。
附:1. Fibonacci Sequence (斐波那契数列)在数学上,费波那西数列是以递归的方法来定义: F1= 1;F2= 1;F (n )=F (n-1)+F (n-2) 2. 阶乘举例:数学描述:n!=1×2×……×n ;计算机描述:n!=n*(n-1)!自己做(需要整合进作业中,提交到系统中):1. 写一个m 文件完成分值百分制到5分制的转换(即输入一个百分制,转换后输出一个5级对应的得分,联系条件控制语句)。
1.在4×4的棋盘上安置4个皇后,要求任意两个皇后不在同一行、不在同一列、不在同一对角线上,输出所有的方案。
for i1=1:4 %i1.。
表示皇后的位置for i2=1:4for i3=1:4for i4=1:4hh=zeros(4,4);%用于模拟棋盘hh(1,i1)=1; % 1表示此处有皇后由于分列,所以不再同一列hh(2,i2)=1;hh(3,i3)=1;hh(4,i4)=1;if i1==i2 || i1==i3 || i1==i4 || i2==i3 || i2==i4 || i3==i4 % 判断是否在同一行continue;endif abs(i1-i2)==1 || abs(i1-i3)==2 || abs(i1-i4)==3 || abs(i2-i3)==1 || abs(i2-i4)==2 ...|| abs(i3-i4)==1 % 判断是否在一条对角线上continue;enddisp(hh);%打印棋盘,1为皇后endendendend2.问题描述:有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的数值的和最接近零。
n=input('输入数塔的层数n(正整数n<=20) ');st=zeros(n);for i1=1:nfor j1=1:i1fprintf('输入第%d行第%d个数据(且数字的绝对值不超过1000000) ',i1,j1);st(i1,j1)=input(' ');endendsz=inf;ls=zeros(1,n(1)-1);lj=zeros(1,n(1)-1);for i1=0:2^n-1ss=st(1,1);for j1=1:n(1)-1ls(j1)=mod(i1,2);i1=floor(i1/2);endk=1;for j1=1:n(1)-1k=k+ls(j1);ss=ss+st(j1+1,k);endif ss<szsz=ss;lj=ls;endendfprintf(' %d ',st(1,1));for i1=1:n(1)-1if lj(i1)==1fprintf(' 向右选择');elsefprintf(' 向左选择');endfprintf('%3d ',st(i1+1));endfprintf(' 最终的最小值是%d \n',sz);3. 现有21根火柴,两人轮流取,每人每次可取走1- 4根,不可多取,也不能不取,谁取最后一根火柴则谁输。
2、已知速度曲线v(t) 上的四个数据点下表所示t=[0.15,0.16,0.17,0.18];v=[3.5,1.5,2.5,2.8];x=0.15:0.001:0.18y=i n t e r p1(t,v,x,'s p l i n e')S=t r a p z(x,y)p=p o l y f i t(x,y,5);d p=p o l y de r(p);d p x=p o l y v a l(d p,0.18)运行结果S=0.0687Dpx=-3、计算图片文件tu.bmp 给出的两个圆A,B 的圆心,和两个圆的两条外公切线和两条内公切线的切点的坐标。
(1)计算A 圆的圆心坐标I=imread('tu.bmp');[m,n]=size(I)BW=im2bw(I)BW(:,200:512)=1;figure, imshow(BW)ed=edge(BW);[y,x]=find(ed);x0=mean(x), y0=mean(y)r1=max(x)-min(x),r2=max(y)-min(y)r=(r1+r2)/4x0 =109.7516y0 =86.7495r1 =162r2 =158r =80(2)B圆的圆心坐标和半径I=imread('tu.bmp');BW=im2bw(I)BW(:,1:200)=1;imshow(BW)ed=edge(BW);[y,x]=find(ed);x0=mean(x), y0=mean(y)r1=max(x)-min(x),r2=max(y)-min(y)r=(r1+r2)/4x0 =334.0943y0 =245.7547r1 =165r2 =158 r = 80.7500外公切线上的切点f=@(x)[(x(1,1)-109.7516)^2+(x(1,2)-86.7495)^2-80.5^2(x(2,1)-334.0943)^2+(x(2,2)-245.7547)^2-80.75^2(x(2,2)-x(1,2))*(x(1,2)-86.7495)+(x(2,1)-x(1,1))*(x(1,1)-109.7516)(x(2,2)-x(1,2))*(x(2,2)-245.7547)+(x(2,1)-x(1,1))*(x(2,1)-334.0943)(x(1,1)-x(2,1))^2+(x(1,2)-x(2,2))^2+0.75^2-(334.0943-109.7516)^2-(245.7 516-86.7495)^2];xy1=fsolve(f,rand(2,2))xy2=fsolve(f,100*rand(2,2))xlswrite('book1.xls',xy1)xlswrite('book1.xls',xy2,'Sheet1','A4')xy1 =156.2419 21.0312380.7270 179.8309xy2 =153.7425 48.4651289.4819 284.38084、求微分方程组的数值解,并画出解曲线dy=@(t,y)[-10*y(1)+10*y(2);28*y(1)-y(2)-y(1)*y(3);-8/3*y(3)+y(1)*y(2)]; [t,y]=ode45(dy,[0,10],[1;0;0])subplot(3,1,1),plot(t,y(:,1),'*')subplot(3,1,2),plot(t,y(:,2),'*')subplot(3,1,3),plot(t,y(:,3),'*')0123456789105、预测2012-2020年美国人口数量。
2023研赛数学建模D题Matlab程序一、背景介绍2023研赛数学建模竞赛是一项面向大学生的数学建模挑战赛,旨在激发学生对数学及其应用的兴趣,培养学生的创新能力和团队合作精神。
在本次竞赛中,D题是一个涉及Matlab编程的实践题目,要求参赛选手利用Matlab软件完成指定的数学问题模型,并撰写相关的程序文档。
二、题目要求D题的具体内容是针对某个实际问题设计数学模型,通过提供的数据集和背景信息,运用数学建模的知识和Matlab编程技能,解决该问题并给出相应的数据分析结果。
具体要求如下:1. 根据所给材料,建立相关的数学模型,包括但不限于方程、不等式、函数等;2. 利用Matlab编写相应的程序,进行模型的数值计算和图形展示;3. 通过数据分析和模拟实验,得出对问题的定量解释和定性描述。
三、解题思路在解答D题时,首先需要对所给的实际问题进行深入理解,明确问题的核心内容和解决的关键点。
在建立数学模型时,应充分考虑问题背后的逻辑关系和数学规律,提出合理的假设和方程,并构建相应的算法。
在编写Matlab程序时,需要注重代码的规范性和效率性,保证程序的准确性和稳定性。
四、Matlab程序设计下面是本次竞赛D题的Matlab程序设计示例:1. 数据处理与预处理导入所需数据文件,并对数据进行处理和预处理,包括数据清洗、格式转换等操作;例如:```matlabdata = xlsread('data.xlsx'); 从Excel文件中读取数据data_cleaned = data(data(:, 3) > 0 data(:, 4) < 100, :); 清洗数据```2. 模型建立与求解根据所建立的数学模型,利用Matlab提供的数值计算和优化工具,对模型进行求解;例如:```matlabfun = (x) x(1)^2 + x(2)^2; 定义优化目标函数x0 = [1, 1]; 设定初始猜测值options = optimoptions('fmincon', 'Algorithm', 'interior-point'); 设定优化选项x = fmincon(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon, options); 调用优化函数```3. 结果展示与分析根据模型的求解结果,利用Matlab绘制相应的图表和图像,进行数据分析和结果展示;例如:```matlabfigure;plot(data(:, 1), data(:, 2), 'b.'); 绘制散点图title('数据分布图');xlabel('X轴');ylabel('Y轴');```五、总结与展望通过以上的Matlab程序设计示例,可以看出在解答D题时,需要灵活运用数学建模和Matlab编程的知识,结合实际问题,进行科学的分析与求解。
1.整数规划的蒙特卡洛解法2015-06-10 (2)2. 罚函数法 2015-06-11 (3)3. 层次分析 2015-06-12 (4)4. 粒子群优化算法的寻优算法--非线性函数极值寻优 2015-06-13 (5)5有约束函数极值APSO寻优 2015-06-14 (12)6.模拟退火算法 TSP问题2015-06-15 (17)7. 右端步连续微分方程求解2015-06-16 (19)8. 多元方差分析 2015-06-17 (22)9. 基于MIV的神经网络变量筛选 2015-06-18 (25)10. RBF网络的回归--非线性函数回归的实现 2015-06-19 (29)11. 极限学习机在回归拟合中的应用 2015-06-20 (32)12. 极限学习机在分类中的应用 2015-06-21 (34)13. 基于PSO改进策略 2015-06-22 (37)14. 神经网络遗传算法函数极值寻优 2015-06-23 (46)1.1.整数规划的蒙特卡洛解法2015-06-10 已知非线性整数规划为:⎪⎪⎪⎩⎪⎪⎪⎨⎧≤++≤++≤++++≤++++=≤≤-----++++=200520062800622400)5,....,1(9902328243max 54233216432154321543212524232221x x x x x x x x x x x x x x x x i x x x x x x x x x x x z i如果用显枚举试探,共需要计算100^5=10^10个点,其计算量非常大。
然而应用蒙特卡洛去随机模拟计算10^6个点,便可以找到满意解,那么这种方法的可信度究竟怎么样呢? 下面就分析随机采样10^6个点计算时,应用概率理论估计下可信度。
不是一般性,假设一个整数规划的最优点不是孤立的奇点。
假设目标函数落在高值区的概率分别为0.01,0.00001,则当计算10^6个点后,有任一个点落在高值区的概率分别为:1-0.99^1000000=0.99...99(100多位) 1-0.99999^1000000=0.999954602解 (1)首先编写M 文件 mengte.m 定义目标函数f 和约束向量g,程序如下:function [f,g]=mengte(x);f=x(1)^2+x(2)^2+3*x(3)^2+4*x(4)^2+2*x(5)-8*x(1)-2*x(2)-3*x(3)-... x(4)-2*x(5); g=[sum(x)-400x(1)+2*x(2)+2*x(3)+x(4)+6*x(5)-800 2*x(1)+x(2)+6*x(3)-200 x(3)*x(3)+x(4)+5*x(5)-200];(2)编写M 文件mainint.m 如下求问题的解: rand('state',sum(clock)); p0=0; ticfor i=1:10^5x=99*rand(5,1);x1=floor(x);%向下取整 x2=ceil(x);%向上取整 [f,g]=mengte(x1); if sum(g<=0)==4 if p0<=f x0=x1; p0=f; end end[f,g]=mengte(x2); if sum(g<=0)==4 if p0<=fx0=x2; p0=f; end end end x0,p0Matlab 求解整数规划祥见第二章(优秀教材)2.罚函数法 2015-06-11利用罚函数法,可将非线性规划问题的求解,转化为求解一系列无约束极值问题,因而也称这种方法为系列无约束最小化技术,简记为SUMT 。