数学实验题库建立模型并写出求解模型的Matlab代码或程序

合集下载

Matlab编程和模拟模型

Matlab编程和模拟模型

Matlab 编程和模拟模型1. 编程训练题目一. 有一个向量()n a a a v ,,,21 =,编程求解下列式子: 2232121121u ni i i a a a s a s +++==∑=- , 其中u 为不超过n 的最大奇数。

自己给出测试例子,并给出运算结果。

二. 模拟一次扑克牌洗牌过程,输出牌的顺序。

%4*13+2paihao=[11:23,31:43,51:63,71:83,98,99];if length(paihao)~=54,error('error in number')endPAIXU=randperm(54);fapai = paihao(PAIXU)三. 模拟1000次投币过程,输出出现正面的频率。

程序1:num_zheng=0;for i=1:1000,cur=rand;if cur<0.5,num_zheng=num_zheng + 1;endendf = num_zheng/1000四.问题:现有一个文本文件(mydata.txt),包含了火车的出发和到达时刻,基本格式如下(实际中该文件超过1000行)19:35 07:4719:14 07:1219:21 07:1918:53 08:2319:07 07:0519:00 06:5821:37 08:0420:40 07:4021:44 07:2221:30 07:2519:28 06:4822:00 07:1019:21 07:1918:53 08:2319:07 07:05……要求把时间读取并存为矩阵数据,并且需要将其以0:00时刻记为初始时刻,把奇数行数据转为分钟。

准备知识:(1)文件打开(fopen),关闭(fclose);(2)读取各行数据(fgetl)(3)解析各行数据,并转换数据注:处理方法不唯一。

文本文件:fopen,fclose,fgetl。

%先初始化矩阵mat=[];row = 0;fid=fopen('mydata.txt');while 1tline = fgetl(fid);if feof(fid), break, enddisp(tline)cur=str2num(tline);row = row + 1;%将当前行的(行)向量保存到mat中if isempty(mat),mat=cur;elselen=length(cur);mat(row,1:len)=cur;endendfclose(fid);19 35 7 47 8 31 9 4219 14 7 12 0 0 0 019 21 7 19 0 0 0 018 53 8 23 0 0 0 019 7 7 5 0 0 0 019 0 6 58 0 0 0 021 37 8 4 0 0 0 020 40 7 40 0 0 0 021 44 7 22 0 0 0 021 30 7 25 0 0 0 019 28 6 48 0 0 0 0五.(适中)有一个文件mytest.txt,内容如下:请编程将这个文件中从第2行开始的所有数保存为1个列向量(按行先后顺序排列这些数)程序%先初始化矩阵vec=[];tline = fgetl(fid);%跳过第1行字符串,不处理fid=fopen('mytest.txt');while 1tline = fgetl(fid);if feof(fid), break, enddisp(tline)cur=str2num(tline);%将当前行的(行)向量保存到vec 中vec=[vec,cur];endfclose(fid);vec=vec'%请将此文件中的数值读取为1个向量1 4 72 5 83 6 9vec =147258369六. (较难)有一个函数235243211x x x x x x y ++++=,另有一个函数)(x f 定义如下。

matlab在数学建模中的应用——第三章程序代码2

matlab在数学建模中的应用——第三章程序代码2

matlab在数学建模中的应用——第三章程序代码2第一篇:matlab在数学建模中的应用——第三章程序代码2 clearsyms a b;c=[a b]';A=[174179 183 189 207 234 220.5 256270 285];B=cumsum(A);% 原始数据累加n=length(A);for i=1:(n-1)C(i)=(B(i)+B(i+1))/2;% 生成累加矩阵end% 计算待定参数的值D=A;D(1)=[];D=D';E=[-C;ones(1,n-1)];c=inv(E*E')*E*D;c=c';a=c(1);b=c(2);% 预测后续数据F=[];F(1)=A(1);for i=2:(n+10)F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;endG=[];G(1)=A(1);for i=2:(n+10)G(i)=F(i)-F(i-1);%得到预测出来的数据endt1=1995:2004;t2=1995:2014;G, a, b % 输出预测值,发展系数和灰色作用量plot(t1,A,'o',t2,G)%原始数据与预测数据的比较第二篇:matlab在数学建模中的应用——第三章程序代码1 clearsyms a b;c=[a b]';A=[89677,99215,109655,120333,135823,159878,182321,209 407,246619,300670];B=cumsum(A);% 原始数据累加n=length(A);for i=1:(n-1)C(i)=(B(i)+B(i+1))/2;% 生成累加矩阵end% 计算待定参数的值D=A;D(1)=[];D=D';E=[-C;ones(1,n-1)];c=inv(E*E')*E*D;c=c';a=c(1);b=c(2);% 预测后续数据F=[];F(1)=A(1);for i=2:(n+10)F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;endG=[];G(1)=A(1);for i=2:(n+10)G(i)=F(i)-F(i-1);%得到预测出来的数据endt1=1999:2008;t2=1999:2018;Gplot(t1,A,'o',t2,G)%原始数据与预测数据的比较xlabel('年份')ylabel('利润')第三篇:matlab在数学建模中的应用——第一章程序代码clearclc% 读入人口数据(1971-2000年)Y=[338************8345******345093452***345***93452**** **]% 读入时间变量数据(t=年份-1970)T=[*********2627282930]% 线性化处理for t = 1:30,x(t)=exp(-t);y(t)=1/Y(t);end% 计算,并输出回归系数Bc=zeros(30,1)+1;X=[c,x'];B=inv(X'*X)*X'*y'for i=1:30,% 计算回归拟合值z(i)=B(1,1)+B(2,1)*x(i);% 计算离差s(i)=y(i)-sum(y)/30;% 计算误差w(i)=z(i)-y(i);end% 计算离差平方和SS=s*s';% 回归误差平方和QQ=w*w';% 计算回归平方和UU=S-Q;% 计算,并输出F检验值F=28*U/Q% 计算非线性回归模型的拟合值for j=1:30,Y(j)=1/(B(1,1)+B(2,1)*exp(-j));end% 输出非线性回归模型的拟合曲线(Logisic曲线)plot(T,Y)第四篇:2)线性代数在数学建模中的应用例举8015985.docAct3 总复习【Arrangement】1)模拟题2)线性代数在数学建模中的应用例举3)线性代数在考研中的地位和重要性【Content】模拟题一、填空题(每题4分,共20分):1、n阶方阵A的行列式,则行列式。

数学实验题库建立模型并写出求解模型的Matlab代码或程序

数学实验题库建立模型并写出求解模型的Matlab代码或程序

数学实验题库建⽴模型并写出求解模型的Matlab代码或程序数学实验题库实验1 Matlab概述12实验2 函数图形绘图 3实验3 数列极限与函数极限 2 实验4 导数与偏导数的计算 2 实验5 ⽅程近似解的求法 3实验6 定积分的近似计算 312实验7 多元函数的极值问题 31.某化⼯⼚⽣产A 、B 、C 、D 四种产品,每种产品⽣产1吨消耗⼯时和产值如下:要求全⼚年产值为1000万元以上,建⽴使⽣产消耗总⼯时最⼩的数学模型,并求解. 解:设⽣产A 产品1x 吨、B 产品 2x 吨、C 产品3x 吨、D 产品4x 吨,则所⽤⼯时为123410030040075x x x x +++,产值为12345100.5x x x x +++线性规划模型为:1234min 10030040075z x x x x =+++ 1234..5100.510000s t x x x x +++≥MATLAB 代码为:clear;c=[100;300;400;75]; A=[1 5 10 0.5]*(-1); b=[10000]*(-1); Aeq=[]; beq=[]; beq0=[]; lb=0*c;ub=[inf;inf;inf;inf]; digits(5);[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)2.贝尔⾦属公司要⽣产两种灯,制造⼀盏中国海灯需要耗费黄铜2磅和3个铣床⼩时,⽽3制造⼀盏马坦扎斯海湾灯需要耗费黄铜4磅和1个铣床⼩时,另外每盏中国海灯需要2⼈特制的东⽅灯罩,这种灯罩必须从⾹港进⼝,⽬前每个⽣产周期,由于联邦法的限制,只能进⼝100个。

且下⼀周期公司的黄铜供应量限制为320磅,铣床时间限制为180⼩时,⽽每盏中国海灯的利润为60美元,每盏马坦扎斯海湾灯的利润为30美元,为得到最⼤利润,贝尔公司应该如何安排⽣产?建⽴使利润最⼤的数学模型,并求解. 解:设⽣产中国海灯1x 盏、马坦扎斯海湾灯 2x 盏,则利润为126030x x + 线性规划模型为:12max 6030z x x =+12121212243203180..201000,0x x x x s t x x x x +≤??+≤? ?+?≤??>>?MATLAB 代码为:clear;c=[-60;-30];A=[2 4;3 1; 2 0];b=[320;180;100]; Aeq=[];beq=[];lb=[0;0];ub=[inf;inf];[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)3.伯恩公司⽣产铝制品的煎锅和焙盘,每个煎锅或焙盘都需要10盎司的铝。

matlab数学建模常用模型及编程

matlab数学建模常用模型及编程

matlab数学建模常用模型及编程摘要:一、引言二、MATLAB 数学建模的基本概念1.矩阵的转置2.矩阵的旋转3.矩阵的左右翻转4.矩阵的上下翻转5.矩阵的逆三、MATLAB 数学建模的常用函数1.绘图函数2.坐标轴边界3.沿曲线绘制误差条4.在图形窗口中保留当前图形5.创建线条对象四、MATLAB 数学建模的实例1.牛顿第二定律2.第一级火箭模型五、结论正文:一、引言数学建模是一种将现实世界中的问题抽象成数学问题,然后通过数学方法来求解的过程。

在数学建模中,MATLAB 作为一种强大的数学软件,被广泛应用于各种数学问题的求解和模拟。

本文将介绍MATLAB 数学建模中的常用模型及编程方法。

二、MATLAB 数学建模的基本概念在使用MATLAB 进行数学建模之前,我们需要了解一些基本的概念,如矩阵的转置、旋转、左右翻转、上下翻转以及矩阵的逆等。

1.矩阵的转置矩阵的转置是指将矩阵的一行和一列互换,得到一个新的矩阵。

矩阵的转置运算符是单撇号(’)。

2.矩阵的旋转利用函数rot90(a,k) 将矩阵a 旋转90 的k 倍,当k 为1 时可省略。

3.矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,依次类推。

matlab 对矩阵a 实施左右翻转的函数是fliplr(a)。

4.矩阵的上下翻转matlab 对矩阵a 实施上下翻转的函数是flipud(a)。

5.矩阵的逆对于一个方阵a,如果存在一个与其同阶的方阵b,使得:a·bb·a=|a|·|b|·I,则称矩阵b 是矩阵a 的逆矩阵。

其中,|a|表示矩阵a 的行列式,I 是单位矩阵。

在MATLAB 中,我们可以使用函数inv(a) 来求解矩阵a 的逆矩阵。

三、MATLAB 数学建模的常用函数在MATLAB 数学建模过程中,我们经常需要使用一些绘图和数据处理函数,如绘图函数、坐标轴边界、沿曲线绘制误差条、在图形窗口中保留当前图形、创建线条对象等。

matlab数学建模程序代码

matlab数学建模程序代码

matlab数学建模程序代码
当进行数学建模时,MATLAB是一个强大的工具,用于实现和测试模型。

下面是一个简单的MATLAB代码示例,演示如何使用MATLAB进行一维线性回归建模:
```matlab
%生成示例数据
x=[1,2,3,4,5];
y=[2.8,3.9,4.8,5.5,6.3];
%进行一维线性回归
coefficients=polyfit(x,y,1);
slope=coefficients(1);
intercept=coefficients(2);
%绘制原始数据和回归线
scatter(x,y,'o','DisplayName','原始数据');
hold on;
plot(x,polyval(coefficients,x),'r-','DisplayName','回归线');
hold off;
%添加标签和图例
xlabel('X轴');
ylabel('Y轴');
title('一维线性回归建模示例');
legend('show');
%输出回归方程的系数
fprintf('回归方程:y=%.2fx+%.2f\n',slope,intercept);
```
此代码生成了一些示例数据,然后使用一维线性回归对数据进行建模。

回归方程的系数将被计算,并且原始数据与回归线将在图上显示。

请注意,这只是一个简单的示例,实际上,你可能需要根据你的具体问题修改代码。

用matlab解决数学建模

用matlab解决数学建模

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年美国人口数量。

(完整word版)Matlab数学实验报告

(完整word版)Matlab数学实验报告

Matlab 数学实验报告一、实验目的通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。

了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic 模型、懂得最小二乘法、线性规划等基本思想。

二、实验内容2.1实验题目一2.1.1实验问题Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式x k+1=λsin(πx k),做出相应的Feigenbaum图2.1.2程序设计clear;clf;axis([0,4,0,4]);hold onfor r=0:0.3:3.9x=[0.1];for i=2:150x(i)=r*sin(3.14*x(i-1));endpause(0.5)for i=101:150plot(r,x(i),'k.');endtext(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end加密迭代后clear;clf;axis([0,4,0,4]);hold onfor r=0:0.005:3.9x=[0.1];for i=2:150x(i)=r*sin(3.14*x(i-1));endpause(0.1)for i=101:150plot(r,x(i),'k.');endend运行后得到Feigenbaum图2.2实验题目二2.2.1实验问题某农夫有一个半径10米的圆形牛栏,长满了草。

他要将一头牛拴在牛栏边界的桩栏上,但只让牛吃到一半草,问拴牛鼻子的绳子应为多长?2.2.2问题分析如图所示,E为圆ABD的圆心,AB为拴牛的绳子,圆ABD为草场,区域ABCD为牛能到达的区域。

问题要求区域ABCD等于圆ABC的一半,可以设BC等于x,只要求出∠a和∠b就能求出所求面积。

matlab数学实验报告(含程序代码)

matlab数学实验报告(含程序代码)
dT 0.1171828 103 H 6 0.704826 102 H 5 0.1548650 H 4 1.555868H 3 7.22847 H 2 13.56856 H 5.51977 dH
d 2T 0.7030968 103 H 5 0.3524130 101 H 4 0.6194600 H 3 4.667604 H 2 14.45694 H 13.56856 dH 2
2
1
图1 【实验准备】
优化问题可以说是人们在工程技术、经济管理和科学研究等领域中常遇到的一类 问题。设计师要在满足强度要求等条件下选择材料的尺寸,使结构总重最轻;公司要 根据生产成本和市场需求确定产品价格,使所获利润最高;调度人员要在满足物资需求 和装载条件下安排从各供应点到各需求点的运量和路线,使运输总费用最低;投资者要 选择一些股票、债券“下注” ,使收益最大,而风险最小。 有些人习惯于依赖过去的经验解决面临的优化问题,认为这样切实可行,并且没 有太大的风险,但是这种处理过程常常会融入决策者太多的主观因素,从而无法确认结 果的最优性,也有些人习惯于作大量的试验反复比较,认为这样真实可靠,但是显然需 要花费很多资金和人力,而且得到的最优结果基本上跑不出原来设计的试验范围。
T 0.167404 104 H 7 0.117471 102 H 6 0.309730 101 H 5 0.388967 H 4 2.40949 H 3 6.78428 H 2 5.51977 H 23.5000
因为所取数据点是在 0~27m 之间,同时由拟合曲线可以发现在其他区间内, 确实与实际情况不符,故取区间为(0~30) 。 (2)利用拟合曲线求温度随深度变化最快的位置: dT d 2T 即求 的最大值,进而可以转化为求二阶导数的极值即 0 ,对 dH dH 2 dT 应 最大的极值点即为所求的位置。 dH

数学建模算法的matlab代码

数学建模算法的matlab代码

二,hamiton回路算法提供一种求解最优哈密尔顿的算法---三边交换调整法,要求在运行jiaohuan3(三交换法)之前,给定邻接矩阵C和节点个数N,结果路径存放于R中。

bianquan.m文件给出了一个参数实例,可在命令窗口中输入bianquan,得到邻接矩阵C和节点个数N以及一个任意给出的路径R,,回车后再输入jiaohuan3,得到了最优解。

由于没有经过大量的实验,又是近似算法,对于网络比较复杂的情况,可以尝试多运行几次jiaohuan3,看是否能到进一步的优化结果。

%%%%%%bianquan.m%%%%%%%N=13;for i=1:Nfor j=1:NC(i,j)=inf;endendfor i=1:NC(i,i)=0;endC(1,2)=6.0;C(1,13)=12.9;C(2,3)=5.9;C(2,4)=10.3;C(3,4)=12.2;C(3,5)=17.6;C(4,13)=8.8;C(4,7)=7.4;C(4,5)=11.5;C(5,2)=17.6;C(5,6)=8.2;C(6,9)=14.9;C(6,7)=20.3;C(7,9)=19.0;C(7,8)=7.3;C(8,9)=8.1;C(8,13)=9.2;C(9,10)=10.3;C(10,11)=7.7;C(11,12)=7.2;C(12,13)=7.9;for i=1:Nfor j=1:Nif C(i,j) < infC(j,i)=C(i,j);endendendfor i=1:NC(i,i)=0;endR=[4 7 6 5 3 2 1 13 12 11 10 9 8];<pre name="code" class="plain">%%%%%%%%jiaohuan3.m%%%%%%%%%%n=0;for I=1:(N-2)for J=(I+1):(N-1)for K=(J+1):Nn=n+1;Z(n,:)=[I J K];endendendR=1:Nfor m=1:(N*(N-1)*(N-2)/6)I=Z(m,1);J=Z(m,2);K=Z(m,3); r=R;if J-I~=1&K-J~=1&K-I~=N-1 for q=1:(J-I)r(I+q)=R(J+1-q);endfor q=1:(K-J)r(J+q)=R(K+1-q);endendif J-I==1&K-J==1r(K)=R(J);r(J)=R(K);endif J-I==1&K-J~=1&K-I~=N-1 for q=1:(K-J)r(I+q)=R(I+1+q); endr(K)=R(J);endif K-J==1&J-I~=1&K~=Nfor q=1:(J-I)r(I+1+q)=R(I+q); endr(I+1)=R(K);endif I==1&J==2&K==Nfor q=1:(N-2)r(1+q)=R(2+q);endr(N)=R(2);endif I==1&J==(N-1)&K==Nfor q=1:(N-2)r(q)=R(1+q);endr(N-1)=R(1);endif J-I~=1&K-I==N-1for q=1:(J-1)r(q)=R(1+q);endr(J)=R(1);endif J==(N-1)&K==N&J-I~=1r(J+1)=R(N);for q=1:(N-J-1)r(J+1+q)=R(J+q);endendif cost_sum(r,C,N)<cost_sum(R,C,N)R=rendendfprintf('总长为%f\n',cost_sum(R,C,N))%%%%%%cost_sum.m%%%%%%%%functiony=cost_sum(x,C,N)y=0;for i=1:(N-1)y=y+C(x(i),x(i+1));endy=y+C(x(N),x(1));三,灰色预测代码<pre name="code" class="plain">clearclcX=[136 143 165 152 165 181 204 272 319 491 571 605 665 640 628];x1(1)=X(1);X1=[];for i=1:1:14x1(i+1)=x1(i)+X(i+1);X1=[X1,x1(i)];endX1=[X1,X1(14)+X(15)]for k=3:1:15p(k)=X(k)/X1(k-1);p1(k)=X1(k)/X1(k-1);endp,p1clear kZ=[];for k=2:1:15z(k)=0.5*X1(k)+0.5*X1(k-1);Z=[Z,z(k)];endZB=[-Z',ones(14,1)]Y=[];clear ifor i=2:1:15Y=[Y;X(i)];endYA=inv(B'*B)*B'*Yclear ky1=[];for k=1:1:15y(k)=(X(1)-A(2)/A(1))*exp(-A(1)*(k-1))+A(2)/A(1); y1=[y1;y(k)];endy1clear kX2=[];for k=2:1:15x2(k)=y1(k)-y1(k-1);X2=[X2;x2(k)];endX2=[y1(1);X2]e=X'-X2m=abs(e)./X's=e'*en=sum(m)/13clear ksyms ky=(X(1)-A(2)/A(1))*exp(-A(1)*(k-1))+A(2)/A(1)Y1=[];for j=16:1:21y11=subs(y,k,j)-subs(y,k,j-1);Y1=[Y1;y11];endY1%程序中的变量定义:alpha是包含α、μ值的矩阵;%ago是预测后累加值矩阵;var是预测值矩阵;%error是残差矩阵; c是后验差比值function basicgrey(x,m) %定义函数basicgray(x)if nargin==1 %m为想预测数据的个数,默认为1 m=1;endclc; %清屏,以使计算结果独立显示if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换x=x';endn=length(x); %取输入数据的样本量x1(:,1)=cumsum(x); %计算累加值,并将值赋及矩阵be for i=2:n %对原始数列平行移位 Y(i-1,:)=x(i,:);endfor i=2:n %计算数据矩阵B的第一列数据z(i,1)=0.5*x1(i-1,:)+0.5*x1(i,:);endB=ones(n-1,2); %构造数据矩阵BB(:,1)=-z(2:n,1);alpha=inv(B'*B)*B'*Y; %计算参数α、μ矩阵for i=1:n+m %计算数据估计值的累加数列,如改n+1为n+m可预测后m个值ago(i,:)=(x1(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1, :)*(i-1))+alpha(2,:)/alpha(1,:);endvar(1,:)=ago(1,:);f or i=1:n+m-1 %可预测后m个值var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下m个预测值end[P,c,error]=lcheck(x,var); %进行后验差检验[rela]=relations([x';var(1:n)']); %关联度检验ago %显示输出预测值的累加数列alpha %显示输出参数α、μ数列var %显示输出预测值error %显示输出误差P %显示计算小残差概率 c %显示后验差的比值crela %显示关联度judge(P,c,rela) %评价函数显示这个模型是否合格<pre name="code" class="plain">function judge(P,c,rela) %评价指标并显示比较结果if rela>0.6'根据经验关联度检验结果为满意(关联度只是参考主要看后验差的结果)'else'根据经验关联度检验结果为不满意(关联度只是参考主要看后验差的结果)'endif P>0.95&c<0.5'后验差结果显示这个模型评价为“优”'else if P>0.8&c<0.5'后验差结果显示这个模型评价为“合格”'else if P>0.7&c<0.65'后验差结果显示这个模型评价为“勉强合格”' else'后验差结果显示这个模型评价为“不合格”' endendendfunction [P,c,error]=lcheck(x,var)%进行后验差检验n=length(x);for i=1:nerror(i,:)=abs(var(i,:)-x(i,:)); %计算绝对残差c=std(abs(error))/std(x); %调用统计工具箱的标准差函数计算后验差的比值cs0=0.6745*std(x);ek=abs(error-mean(error));pk=0;for i=1:nif ek(i,:)<s0pk=pk+1;endendP=pk/n; %计算小残差概率%附带的质料里有一部分讲了关联度function [rela]=relations(x)%以x(1,:)的参考序列求关联度[m,n]=size(x);for i=1:mfor j=n:-1:2x(i,j)=x(i,j)/x(i,1);endfor i=2:mx(i,:)=abs(x(i,:)-x(1,:)); %求序列差endc=x(2:m,:);Max=max(max(c)); %求两极差Min=min(min(c));p=0.5; %p称为分辨率,0<p<1,一般取p=0.5for i=1:m-1for j=1:nr(i,j)=(Min+p*Max)/(c(i,j)+p*Max); %计算关联系数endendfor i=1:m-1rela(i)=sum(r(i,:))/n; %求关联度end四,非线性拟合function f=example1(c,tdata)f=c(1)*(exp(-c(2)*tdata)-exp(-c(3)*tdata));<pre name="code" class="plain">function f=zhengtai(c,x) f=(1./(sqrt(2.*3.14).*c(1))).*exp(-(x-c(1)).^2./(2.*c( 2)^2));x=1:1:12;y=[01310128212]';c0=[2 8];for i=1:1000c=lsqcurvefit(@zhengtai,c0,x,y);c0=c;endy1=(1./(sqrt(2.*3.14).*c(1))).*exp(-(x-c(1)).^2./(2.*c (2)^2));plot(x,y,'r-',x,y1);legend('实验数据','拟合曲线')x=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16]';y=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4]';f=@(c,x)c(1)*(exp(-c(2)*x)-exp(-c(3)*x));c0=[114 0.1 2]';for i=1:50opt=optimset('TolFun',1e-3);[c R]=nlinfit(x,y,f,c0,opt)c0=c;hold onplot(x,c(1)*(exp(-c(2)*x)-exp(-c(3)*x)),'g')endt=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16];y=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4];c0=[1 1 1];for i=1:50 c=lsqcurvefit(@example1,c0,t,y);c0=c;endy1=c(1)*(exp(-c(2)*t)-exp(-c(3)*t));plot(t,y,' +',t,y1);legend('实验数据','拟合曲线')五,插值拟合相关知识在生产和科学实验中,自变量及因变量间的函数关系有时不能写出解析表达式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂而需要较大的计算量。

数学建模算法的matlab代码

数学建模算法的matlab代码

数学建模算法的matlab代码句柄图形(图形窗口)二,hamiton回路算法提供一种求解最优哈密尔顿的算法---三边交换调整法,要求在运行jiaohuan3(三交换法)之前,给定邻接矩阵C和节点个数N,结果路径存放于R 中。

bianquan.m文件给出了一个参数实例,可在命令窗口中输入bianquan,得到邻接矩阵C和节点个数N以及一个任意给出的路径R,,回车后再输入jiaohuan3,得到了最优解。

由于没有经过大量的实验,又是近似算法,对于网络比较复杂的情况,可以尝试多运行几次jiaohuan3,看是否能到进一步的优化结果。

%%%%%%bianquan.m%%%%%%%N=13;for i=1:Nfor j=1:NC(i,j)=inf;endendfor i=1:NC(i,i)=0;endC(1,2)=6.0;C(1,13)=12.9;C(2,3)=5.9;C(2,4)=10.3;C(3,4)=12.2;C(3,5)=17.6;C(4,13)=8.8;C(4,7)=7.4;C(4,5)=11.5;C(5,2)=17.6;C(5,6)=8.2;C(6,9)=14.9;C(6,7)=20.3;C(7,9)=19.0;C(7,8)=7.3;C(8,9)=8.1;C(8,13)=9.2;C(9,10)=10.3;C(10,11)=7.7;C(11,12)=7.2;C(12,13)=7.9;for i=1:Nfor j=1:Nif C(i,j) < infC(j,i)=C(i,j);endendendfor i=1:NC(i,i)=0;endR=[4 7 6 5 3 2 1 13 12 11 10 9 8]; %%%%%%%%jiaohuan3.m%%%%%%%%%% n=0; for I=1:(N-2)for J=(I+1):(N-1)for K=(J+1):Nn=n+1;Z(n,:)=[I J K];endendendR=1:Nfor m=1:(N*(N-1)*(N-2)/6)I=Z(m,1);J=Z(m,2);K=Z(m,3);r=R;if J-I~=1&K-J~=1&K-I~=N-1for q=1:(J-I)r(I+q)=R(J+1-q);endfor q=1:(K-J)r(J+q)=R(K+1-q);endendif J-I==1&K-J==1r(K)=R(J);r(J)=R(K);endif J-I==1&K-J~=1&K-I~=N-1 for q=1:(K-J)r(I+q)=R(I+1+q);endr(K)=R(J);endif K-J==1&J-I~=1&K~=N for q=1:(J-I)r(I+1+q)=R(I+q);endr(I+1)=R(K);endif I==1&J==2&K==Nfor q=1:(N-2)r(1+q)=R(2+q);endr(N)=R(2);endif I==1&J==(N-1)&K==N for q=1:(N-2)r(q)=R(1+q);endr(N-1)=R(1);endif J-I~=1&K-I==N-1for q=1:(J-1)r(q)=R(1+q);endr(J)=R(1);endif J==(N-1)&K==N&J-I~=1r(J+1)=R(N);for q=1:(N-J-1)r(J+1+q)=R(J+q);endendif cost_sum(r,C,N)<cost_sum(r,c,n)< p="">R=rendendfprintf('总长为%f\n',cost_sum(R,C,N))%%%%%%cost_sum.m%%%%%%%%functiony=cost_sum(x,C,N)y=0;for i=1:(N-1) y=y+C(x(i),x(i+1));endy=y+C(x(N),x(1));三,灰色预测代码clearclcX=[136 143 165 152 165 181 204 272 319 491 571 605 665 640 628];x1(1)=X(1);X1=[];for i=1:1:14x1(i+1)=x1(i)+X(i+1);X1=[X1,x1(i)];endX1=[X1,X1(14)+X(15)]for k=3:1:15p(k)=X(k)/X1(k-1);p1(k)=X1(k)/X1(k-1);endp,p1clear kZ=[];for k=2:1:15z(k)=0.5*X1(k)+0.5*X1(k-1);Z=[Z,z(k)];endZB=[-Z',ones(14,1)]Y=[];clear ifor i=2:1:15Y=[Y;X(i)];endYA=inv(B'*B)*B'*Yclear ky1=[];for k=1:1:15y(k)=(X(1)-A(2)/A(1))*exp(-A(1)*(k-1))+A(2)/A(1); y1=[y1;y(k)];endy1clear kX2=[];for k=2:1:15x2(k)=y1(k)-y1(k-1);X2=[X2;x2(k)];endX2=[y1(1);X2]e=X'-X2m=abs(e)./X's=e'*en=sum(m)/13clear ksyms ky=(X(1)-A(2)/A(1))*exp(-A(1)*(k-1))+A(2)/A(1)Y1=[];for j=16:1:21y11=subs(y,k,j)-subs(y,k,j-1);Y1=[Y1;y11];endY1%程序中的变量定义:alpha是包含α、μ值的矩阵;%ago是预测后累加值矩阵;var是预测值矩阵;%error是残差矩阵; c是后验差比值function basicgrey(x,m) %定义函数basicgray(x)if nargin==1 %m 为想预测数据的个数,默认为1 m=1;endclc; %清屏,以使计算结果独立显示if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换x=x';endn=length(x); %取输入数据的样本量x1(:,1)=cumsum(x); %计算累加值,并将值赋与矩阵be for i=2:n %对原始数列平行移位Y(i-1,:)=x(i,:);endfor i=2:n %计算数据矩阵B的第一列数据z(i,1)=0.5*x1(i-1,:)+0.5*x1(i,:);endB=ones(n-1,2); %构造数据矩阵BB(:,1)=-z(2:n,1);alpha=inv(B'*B)*B'*Y; %计算参数α、μ矩阵for i=1:n+m %计算数据估计值的累加数列,如改n+1为n+m可预测后m个值ago(i,:)=(x1(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,:);endvar(1,:)=ago(1,:);for i=1:n+m-1 %可预测后m个值var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下m个预测值end[P,c,error]=lcheck(x,var); %进行后验差检验[rela]=relations([x';var(1:n)']); %关联度检验ago %显示输出预测值的累加数列alpha %显示输出参数α、μ数列var %显示输出预测值error %显示输出误差P %显示计算小残差概率 c %显示后验差的比值crela %显示关联度judge(P,c,rela) %评价函数显示这个模型是否合格function judge(P,c,rela)%评价指标并显示比较结果if rela>0.6'根据经验关联度检验结果为满意(关联度只是参考主要看后验差的结果)' else'根据经验关联度检验结果为不满意(关联度只是参考主要看后验差的结果)' endif P>0.95&c<0.5'后验差结果显示这个模型评价为“优”'else if P>0.8&c<0.5'后验差结果显示这个模型评价为“合格”'else if P>0.7&c<0.65'后验差结果显示这个模型评价为“勉强合格”'else'后验差结果显示这个模型评价为“不合格”'endendendfunction [P,c,error]=lcheck(x,var)%进行后验差检验n=length(x);for i=1:nerror(i,:)=abs(var(i,:)-x(i,:)); %计算绝对残差endc=std(abs(error))/std(x); %调用统计工具箱的标准差函数计算后验差的比值cs0=0.6745*std(x);ek=abs(error-mean(error));pk=0;for i=1:nif ek(i,:)<s0< p="">pk=pk+1;endendP=pk/n; %计算小残差概率%附带的质料里有一部分讲了关联度function [rela]=relations(x)%以x(1,:)的参考序列求关联度[m,n]=size(x);for i=1:mfor j=n:-1:2x(i,j)=x(i,j)/x(i,1);endendfor i=2:mx(i,:)=abs(x(i,:)-x(1,:)); %求序列差endc=x(2:m,:);Max=max(max(c)); %求两极差Min=min(min(c));p=0.5; %p称为分辨率,0<p< p="">for i=1:m-1for j=1:nr(i,j)=(Min+p*Max)/(c(i,j)+p*Max); %计算关联系数endendfor i=1:m-1rela(i)=sum(r(i,:))/n; %求关联度end四,非线性拟合function f=example1(c,tdata)f=c(1)*(exp(-c(2)*tdata)-exp(-c(3)*tdata));function f=zhengtai(c,x)f=(1./(sqrt(2.*3.14).*c(1))).*exp(-(x-c(1)).^2./(2.*c(2)^2));x=1:1:12;y=[01310128212]';c0=[2 8];for i=1:1000c=lsqcurvefit(@zhengtai,c0,x,y);c0=c;endy1=(1./(sqrt(2.*3.14).*c(1))).*exp(-(x-c(1)).^2./(2.*c(2)^2));plot(x,y,'r-',x,y1);legend('实验数据','拟合曲线')x=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16]';y=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7 4]';f=@(c,x)c(1)*(exp(-c(2)*x)-exp(-c(3)*x));c0=[114 0.1 2]';for i=1:50opt=optimset('TolFun',1e-3);[c R]=nlinfit(x,y,f,c0,opt)c0=c;hold onplot(x,c(1)*(exp(-c(2)*x)-exp(-c(3)*x)),'g')endt=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 1314 15 16];y=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 1815 12 10 7 7 4];c0=[1 1 1];for i=1:50 c=lsqcurvefit(@example1,c0,t,y);c0=c;endy1=c(1)*(exp(-c(2)*t)-exp(-c(3)*t));plot(t,y,'+',t,y1);legend('实验数据','拟合曲线')五,插值拟合相关知识在生产和科学实验中,自变量与因变量间的函数关系有时不能写出解析表达式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂而需要较大的计算量。

MATLAB模型

MATLAB模型

Matlab 实践课题报告模板2014-2015 学年第二学期《线性代数 A》姓名:赵镇耀学号;1400850229 课题名称. 购买水果模型【模型假设】【模型建立】设矩阵X=BA,其行分别为人员A、人员B,其列分别为商店A、商店B,每个元素即购买水果费用。

设矩阵Y=CB,其行分别为城镇1、城镇2,其列分别为苹果、橘子、梨,每个元素即购买量。

【模型求解】1.在Matlab 命令窗口输入以下命令:>> B=[5,10,3,;4,5,5];A=[0.10,0.15;0.15,0.20;0.10,0.10];>> X=B*AMatlab 执行后得:X =2.30003.05001.65002.10002. 在Matlab 命令窗口输入以下命令:>> C=[1000,500;2000,100];B=[5,10,3;4,5,5];>> Y=C*BMatlab 执行后得:Y =7000 12500 550010400 20500 6500所以得到:X=BA= 2.3000 3.0500 Y=CB= 7000 12500 55001.65002.1000 10400 20500 6500【模型分析与结论】分析;通过运用矩阵的乘法X=BA、Y=CB,得出X和Y两个新矩阵。

X给出了每个商店每个人购买水果的费用,其行分别为人员A、人员B,其列分别为商店A、商店B 。

Y给出每个城镇每种水果的购买量,其行分别为城镇1、城镇2,其列分别为苹果、橘子、梨。

结论;通过矩阵的乘法,可以改变元素的性质和行列的性质。

【Matlab 源代码】1.>> B=[5,10,3,;4,5,5];A=[0.10,0.15;0.15,0.20;0.10,0.10];>> X=B*AX =2.30003.05001.65002.10002.>> C=[1000,500;2000,100];B=[5,10,3;4,5,5];>> Y=C*BY =7000 12500 550010400 20500 6500Matlab 实践课题报告模板2014-2015 学年第二学期《线性代数 A》姓名:赵镇耀学号;1400850229 课题名称. 军事通讯中的加密与解密【模型假设】【模型建立】由C=AB T、可得;B T=A-1C。

matlab简单的数学模型及程序

matlab简单的数学模型及程序

matlab简单的数学模型及程序一、背景介绍Matlab是一款广泛应用于科学计算、工程分析等领域的软件,其强大的数学计算和绘图功能深受研究者和工程师的喜爱。

在实际的应用中,我们常常需要通过建立数学模型来解决一些复杂的问题。

本文将介绍matlab中的简单数学模型及其程序实现。

二、线性方程组线性方程组是数学中比较基础的概念,其求解方法也比较简单。

在matlab中,我们可以通过“mldivide”函数来求解线性方程组。

例如,对于下列线性方程组:-3x + 2y = 14x + y = 8我们可以通过以下代码来求解:A = [-3 2;4 1];b = [1; 8];x = A\b;disp(x);三、微分方程微分方程在工程学和物理学中有着广泛的应用,研究微分方程的解析方法和数值方法是许多科学计算和工程应用中的关键。

在matlab中,我们可以通过ode函数在一定精度条件下计算微分方程。

例如,对于一个一阶线性微分方程y′+2y=10sin(3x),我们可以通过以下代码来求解:f = @(x, y) -2*y + 10*sin(3*x);[x, y] = ode45(f, [0, 3*pi], 0);plot(x, y);四、优化问题优化问题在工程、科学计算和商业决策等领域都有着广泛的应用,matlab提供了许多优化算法来求解各种优化问题。

一个典型的优化问题如下:求解f(x)=x^2+2x+1在区间[0,5]内的最小值。

我们可以通过以下代码来求解:f = @(x) x^2 + 2*x + 1;[x_min, f_min] = fminbnd(f, 0, 5);disp(['x_min=', num2str(x_min), ', f_min=', num2str(f_min)]);五、常微分方程组常微分方程组是微积分的一个分支,应用广泛。

在matlab中,我们可以通过ode45函数计算常微分方程组。

数学模型程序代码-Matlab-姜启源-第一章-建立数学模型

数学模型程序代码-Matlab-姜启源-第一章-建立数学模型

数学模型程序代码-M a t l a b-姜启源-第一章-建立数学模型-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN第1章 建立数学模型1.(求解,编程)如何施救药物中毒p10~11人体胃肠道和血液系统中的药量随时间变化的规律(模型):d ,(0)1100d (,0)d ,(0)0d xx x ty x y y tλλμλμ⎧=-=⎪⎪>⎨⎪=-=⎪⎩ 其中,x (t )为t 时刻胃肠道中的药量,y (t )为t 时刻血液系统中的药量,t =0为服药时刻。

1.1(求解)模型求解p10~11要求:① 用MATLAB 求解微分方程函数dsolve 求解该微分方程(符号运算)。

② 用MATLAB 的化简函数simplify 化简所得结果。

③ 结果与教材P11上的内容比较。

提示:dsolve 和simplify 的用法可用help 查询。

建议在命令窗口中操作。

1.2(编程)结果分析p11已知λ=0.1386, μ=0.1155,将上题中得到x (t )和y (t )两条曲线画在同一个图形窗口内。

参考图形如下。

MATLAB命令plot, fplot, hold on/off, grid on/off, xlabel, ylabel, text 。

★ 编写的程序和运行结果:2.(编程,验证)商人们怎样安全过河p8~9三名商人各带一个随从乘船渡河,一只小船只能容纳二人,由他们自己划行。

随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。

但是如何乘船的大权掌握在商人们手中。

商人们怎样才能安全渡河呢?[模型构成]决策:每一步(此岸到彼岸或彼岸到此岸)船上的人员。

要求:在安全的前提下(两岸的随从数不比商人多),经有限步使全体人员过河。

x k第k次渡河前此岸的商人数y k第k次渡河前此岸的随从数x k , y k=0,1,2,3; k=1,2,⋯过程的状态s k=(x k , y k)允许状态集合S={(x, y)|x=0, y=0,1,2,3; x=3, y=0,1,2,3; x=y=1,2}u k第k次渡船上的商人数v k第k次渡船上的随从数u k , v k=0,1,2; k=1,2,⋯决策d k=(u k , v k)允许决策集合D={(u , v)|u+v =1, 2}状态转移律s k+1=s k+(-1)k d k[多步决策问题]求d k∈D(k=1, 2, ⋯, n), 使s k∈S, 并按转移律由s1=(3,3) 到达s n+1=(0,0)。

线性规划模型及matlab程序求解

线性规划模型及matlab程序求解

§1 线性规划模型一、线性规划课题:实例1:生产计划问题假设某厂计划生产甲、乙两种产品,现库存主要材料有A类3600公斤,B类2000公斤,C类3000公斤。

每件甲产品需用材料A类9公斤,B类4公斤,C类3公斤。

每件乙产品,需用材料A类4公斤,B类5公斤,C类10公斤。

甲单位产品的利润70元,乙单位产品的利润120元。

问如何安排生产,才能使该厂所获的利润最大。

建立数学模型:设x1、x2分别为生产甲、乙产品的件数。

f为该厂所获总润。

max f=70x1+120x2s.t 9x1+4x2≤36004x1+5x2≤20003x1+10x2≤3000x1,x2≥0归结出规划问题:目标函数和约束条件都是变量x的线性函数。

形如: (1) min f T Xs.t A X≤bAeq X =beqlb≤X≤ub其中X为n维未知向量,f T=[f1,f2,…f n]为目标函数系数向量,小于等于约束系数矩阵A为m×n矩阵,b为其右端m维列向量,Aeq为等式约束系数矩阵,beq为等式约束右端常数列向量。

lb,ub为自变量取值上界与下界约束的n维常数向量。

二.线性规划问题求最优解函数:调用格式: x=linprog(f,A,b)x=linprog(f,A,b,Aeq,beq)x=linprog(f,A,b,Aeq,beq,lb,ub)x=linprog(f,A,b,Aeq,beq,lb,ub,x0)x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)[x,fval]=linprog(…)[x, fval, exitflag]=linprog(…)[x, fval, exitflag, outpu t]=linprog(…)[x, fval, exitflag, output, lambda]=linprog(…)说明:x=linprog(f,A,b)返回值x为最优解向量。

数学建模:MatLab实验(解答)

数学建模:MatLab实验(解答)

MatLab 实验一、编写函数文件,给出求解席位问题的Q 值方法对应的MatLab 方法,输入的参数为总席位数及各单位的人数. (程序:qf.m )二、编写函数文件,计算矩阵正常意义下的乘积,在矩阵阶数不匹配的时候,返回错误信息. (用循环方式) (程序:lx2.m )三、编写脚本文件,用数据模拟方法近似计算椭圆周22123x y +=所围成的面积,要求总共模拟一千次,每次抽取50万个随机点,最后以平均值作为相应的面积近似值. (程序:lx3.m )四、利用二重积分计算椭球面2221946x y z ++=的面积. 曲面积分的参数积分形式:若曲面能表示成:()()(),,,,,x x u v y y u v z z u v ===确定,则相应的积分为()()()(),d ,,,,,d .uvD f x y S f x u v y u v z u v u v ∑=⎡⎣⎰⎰⎰⎰ 其中222222,,.u u u v v v u v u v u v E x y x G x y x F x x y y z z =++=++=++对该问题,做变换:()()3cos sin ,2sin sin ,sqrt 6cos ,02π,0πx u v y y v z v u v ===≤≤≤≤,代入上式后得积分值79.6432. (程序:lx4.m )五、用两种方法求解微分方程1,0x xy x y y ='=-⎧⎪⎨=⎪⎩并作出函数在区间[]0.1,3内的图形.(程序:lx5.m )注 该微分方程的解析解为:11.22y x x=-六、用两种方法求解微分方程()0cos 2,1,00x y x y y y =''=-⎧⎪⎨'==⎪⎩并作出函数在区间[]2π,2π-内的图形.注 该微分方程的解析解为:41cos cos2.33x x -七、用两种方法求解微分方程02/,1x y y x y y ='=-⎧⎪⎨=⎪⎩并作出函数在区间[]0,4内的图形,并对图形作比较.八、编写函数文件,输入参数为矩阵的阶数,要求生成一个元素介于1090的随机整数矩阵,找出其中既是3又是5的元素,将其行标和列标分别写人两个向量中,并求出这些元素的和,平均值及个数,存入到变量中,最后输出.,若没有这样的元素存在,显示“no such elements founded!” (程序Lx8.m )九、追踪问题缉私雷达发现: 距离c 处有一走私船正一匀速a 沿直线行驶, 缉私船立即以最大速度(匀速v )追赶, 若用雷达进行跟踪, 保持船的瞬时速度方向始终指向走私船, 则缉私船的运动轨迹如何? 是否能追上走私船? 如果能追上, 需要多长时间? (取20,40,15a v c ===) (程序Chasing.m )问题的进一步探讨若走私船与x 轴的夹角为,θ则问题将如何十、用数据模拟的方法计算两球()2222221,11x y z x y z ++≤++-≤相交的体积。

数学建模matlab实验一(matlab基本操作)

数学建模matlab实验一(matlab基本操作)

xxx大学数学建模上机实验报告课程名称:数学建模年级:20xx级计科成绩:指导教师:xxx姓名:xxx学号:31xxxxxx实验名称:matlab 基本操作日期:20xx年04月29日实验编号:1#组员:xx时间:2:00pm—5:30pm一、实验目的实验目的:对matlab软件的指令操作有一个更深入的了解。

二、实验内容(1)输入:>> clc,猜一下,该命令是什么功能?(2)把下面的内容拷贝到命令窗口执行:A = [2 3 4; 4 -1 6; -3 9 0];B = [2; 3 ;6], X = linsolve(A,B)(3)执行:>> clear delta ,观察Workspace窗口的变化;执行:>> clear A,变化如何?(4)在命令窗口中输入:>> A(+向上或向下的方向键),据你观察,方向键有什么作用?(5)在命令窗口中输入:>> edit mean.m,大家仔细观察,这个是Mathworks公司编写的内部函数。

我们可以学习它的编写程序的格式,欣赏他人程序的美感。

三、使用环境Matlab6 + Symbol Toolbox + Elfun Toolbox, Windows XP四、核心代码及调试过程(1)功能是清屏。

(2)方向键可以按顺序查看已经输入的指令。

(3)function y = mean(x,dim)%MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X. For% matrices, MEAN(X) is a row vector containing the mean value of% each column. For N-D arrays, MEAN(X) is the mean value of the% elements along the first non-singleton dimension of X.%% MEAN(X,DIM) takes the mean along the dimension DIM of X.%% Example: If X = [0 1 2% 3 4 5]%% then mean(X,1) is [1.5 2.5 3.5] and mean(X,2) is [1% 4]%% See also MEDIAN, STD, MIN, MAX, COV.% Copyright 1984-2001 The MathWorks, Inc.% $Revision: 5.16 $ $Date: 2001/04/15 12:01:26 $if nargin==1,% Determine which dimension SUM will usedim = min(find(size(x)~=1));if isempty(dim), dim = 1; endy = sum(x)/size(x,dim);elsey = sum(x,dim)/size(x,dim);end五、总结通过本次上机实验,我对matlab软件有了更深入的了解和掌握。

数学建模实验报告Matlab的基本操作编程

数学建模实验报告Matlab的基本操作编程

wilyes11收集 博客(与学习无关):/u/1810231802MATLAB 基本操作、编程一、 实验目的及意义1.熟悉MATLAB 软件的用户环境; 2.了解MATLAB 软件的一般命令; 3.掌握MATLAB 向量操作与矩阵运算函数; 4.掌握MATLAB 软件的基本符号运算命令; 5. 掌握MATLAB 语言编程的循环、条件和选择结构。

二、实验内容1. MATLAB 软件的向量操作及矩阵运算练习;2. 使用MATLAB 软件进行符号运算练习;3. 用MA TLAB 语言编写命令M-文件和函数M-文件;三、实验步骤1.在D 盘建立一个自己的文件夹; 2.开启软件平台——MATLAB ,将你建立的文件夹加入到MA TLAB 的搜索路径中。

3.利用帮助了解函数max, min, sum, mean, sort, length ,rand, size 和diag 的功能和用法。

4.开启MATLAB 编辑窗口,键入你编写的M 文件(命令文件或函数文件); 5.保存文件(注意将文件存入你自己的文件夹)并运行; 6.若出现错误,修改、运行直到输出正确结果; 7. 写出实验报告,并浅谈学习心得体会。

四、实验要求与任务根据实验内容和步骤,完成以下具体实验,按要求写出实验报告。

1.设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E,R,O,S 分别为单位阵、随机阵、零阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。

2.某零售店有9种商品的单件进价(元)、售价(元)及一周的销量如下表,问哪种商品的利润最大,哪种商品的利润最小;按收入由小到大,列出所有销量 568 1205 753 580 395 2104 1538 810 6943.建立一个命令M-文件:求所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

例如,153是一个水仙花数,因为。

数学模型Matlab解答问题

数学模型Matlab解答问题

数学模型Matlab解答1.已知速度曲线v(t) 上的四个数据点下表所示t=0.15:0.01:0.18;v=[3.5 1.5 2.5 2.8];t1=0.15:0.00001:0.18;v1=interp1(t,v,t1,'spline');S=trapz(t1,v1);% trapz函数是采用复化梯形公式求积分,其应用格式为I=trapz(x,y)其中x分区间离散化数据点构成的向量,y与x维的向量,返回值是积分的近似值p=polyfit(t1,v1,3);p1=polyder(p);%对p求一阶导函数a=polyval(p1,0.18)运行得:S =0.0686a =-128.33332.计算图片文件tu.bmp 给出的两个圆A,B 的圆心,和两个圆的两条外公切线和两条内公切线的切点的坐标。

3.求微分方程组的数值解,并画出解曲线1、建立一新文件editor。

输入以下语句function dy=wffc(t,y);dy=zeros(3,1);dy(1)=(-10)*y(1)+10*y(2);dy(2)=28*y(1)-y(2) -y(1)*y(3);dy(3)=(-8/3)*y(3)+y(1)*y(2);保存文件,命名为wffc.m2、再建立一新文件,输入以下语句t=[0,100];y0=[1;0;0];[t,y]=ode45(‘wffc’,t,y0) %建立函数文件:ode45,常微分方程的数值求解。

MATLAB提供了求常微分方程数值解的函数。

当难以求得微分方程的解析解时,可以求其数值解,Matlab中求微分方程数值解的函数有五个:ode45,ode23,ode113,ode15s,ode23s。

comet3(y(:,1), y(:,2) ,y(:,3))运行程序可以得到如下的图形5. 预测2012-2020年威海人口数量。

说明数据的可靠来源,给出模型的假设,模型及求解的代码和计算结果。

数学建模Matlab实验程序

数学建模Matlab实验程序

Matlab实验作业及答案作业1:建立函数M文件2.建立下面函数的M文件,并求f(x)值.(1)f(x)=log(x1+x22),x=(1,2)(2)f(x)=sin(x2)+exp(2x3),x=2(1)function f = fun1(x1,x2)f = log(x1 +x2^2);end(2)function f = fun2( x)f = sin(x^2) + exp(2*x^3);end3.试编写同时求sin(x),cos(x),exp(x),abs(x)的M函数文件.function f = fun3(x)f = [sin(x) cos(x) exp(x) abs(x)];end4.建立符号函数的M文件:当输入的变量为负数时,返回值-1;当输入的变量为正数时,返回值1;而输入0时,返回值0.function f = fun4(x)if x>0f = 1;else if x == 0f = 0;elsef = -1;endendend5.建立函数 的M 文件。

function f = fun5(x)if x>0f = exp(x-1);elsef = x^2;endend6.通过帮助系统查询roots,poly,polyval,poly2str 的用法,用这些命令解下面的问题:已知一多项式的零点为{-1,1,2,3},写出该多项式,并且计算多项式在点x=2.5处的值。

root = [-1 1 2 3];p = poly(root);x = 2.5;a = polyval(p,x);eig(a)计算多项式y=x 3-3x+2的零点P = [1 0 -3 2];a = company(p); eig(a)7.查询sum,length 的用法,建立一个求向量的平均值的M 文件a = [1 2 3 4];b = sum(a);⎪⎩⎪⎨⎧≤>=-0,0,21x x x e f xc = length(a);d = b/c;eig(d)8.查询input,disp 的用法,建立M 文件:输入x,y 的值将其互换后输出x = input('x=');y = input('y=');disp ([x,y]);t=x;x=y;y=t;disp ([x,y]);作业题2:MATLAB 矩阵的处理1. 创建矩阵A = [1 2 -1 3 5;1 -2 9 0 -6;-3 3 -4 7 1;9 8 0 7 6];disp(A);2.取A 的1,2行与2,3列的交叉元素作子矩阵A1.A([1,2],[2,3])3.取A 的1,3行,然后按行形成矩阵A2A2 = A([1,3],:);4.逆序提取A 的1,2,3行,形成列矩阵A3.A3 = [A(3,:) A(2,:) A(1,:)]’;(“’”为转置符号)5.取A2的绝对值大于3的元素构成向量A4.A4 = find(A>3);6.求出A 的最大值a 及其所处的位置. 12135129063347198076A -⎛⎫ ⎪-- ⎪= ⎪-- ⎪⎝⎭a = max(max(A));[row col v] = find(a);disp([row col v]);7、设用三种方法(克拉姆法则、矩阵的除法、逆矩阵)解方程组AX=bA = [10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10];b = [32;23;33;31];逆矩阵法:x = inv(A)*b;disp(x);矩阵的除法x =A\b;克拉姆法则for n=1:4B = A;B(:,n) = b;x(n) = det(B)/det(A);enddisp(x);作业题3:Matlab 语法控制结构的使用(1) 用起泡法对10个数由小到大排序.即将相邻两个数比较,将小的调到前头.a = [0 9 7 8 6 5 4 3 2 1];1078775658610975910A ⎛⎫ ⎪ ⎪= ⎪ ⎪⎝⎭32233331b ⎛⎫ ⎪ ⎪= ⎪ ⎪⎝⎭n = length(a);for i = 1:nfor j = 1:n-iif a(j)>a(j+1)t = a(j);a(j) = a(j+1);a(j+1) = t;endendenddisp(a)(2) 取任意数组,如[8 9 11 -9 0 2 -82 42 3 5]等的绝对值大于数3的元素构成向量(编程实现).a = [8 9 11 -9 0 2 -82 42 3 5];a = abs(a);b = find(a>3);a1 = a(b);disp(a1);(3)一球从h (比如100米)高度自由落下,每次落地后反跳回原高度的一半,再落下. 求它在第10次落地时,共经过多少米?第10次反弹有多高?h = 100;for i = 1:10h = h/2;enddisp(h) (4)有一函数 写一程序,输入自变量的值,输出函数值.function fun34 = f(x,y)x = input('x=');y = input('y=');if x < 2f = x+1;elseif x >= 2 &&x <= 8f = 3*x;elseif x>8 && x<=20f = 4*x -5;elseif x>201,23,28(,)45,820cos()sin(),20x x x x f x y x x x x x +<⎧⎪≤≤⎪=⎨-<≤⎪⎪+>⎩f = cos(x)+sin(x);enddisp(f);end(5)从1到多少的自然数的和小于或等于1000,此时的和是多少?sum = 0;n = 1;while sum <= 1000sum = sum+n;n = n+1;enddisp(n - 1);disp(sum -n );(6) 已知 当m=100时,求y 的值。

数学建模matlab编程三

数学建模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和μ。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如有你有帮助,请购买下载,谢谢!
1页
数学实验题库
实验1 Matlab 概述 12 实验2 函数图形绘图 3 实验3 数列极限与函数极限 2 实验4 导数与偏导数的计算 2 实验5 方程近似解的求法 3 实验6 定积分的近似计算 3 实验7 多元函数的极值问题 3
1.某化工厂生产A 、B 、C 、D 四种产品,每种产品生产1吨消耗工时和产值如下:
要求全厂年产值为1000万元以上 ,建立使生产消耗总工时最小的数学模型,并求解. 解:设生产A 产品1x 吨、B 产品 2x 吨、C 产品3x 吨、D 产品4x 吨,则所用工时为
123410030040075x x x x +++,产值为12345100.5x x x x +++
如有你有帮助,请购买下载,谢谢!
2页
线性规划模型为: MATLAB 代码为:
clear;
c=[100;300;400;75]; A=[1 5 10 0.5]*(-1); b=[10000]*(-1); Aeq=[]; beq=[]; beq0=[]; lb=0*c;
ub=[inf;inf;inf;inf]; digits(5);
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)
2.贝尔金属公司要生产两种灯,制造一盏中国海灯需要耗费黄铜2磅和3个铣床小时,而制造一盏马坦扎斯海湾灯需要耗费黄铜4磅和1个铣床小时,另外每盏中国海灯需要2人特制的东方灯罩,这种灯罩必须从香港进口,目前每个生产周期,由于联邦法的限制,只能进口100个。

且下一周期公司的黄铜供应量限制为320磅,铣床时间限制为180小时,而每盏中国海灯的利润为60美元,每盏马坦扎斯海湾灯的利润为30美元,为得到最大利润,贝尔公司应该如何安排生产?建立使利润最大的数学模型,并求解. 解:设生产中国海灯1x 盏、马坦扎斯海湾灯 2x 盏,则利润为126030x x 线性规划模型为: MATLAB 代码为:
clear;
c=[-60;-30];A=[2 4;3 1; 2 0];b=[320;180;100]; Aeq=[];beq=[];
lb=[0;0];ub=[inf;inf];
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)
3.伯恩公司生产铝制品的煎锅和焙盘,每个煎锅或焙盘都需要10盎司的铝。

该公司每天
如有你有帮助,请购买下载,谢谢!
3页
能得到的铝的供应量限制为140盎司。

做一个煎锅需要用浇铸机20分钟,而做一个焙盘需要用浇铸机40分钟。

浇铸机一天可供使用的时间为400分钟。

每个煎锅需要一个绝热手柄,而每一天只能获得12个手柄每个焙盘需要两个特别的托柄,而每一天只能获得16个托柄。

每个煎锅可提供3美元的利润,而每个焙盘可提供4美元的利润.煎锅和焙盘的销路很好,公司能卖掉其全部的产品,建立数学模型求使伯恩公司日利润最大的生产量及最大利润. 解:设生产煎锅1x 个、焙盘 2x 个,则日利润为:1234x x + 线性规划模型为:12max 34z x x =+ MATLAB 代码为:
clear; c=[-3;-4];
A=[20 40; 10 10]; b=[400;140]; Aeq=[]; beq=[]; lb=0*c; ub=[12;8];
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)
4.一家广告公司想在电视、广播上做公司的宣传广告,其目的是争取尽可能多地影响顾客。

下表是公司进行市场调研的结果:。

相关文档
最新文档