图论与代数实验报告

图论与代数实验报告
图论与代数实验报告

图论与代数实验报告

旅行售货员问题(TSP)

某售货员要到若干城市去推销商品,一直各城市之间的路程,他要选定一条从驻地出发,经过每个城市一遍,最后回到住地的路线,使总的路程最短。

我用分支限界法解决问题。

1、分支限界法基本思想

分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。

在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。

此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。

2、常见的两种分支限界法

(1)队列式(FIFO)分支限界法

按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。

(2)优先队列式分支限界法

按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

最大优先队列:使用最大堆,体现最大效益优先。

最小优先队列:使用最小堆,体现最小费用优先。

该问题是一个NP完全问题,有(n-1)!条可选路线。

路线是一个带权图。图中各边的费用(权)为正数。图的一条周游路线是包括V中的每个顶点在内的一条回路。周游路线的费用是这条路线上所有边的费用之和。

旅行售货员问题的解空间可以组织成一棵树,从树的根结点到任一叶结点的路径定义了图的一条周游路线。旅行售货员问题要在图G 中找出费用最小的周游路线。

即:

设G(V,E)是一带权有向图,V={1,2,…n },其耗费矩阵C=(ci,j),当时, 记ci,j=无穷大且ci,j=无穷大.问如何选择周游路线使耗费最小?

算法思路:设周游路线从结点1开始,解为等长数组X=(1,x2,...xn)

则解空间树为排列树,在树中做广度优先搜索。

约束条件: xi 不等于xj ,i 不等于j; 目标函数:解向量对应的边权之和∑Cij 目标函数限界初值:U=无穷大 C=

算法描述:

①算法开始时创建一个最小堆,用于表示活结点优先队列 ②堆中每个结点的子树费用的下界lcost 值是优先队列的优先级。 ③接着算法计算出图中每个顶点的最小费用出边并用minout 记录。 ④如果所给的有向图中某个顶点没有出边,则该图不可能有回路,算法即告结束。

?????

???????∞∞∞∞20

10

4

2056105304630

⑤如果每个顶点都有出边,则根据计算出的minout作算法初始化。

1、float row_min(NODE *node,int row,float &second)

功能:返回由指针node所指向节点费用矩阵中第row行最小值,并把次小值回送与引用变量second中

2、float col_min(NODE *node,int col,float &second)

功能:返回由指针node所指向节点费用矩阵中第col列最小值,并把次小值回送与引用变量second中

3、float array_red(NODE *node)

功能:归约指针node指向的节点的费用矩阵返回值为归约常数4、float edge_sel (NODE *node,int &vk,int &vl)

功能:计算

d并且搜索分支的边返回dkl的值

kl

5、void del_rowcol(NODE *node,int vk,int vl)

功能:删除费用矩阵当前

V行第l V列的所有元素

k

6、void edge_byp(NODE *node,int vk, int vl)

功能:把vk vl表示的边登记到顶点邻接表并旁路矩阵中有关的边7、NODE *initial(float c[20][20],int n)

功能:初始化函数

8、void insert(HEAP *&heap,int &n_heap,HEAP z)

功能:向最小堆栈插入结点函数

9、HEAP delete_min(HEAP *&heap,int &n_heap)

功能:删除堆栈头结点函数

分支限界法求解TSP问题的程序

#include

#include

#include

#include

using namespace std;

//定义相关结构体

typedef struct node_data //结点数据结构

{

float c[20][20]; /*费用矩阵*/

int row_init[20]; /*费用矩阵的当前行映射为原始行*/ int col_init[20]; /*费用矩阵的当前列映射为原始列*/

int row_cur[20]; /*费用矩阵的原始行映射为当前行*/ int col_cur[20]; /*费用矩阵的原始列映射为当前列*/ int ad[20]; /*回路顶点邻接表*/

int k; /*当前费用矩阵的阶*/

float w; /*结点的下界*/

}NODE;

typedef struct /*堆结构数据*/

{

NODE *p; /*指向结点元素的指针*/

float w; /*所指向结点的下界,堆元素的关键字*/

}HEAP;

//主要函数申明部分

float row_min(NODE *node,int row,float &second);

float col_min(NODE *node,int col,float &second);

float array_red(NODE *node);

float edge_sel (NODE *node,int &vk,int &vl);

void del_rowcol(NODE *node,int vk,int vl);

void edge_byp(NODE *node,int vk, int vl);

NODE *initial(float c[20][20],int n);

void insert(HEAP *&heap,int &n_heap,HEAP z);

HEAP delete_min(HEAP *&heap,int &n_heap);

//主函数开始

int main()

{

int n=20;

int ad[20],path[20];

float c[20][20];

float max_distance, min_distance;

string filename="distance.txt";

ifstream sensor;

sensor.open(filename.c_str()); //打开文件读取距离数据信息

if(sensor.fail())

{

cout<<"Error opening input file\n";

}

else

{

sensor>>max_distance>>min_distance; //没有到达文件末尾时循环读取数据

while(!sensor.eof())

{

for(int i=0;i<20;i++)

{

for(int j=0;j<20;j++)

{

sensor>>c[i][j];

}

c[i][i]=max_distance+1;

}

}

} //读取距离信息结束

int i,j,vk,vl;

float d,w=0;

NODE *xnode;

NODE *ynode;

NODE *znode;

int n_heap=0;

HEAP *heap=new HEAP[50*30]; HEAP x,y,z;

xnode=initial(c,n);

xnode->w=array_red(xnode);

while(xnode->k!=0)

{

d=edge_sel(xnode,vk,vl);

znode=new NODE;

*znode =*xnode;

znode->c[vk][vl]=max_distance+1;

array_red(znode);

znode->w=xnode->w+d;

z.w=znode->w;

z.p=znode;

insert(heap,n_heap,z);

ynode=new NODE;

*ynode=*xnode;

edge_byp(ynode,vk,vl);

del_rowcol(ynode,vk,vl);

ynode->w=array_red(ynode);

ynode->w+=xnode->w;

y.w=ynode->w;

y.p=ynode;

if(ynode->k==2)

{

if(ynode->c[0][0]==0)

{

ynode->ad[ynode->row_init[0]]=ynode->col_init[1];

ynode->ad[ynode->row_init[1]]=ynode->col_init[0];

}

else

{

ynode->ad[ynode->row_init[0]]=ynode->col_init[0];

ynode->ad[ynode->row_init[1]]=ynode->col_init[1];

}

ynode->k=0;

}

insert (heap,n_heap,y);

delete xnode;

x=delete_min(heap,n_heap);

xnode=x.p;

}

w=xnode->w;

for(i=0;iad[i];

delete xnode;

for (i=0;i

delete heap->p;

heap--;

}

heap++;

delete []heap; //释放堆空间

int t=0,k=1; //将邻接表转化为遍历城市的顺序列表,保存在path[]中

path[0]=0;

while(k

{

j=t;

t=ad[j];

path[k]=t;

k++;

}

cout<<"the result of the path:"<

for(j=0;j<20;j++)

{

cout<

}

cout<

return 0;

} //主函数结束

/**********************************函数定义部分***********************************/

//返回由指针node所指向节点费用矩阵中第r ow行最小值,并把次小值回送与引用变量second中

float row_min(NODE *node,int row,float &second)

{

float temp;

int i;

if (node->c[row][0],node->c[row][1])

{

temp =node->c[row][0]; second=node->c[row][1];

}

else

{

temp=node->c[row][1]; second=node->c[row][0];

}

for (i=2;ik;i++)

{

if(node->c[row][i]

{

second=temp;temp=node->c[row][i];

}

else if(node->c[row][i]

second=node->c[row][i];

}

return temp;

}

//返回由指针node所指向节点费用矩阵中第col列最小值,并把次小值回送与引用变量second中

float col_min(NODE *node,int col, float &second)

{

float temp;

int i;

if (node->c[0][col],node->c[1][col])

{

temp =node->c[0][col]; second=node->c[1][col];

}

else

{

temp=node->c[1][col]; second=node->c[0][col];

}

for (i=2;ik;i++)

{

if (node->c[i][col]

{

second =temp; temp =node->c[i][col];

}

else if (node->c[i][col]

second=node->c[i][col];

}

return temp;

}

//归约指针node指向的节点的费用矩阵返回值为归约常数float array_red(NODE *node)

{

int i,j;

float temp,temp1,sum=0;

for(i=0;ik;i++)

{

temp=row_min(node,i,temp1);

for (j=0;jk;j++)

node->c[i][j] -=temp;

sum +=temp;

}

for(j=0;jk;j++)

{

temp=col_min(node,j,temp1);

for (i=0;ik;i++)

node->c[i][j] -=temp;

sum +=temp;

}

return sum;

}

//计算dkl 并且搜索分支的边返回dkl的值float edge_sel(NODE *node,int &vk,int &vl) {

int i,j;

float temp,d=0;

float *row_value=new float[node->k]; float *col_value=new float[node->k];

for (i=0;ik;i++)

row_min(node,i,row_value[i]);

for (i=0;ik;i++)

col_min(node,i,col_value[i]);

for (i=0;ik;i++)

{

for(j=0;jk;j++)

{

if (node->c[i][j]==0)

{

temp=row_value[i]+col_value[j];

if(temp>d)

{

d=temp; vk=i;vl=j;

}

}

}

}

delete row_value;

delete col_value;

return d;

}

//del_rowcol(NODE *node,int vk,int vl)删除费用矩阵当前vk行第vl

列的所有元素

void del_rowcol(NODE *node,int vk,int vl) {

int i,j,vk1,vl1;

for (i=vk;ik-1;i++)

for (j=0;j

node->c[i][j]=node->c[i+1][j];

for (j=vl;jk-1;j++)

for (i=0;i

node->c[i][j]=node->c[i][j+1];

for (i=vk;ik-1;i++)

for (j=vl;jk-1;j++)

node->c[i][j]=node->c[i+1][j+1];

vk1=node->row_init[vk];

node->row_cur[vk1]=-1;

for (i=vk1+1;i<20;i++)

node->row_cur[i]--;//

vl1=node->col_init[vl];

node->col_cur[vl1]=-1;

for (i=vl1+1;i<20;i++)

node->col_cur[i]--;

for (i=vk;ik-1;i++)

node->row_init[i]=node->row_init[i+1];

for(i=vl;ik-1;i++)

node->col_init[i]=node->col_init[i+1];

node->k--;

}

//把vk vl表示的边登记到顶点邻接表并旁路矩阵中有关的边void edge_byp(NODE *node,int vk, int vl)

{

int i,j,k,l;

vk=node->row_init[vk];

vl=node->col_init[vl];

node->ad[vk]=vl;

for (i=0;i<20;i++)

{

j=i;

while (node->ad[j]!=-1)

j=node->ad[j];

if(i!=j)

{

l=node->row_cur[j];

k=node->col_cur[i];

if((k>0)&&(l>0))

node->c[l][k]=100; //以后要改进的地方100是个特殊值

}

}

}

//初始化函数

NODE *initial(float c[20][20],int n)

{

int i,j;

NODE *node=new NODE;

for (i=0;i

for (j=0;j

node->c[i][j]=c[i][j];

for (i=0;i

{

node->row_init[i]=i;

node->col_init[i]=i;

node->row_cur[i]=i;

node->col_cur[i]=i;

}

for (i=0;i

node->ad[i]=-1;

代数结构与拓扑结构Cartan

https://www.360docs.net/doc/4313029273.html,/blog/static/6742112520081231911205/ R^n至少有两种重要的结构:拓扑结构和代数结构(线性空间结构)。 函数连续性只涉及第一种,而可微性则涉及两种(?拓扑—>微分拓扑,拓扑群—>李群)因为微分Df(x)=A的定义牵涉到线性运算和极限概念:f(x+h)-f(x)-Ah=o(||h||) 可微性的概念可以推广到有拓扑结构和线性代数结构这两种结构的其他空间。 现代微分概念源于非线性问题的局部线性化。 半球面是可以摊成平面区域的 要把地球表面画成地图,就非得把球面“撕破”不可 https://www.360docs.net/doc/4313029273.html,/lunwen/2008/200810/266972_5.shtml https://www.360docs.net/doc/4313029273.html,/f?kz=113722720 同伦等价(homotopy equivalent)是拓扑学中所关心的另外一种等价关系,它的 要求比同胚更宽松。取一个拓扑空间,对它进行某些特定的连续形变,所得到的空 间与原来的空间是同伦等价的。举个例子:初始空间是一个实心球,我们可以把它 压缩成一张没有体积的圆盘,再搓成一条没有面积的线段,甚至挤成一个连长度都 没有的点,得到的这些空间都跟原来的同伦等价;我们也可以从原来的实心球里“长”出半个圆盘来作为“耳朵”(半圆盘的直径还贴在实心球表面上),甚至再 “长”出几条线段来作为“触角”(线段的一端在实心球表面上),所得到的空间还 是跟原来的同伦等价。“终结者2”里面那个给人深刻印象的液体机器人,它在身体 没有撕裂开的情况下的各种形态就是同伦等价的。 研究拓扑的一种方法是把拓扑问题转化为代数问题。最常见的例子是计算一个拓 扑空间各个维数的同调群(homology group)和同伦群(homotopy group),然后根据这

用MATLAB解决线性代数问题实验报告

实验三使用MATLAB解决线性代数问题学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144 实验目的: 学习MATLAB有关线性代数运算的指令,主要学习运用MATLAB解决矩阵除法,线性方程组的通解,矩阵相似 对角化问题,以及解决投入产出分析等应用问题。 实验内容: 矩阵转置:A=[1 2;3 4];B=[4 3;2 1]; >> A',B' ans = 1 3 2 4 ans = 4 3 3 1 矩阵加减:A-B ans= -3 -1 1 3 矩阵乘法:A*B,A.*B(数组乘法)||比较矩阵乘法与数组乘法的区别ans= 8 5 20 13 ans= 4 6 6 4 矩阵除法:A\B,B./A ans=

-6 -5 5 4 ans= 4 1.5 0.6667 0.25 特殊矩阵生成:zeros(m,n)||生成m行n列的矩阵 ones(m,n)||生成m行n列的元素全为一的矩阵 eye(n)||生成n阶单位矩阵 rand(m,n)||生成m行n列[0 ,1]上均匀分布随 机数矩阵 zeros(2,3) ans = 0 0 0 0 0 0 >> ones(3,3) ans = 1 1 1 1 1 1 1 1 1 >> eye(3)

ans = 1 0 0 0 1 0 0 0 1 >> rand(2,4) ans = Columns 1 through 3 0.9501 0.6068 0.8913 0.2311 0.4860 0.7621 Column 4 0.4565 0.0185 矩阵处理:trace(A)||返回矩阵的迹 diag(A)||返回矩阵对角线元素构成的向量 tril(A)||提取矩阵的下三角部分 triu(A)||提取矩阵的上三角部分 flipud(A)||矩阵上下翻转 fliplr(A)||矩阵左右翻转 reshape(A,m,n)||将矩阵的元素重排成m行n列矩阵A=[1 2 3;4 5 6;7 8 9]; >> t=trace(A),d=diag(A),u=triu(A)

电子科技大学研究生试题《图论及其应用》(参考答案)

电子科技大学研究生试题 《图论及其应用》(参考答案) 考试时间:120分钟 一.填空题(每题3分,共18分) 1.4个顶点的不同构的简单图共有__11___个; 2.设无向图G 中有12条边,已知G 中3度顶点有6个,其余顶点的度数均小于3。则G 中顶点数至少有__9___个; 3.设n 阶无向图是由k(k ?2)棵树构成的森林,则图G 的边数m= _n-k____; 4.下图G 是否是平面图?答__是___; 是否可1-因子分解?答__是_. 5.下图G 的点色数=)(G χ______, 边色数=')(G χ__5____。 图G 二.单项选择(每题3分,共21分) 1.下面给出的序列中,是某简单图的度序列的是( A ) (A) (11123); (B) (233445); (C) (23445); (D) (1333). 2.已知图G 如图所示,则它的同构图是( D ) 3. 下列图中,是欧拉图的是( D ) 4. 下列图中,不是哈密尔顿图的是(B ) 5. 下列图中,是可平面图的图的是(B ) A C D A B C D

6.下列图中,不是偶图的是( B ) 7.下列图中,存在完美匹配的图是(B ) 三.作图(6分) 1.画出一个有欧拉闭迹和哈密尔顿圈的图; 2.画出一个有欧拉闭迹但没有哈密尔顿圈的图; 3.画出一个没有欧拉闭迹但有哈密尔顿圈的图; 解: 四.(10分)求下图的最小生成树,并求其最小生成树的权值之和。 解:由克鲁斯克尔算法的其一最小生成树如下图: 权和为:20. 五.(8分)求下图G 的色多项式P k (G). 解:用公式 (G P k -G 的色多项式: )3)(3)()(45-++=k k k G P k 。 六.(10分) 22,n 3个顶点的度数为3,…,n k 个顶点的度数为k ,而其余顶点的度数为1,求1度顶点的个数。 解:设该树有n 1个1度顶点,树的边数为m. 一方面:2m=n 1+2n 2+…+kn k 另一方面:m= n 1+n 2+…+n k -1 v v 1 3 图G

东南大学高数a下实验报告

高数实验报告 学号: 姓名: 数学实验一 一、实验题目:(实验习题7-3) 观察二次曲面族kxy y x z ++=22的图形。特别注意确定k 的这样一些值,当k 经过这些值时,曲面从一种类型变成了另一种类型。 二、实验目的和意义 1. 学会利用Mathematica 软件绘制三维图形来观察空间曲线和空间曲线图形的特点。 2. 学会通过表达式辨别不同类型的曲线。 三、程序设计 这里为了更好地分辨出曲线的类型,我们采用题目中曲线的参数方程来画图,即t t kr r z sin cos 22+= 输入代码: ParametricPlot3D [{r*Cos[t],r*Sin[t],r^2+ k*r^2*Cos[t]*Sin[t]}, {t, 0, 2*Pi}, {r, 0, 1},PlotPoints -> 30] 式中k 选择不同的值:-4到4的整数带入。 四、程序运行结果

k=4: k=3: k=2:

k=1: k=0:

k=-1: k=-2:

k=-3: k=-4: 五、结果的讨论和分析 k取不同值,得到不同的图形。我们发现,当|k|<2时,曲面为椭圆抛物面;当|k|=2时,曲面为抛物柱面;当|k|>2时,曲面为双曲抛物面。

数学实验二 一、实验题目 一种合金在某种添加剂的不同浓度下进行实验,得到如下数据: 2 + y+ = cx a bx 法确定系数a,b,c,并求出拟合曲线 二、实验目的和意义 1.练习使用mathematic进行最小二乘法的计算 2.使用计算机模拟,进行函数的逼近 三、程序设计 x={,,,,}; y={,,,,}; xy=Table[{x[[i]],y[[i]]},{i,1,5}]; q[a_,b_,c_]:=Sum[(a+b*x[[i]]+c*x[[i]]*x[[i]]-y[[i]])^2,{i,1 ,5}]; Solve[{D[q[a,b,c],a]?0,D[q[a,b,c],b]?0,D[q[a,b,c],c]?0},{a, b,c}] A={a,b,c}/.%; a=A[[1,1]]; b=A[[1,2]];

数值线性代数第二版徐树方高立张平文上机习题第一章实验报告(供参考)

上机习题 1.先用你所熟悉的的计算机语言将不选主元和列主元Gauss 消去法编写成通用的子程序;然后用你编写的程序求解84阶方程组;最后将你的计算结果与方程的精确解进行比较,并就此谈谈你对Gauss 消去法的看法。 Sol : (1)先用matlab 将不选主元和列主元Gauss 消去法编写成通用的子程序,得到P U L ,,: 不选主元Gauss 消去法:[])(,A GaussLA U L =得到U L ,满足LU A = 列主元Gauss 消去法:[])(,,A GaussCol P U L =得到P U L ,,满足LU PA = (2)用前代法解()Pb or b Ly =,得y 用回代法解y Ux =,得x 求解程序为()P U L b A Gauss x ,,,,=(P 可缺省,缺省时默认为单位矩阵) (3)计算脚本为ex1_1 代码 %算法(计算三角分解:Gauss 消去法) function [L,U]=GaussLA(A) n=length(A); for k=1:n-1 A(k+1:n,k)=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n); end

U=triu(A); L=tril(A); L=L-diag(diag(L))+diag(ones(1,n)); end %算法计算列主元三角分解:列主元Gauss消去法) function [L,U,P]=GaussCol(A) n=length(A); for k=1:n-1 [s,t]=max(abs(A(k:n,k))); p=t+k-1; temp=A(k,1:n); A(k,1:n)=A(p,1:n); A(p,1:n)=temp; u(k)=p; if A(k,k)~=0 A(k+1:n,k)=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n); else break; end end L=tril(A);U=triu(A);L=L-diag(diag(L))+diag(ones(1,n));

离散数学图论部分经典试题及答案

离散数学图论部分综合练习 一、单项选择题 1.设图G 的邻接矩阵为 ??? ???? ? ????? ???0101 010******* 11100100110 则G 的边数为( ). A .6 B .5 C .4 D .3 2.已知图G 的邻接矩阵为 , 则G 有( ). A .5点,8边 B .6点,7边 C .6点,8边 D .5点,7边 3.设图G =,则下列结论成立的是 ( ). A .deg(V )=2∣E ∣ B .deg(V )=∣E ∣ C .E v V v 2)deg(=∑∈ D .E v V v =∑∈)deg( 4.图G 如图一所示,以下说法正确的是 ( ) . A .{(a , d )}是割边 B .{(a , d )}是边割集 C .{(d , e )}是边割集 D .{(a, d ) ,(a, c )}是边割集 5.如图二所示,以下说法正确的是 ( ). A .e 是割点 B .{a, e }是点割集 C .{b , e }是点割集 D .{d }是点割集 6.如图三所示,以下说法正确的是 ( ) . A .{(a, e )}是割边 B .{(a, e )}是边割集 C .{(a, e ) ,(b, c )}是边割集 D .{(d , e )}是边割集 ο ο ο ο ο c a b e d ο f 图一 图二

图三 7.设有向图(a )、(b )、(c )与(d )如图四所示,则下列结论成立的是 ( ) . 图四 A .(a )是强连通的 B .(b )是强连通的 C .(c )是强连通的 D .(d )是强连通的 应该填写:D 8.设完全图K n 有n 个结点(n ≥2),m 条边,当( )时,K n 中存在欧拉回路. A .m 为奇数 B .n 为偶数 C .n 为奇数 D .m 为偶数 9.设G 是连通平面图,有v 个结点,e 条边,r 个面,则r = ( ). A .e -v +2 B .v +e -2 C .e -v -2 D .e +v +2 10.无向图G 存在欧拉通路,当且仅当( ). A .G 中所有结点的度数全为偶数 B .G 中至多有两个奇数度结点 C .G 连通且所有结点的度数全为偶数 D .G 连通且至多有两个奇数度结点 11.设G 是有n 个结点,m 条边的连通图,必须删去G 的( )条边,才能确定G 的一棵生成树. A .1m n -+ B .m n - C .1m n ++ D .1n m -+ 12.无向简单图G 是棵树,当且仅当( ). A .G 连通且边数比结点数少1 B .G 连通且结点数比边数少1 C .G 的边数比结点数少1 D .G 中没有回路. 二、填空题 1.已知图G 中有1个1度结点,2个2度结点,3个3度结点,4个4度结 点,则G 的边数是 . 2.设给定图G (如图四所示),则图G 的点割 ο ο ο ο c a b f

高等数学下实验报告

高等数学实验报告 实验人员:院(系)化学化工学院 学号19013302 姓名 黄天宇 实验地点:计算机中心机房 实验七:空间曲线与曲面的绘制 一、 实验目的 1、利用数学软件Mathematica 绘制三维图形来观察空间曲线和空 间曲面图形的特点,以加强几何的直观性。 2、学会用Mathematica 绘制空间立体图形。 二、实验题目 利用参数方程作图,做出由下列曲面所围成的立体图形: (1) x y x y x z =+--=2 222,1及xOy 平面; (2) 01,=-+=y x xy z 及.0=z 三、实验原理 空间曲面的绘制 作参数方程],[],,[,),(),() ,(max min max min v v v u u v u z z v u y y v u x x ∈∈? ?? ??===所确定的曲面图形的 Mathematica 命令为: ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,umin,umax}, {v,vmin,vmax},选项] 四、程序设计及运行 (1)

(2)

六、结果的讨论和分析 1、通过参数方程的方法做出的图形,可以比较完整的显示出空 间中的曲面和立体图形。 2、可以通过mathematica 软件作出多重积分的积分区域,使积分能够较直观的被观察。 3、从(1)中的实验结果可以看出,所围成的立体图形是球面和圆柱面所围成的立体空间。 4、从(2)中的实验结果可以看出围成的立体图形的上面曲面的方程是xy z =,下底面的方程是z=0,右边的平面是01=-+y x 。 实验八 无穷级数与函数逼近 一、 实验目的 (1) 用Mathematica 显示级数部分和的变化趋势; (2) 展示Fourier 级数对周期函数的逼近情况; (3) 学会如何利用幂级数的部分和对函数进行逼近以及函数值的近似计算。 二、实验题目 (1)、观察级数 ∑ ∞ =1 ! n n n n 的部分和序列的变化趋势,并求和。 (2)、改变例2中m 及x 0的数值来求函数的幂级数及观察其幂级数逼近函数的情况 (3)、观察函数? ? ?<≤<≤--=ππx x x x f 0,10 ,)(展成的Fourier 级数

数值线性代数第二版徐树方高立张平文上机习题第三章实验报告

数值线性代数第二版徐树方高立张平文上机习题第三章实验报告

第三章上机习题 用 你所熟悉的的计算机语言编制利用QR 分解 求解线性方程组和线性最小二乘问题的通用子程序,并用你编制的子程序完成下面的计算任务: (1)求解第一章上机习题中的三个线性方程组,并将所得的计算结果与前面的结果相比较,说明各方法的优劣; (2)求一个二次多项式+bt+c y=at 2 ,使得在残向量 的2范数下最小的意义下拟合表3.2中的数据; (3)在房产估价的线性模型 11 1122110x a x a x a x y ++++= 中,11 2 1 ,,,a a a 分别表示税、浴室数目、占地面积、车库数目、房屋数目、居室数目、房龄、建筑类型、户型及壁炉数目,y 代表房屋价格。现根据表3.3和表3.4给出的28组数据,求出模型中参数的最小二乘结果。

(表3.3和表3.4见课本P99-100) 解 分析: (1)计算一个Householder 变换H : 由于T T vv I ww I H β-=-=2,则计算一个Householder 变换H 等价于计算相应的 v 、β。其中 ) /(2,||||12v v e x x v T =-=β。 在实际计算中, 为避免出现两个相近的数出现的情形,当0 1 >x 时, 令 2 12 221||||)(-x x x x v n +++= ; 为便于储存,将v 规格化为1 /v v v =,相应的,β变为)/(22 1 v v v T =β 为防止溢出现象,用∞ ||||/x x 代替 (2)QR 分解: 利用Householder 变换逐步将n m A n m ≥?,转化为上三 角矩阵A H H H n n 11 -=Λ,则有

电子科技大学2017年图论期末试卷

1 2017年图论课程练习题 一.填空题 1.图1中顶点a 到顶点b 的距离d (a ,b )= 。 a b 9 图1 1 2.已知图G 的邻接矩阵0 11011 01001 1010001011001 0A = ,则G 中长度为2的途径总条数为 。 3.图2中最小生成树T 的权值W (T )= 。 4.图3的最优欧拉环游的权值为 。 12 图 2

2 图3 5.树叶带权分别为1,2,4,5,6,8的最优二元树权值为 。 二.单项选择 1.关于图的度序列,下列说法正确的是( ) (A) 对任意一个非负整数序列来说,它都是某图的度序列; (B) 若非负整数序列12(,,,)n d d d π= 满足1n i i d =∑为偶数,则它一定是图序 列; (C) 若图G 度弱于图H ,则图G 的边数小于等于图H 的边数; (D) 如果图G 的顶点总度数大于或等于图H 的顶点总度数,则图G 度优 于图H 。 2.关于图的割点与割边,下列说法正确的是( ) (A) 有割边的图一定有割点; (B) 有割点的图一定有割边; (C) 有割边的简单图一定有割点; (D) 割边不在图的任一圈中。 3.设()k G ,()G λ,()G δ分别表示图G 的点连通度,边连通度和最小度。下面说法错误的是( )

3 (A) 存在图G ,使得()k G =()G δ=()G λ; (B) 存在图G ,使得()()()k G G G λδ<<; (C) 设G 是n 阶简单图,若()2n G δ ≥ ,则G 连通,且()()G G λδ=; (D) 图G 是k 连通的,则G 的连通度为k 。 4.关于哈密尔顿图,下列命题错误的是( ) (A) 彼得森图是非哈密尔顿图; (B) 若图G 的闭包是哈密尔顿图,则其闭包一定是完全图; (C) 若图G 的阶数至少为3且闭包是完全图,则图G 是哈密尔顿图; (D) 设G 是三阶以上简单图,若G 中任意两个不邻接点u 与v ,满足 ()()d u d v n +≥,则G 是哈密尔顿图。 5.下列说法错误的是( ) (A) 有完美匹配的三正则图一定没有割边; (B) 没有割边的三正则图一定存在完美匹配; (C) 任意一个具有哈密尔顿圈的三正则图可以1因子分解; (D) 完全图21n K +是n 个哈密尔顿圈的和。 三、 设无向图G 有10条边,3度与4度顶点各2个,其余顶点度数均小于3,问G 中至少有几个顶点?在最少顶点数的情况下,写出G 的度序列,该度序列是一个图序列吗?。

高数实验报告

高等数学实验报告 实验一 一、实验题目 观察数列极限 二、实验目的和意义 利用数形结合的方法观察数列的极限,可以从点图上看出数列的收敛性,以及近似地观察出数列的收敛值;通过编程可以输出数列的任意多项值,以此来得到数列的收敛性。 通过此实验对数列极限概念的理解形象化、具体化。 三、计算公式 lim n→∞(1+ 1 n ) n =e 四、程序设计 五、程序运行结果

六、结果的讨论和分析 由运行结果和图像可知,重要极限在2.5到2.75之间,无限趋近于e 。 实验二 一、 实验题目 作出函数)4 4 ( )sin ln(cos 2π π ≤ ≤-+=x x x y 的函数图形和泰勒展开式(选取不同的0x 和n 值)图形,并将图形进行比较。 二、 实验目的和意义 1. 尝试使用数学软件Mathematica 计算函数)(x f 的各阶泰勒多项式。 2. 通过绘制其曲线图形,进一步理解泰勒展开与函数逼近的思想。

三、程序设计 f[x_]:=Log[Cos[x^2]+Sin[x]]; Plot[f[x],{x,-Pi/4,Pi/4},PlotLabel→"A grapj of f[x]"]; For[i=1,i≤10,a=Normal[Series[f[x],{x,0,i}]]; Print["n=",i]; Plot[{a,f[x]},{x,-Pi/4,Pi/4},PlotStyle→{RGBColor[0,0,1],RGBColor[ 1,0,0]}]; i=i+1]; For[x0=-Pi/4,x0≤Pi/4,a=Normal[Series[f[x],{x,x0,10}]];Print["x0=", x0];Plot[{a,f[x]},{x,-Pi/4,Pi/4},PlotStyle→{RGBColor[0,1,0],RGBCo lor[1,0,0]}];x0=x0+Pi/8] 四、程序运行结果 A grapj of f x -0.75-0.5-0.250.250.5 -0.5 -1 -1.5 -2 n=1 n=2 n=3

高数实验报告 (2)

数学实验报告 学号: , 姓名: , 得分: 实验1 实验内容:通过作图,观察重要极限:lim (1+1/n)n=e. 实验目的:1.通过编写小程序,学会应用mathmatica软件的基本功能。 2.学会掌握用mathmatica的图形观察极限。 计算公式:data=Table[(1+1/i)^i,{i,300}]; ListPlot [data,PlotRange {0, },PlotStyle PointSize[0.0018]] 程序运行结果: 结果的讨论与分析: 当i设定在不同值的时候,图形的长度在变化,当总体趋势没有变化,总是取向e。 实验2

实验内容:设数列{Xn}由下列递推关系式给出:x1=1/2,xn+1=xn2+xn(n=1,2………)观察数列1/(x1+1)+ 1/(x2+1) +…….+1/(xn+1)的极限。 实验目的和意义:1:掌握mathmatica数学实验的基本用法。 2:学会利用mathmatica 编程求数列极限。 3:了解函数与数列的关系。 计算公式:f[x_]:=x^2+x;xn=0.5;g[x_,y_]:=y+1/(1+x);y n=0; For[n=1,n 15,n++,xN=xn;yN=yn;xn=N[f[x N]];yn=N[g[xN,yN]]]; Print[" y30=",yn] 程序运行结果:y30= 2. 结果与讨论:这个实验,当yn中n趋向无穷大的时候,能够更加接近极限,当取30以上时候,2就是极限值。 实验3

实验内容:已知函数:f(x)=1/(x2+2x+c)(-5<=x<=4),作出并比较当c 取不同的值的时候(-1,0,1,2,3),并从图上观察出极值点,驻点,单调区间,凹凸区间和渐进线。 实验目的:1.通过实验掌握如何用mathmatica作图。 2.学会观察图像来求函数的相关数据。 计算公式: f[x_]=1/(x2+2 x+(-1)) Plot[f[x],{x,-5,4}, GridLines Automatic,Frame True, PlotStyle RGBColor[1,0,0]] f[x_]=1/(x2+2 x+(0)) Plot[f[x],{x,-5,4}, GridLines→Automatic,Frame→True, PlotStyle→RGBColor[1,0,0]] f[x_]=1/(x2+2 x+(2)) Plot[f[x],{x,-5,4}, GridLines→Automatic,Frame→True, PlotStyle→RGBColor[1,0,0]] f[x_]=1/(x2+2 x+(3)) Plot[f[x],{x,-5,4}, GridLines→Automatic,Frame→True, PlotStyle→RGBColor[1,0,0]] f[x_]=1/(x2+2 x+(3)) Plot[f[x],{x,-5,4}, GridLines→Automatic,Frame→True, PlotStyle→RGBColor[1,0,0]]

数值分析实验报告

实验五 解线性方程组的直接方法 实验5.1 (主元的选取与算法的稳定性) 问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。 实验内容:考虑线性方程组 编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss 消去过程。 实验要求: (1)取矩阵?? ? ?? ?? ?????????=????????????????=1415157,6816816816 b A ,则方程有解T x )1,,1,1(* =。取n=10计算矩阵的 条件数。让程序自动选取主元,结果如何? (2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。 (3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。 (4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。重复上述实验,观察记录并分析实验结果。 思考题一:(Vadermonde 矩阵)设 ?? ??????????????????????=? ? ? ?????????????=∑∑∑∑====n i i n n i i n i i n i i n n n n n n n x x x x b x x x x x x x x x x x x A 0020 10022222121102001111 ,, 其中,n k k x k ,,1,0,1.01 =+=, (1)对n=2,5,8,计算A 的条件数;随n 增大,矩阵性态如何变化? (2)对n=5,解方程组Ax=b ;设A 的最后一个元素有扰动10-4,再求解Ax=b (3)计算(2)扰动相对误差与解的相对偏差,分析它们与条件数的关系。 (4)你能由此解释为什么不用插值函数存在定理直接求插值函数而要用拉格朗日或牛顿插值法的原因吗? 相关MATLAB 函数提示: zeros(m,n) 生成m 行,n 列的零矩阵 ones(m,n) 生成m 行,n 列的元素全为1的矩阵 eye(n) 生成n 阶单位矩阵 rand(m,n) 生成m 行,n 列(0,1)上均匀分布的随机矩阵 diag(x) 返回由向量x 的元素构成的对角矩阵 tril(A) 提取矩阵A 的下三角部分生成下三角矩阵

2015电子科技大学_图论期末考试复习题

2015电子科技大学 图论考试复习题 关于图论中的图,以下叙述不正确的是 A .图中点表示研究对象,边或有向边表示研究对象之间的特定关系。 B .图论中的图,画边时长短曲直无所谓。 C .图中的边表示研究对象,点表示研究对象之间的特定关系。 D .图论中的图,可以改变点与点的相互位置,只要不改变点与点的连接关系。 一个图中最长的边一定不包含在最优生成树内。 下面哪个图形不与完全二分图K 3,3同构? A . B . C . D . 有10条边的5顶单图必与K 5同构。 完全二分图K m ,n 的边数是 A .m B .n C .m +n D .mn 无向完全图K n 的边数为 A .n B .n 2 C .n (n -1) D .n (n -1)/2 若一个无向图有5个顶点,如果它的补图是连通图,那么这个无向图最多有 条边。 对于两个图,如果顶点数目相等,边数相等,次数相等的顶点数目也相等,则这两个图同构。 有15个顶的单图的边数最多是 A .105 B .210 C .21 D .45 图G 如右,则dacbeb A .是G 中的一条道路 B .是G 中的一条道路但不是行迹 C .是G 中的一条行迹但不是轨道 D .不是G 的一条道路 图G 如右,则befcdef A .是G 的一个圈 B .是G 的一条道路但不是行迹 C .是G 的一条行迹但不是轨道 D .是G 的一条轨道但不是圈

v1 36 7 图G如右图所示,则ω (G)= A.1 B.2 C.7 D.8 下列图形中与其补图同构的是 A.B.C.D. 求下图中顶u0到其余各顶点的最短轨长度。 u0v1=8,u0v2=1,u0v3=4,u0v4=2,u0v5=7,v1v2=7,v1v3=2,v1v6=4,v2v4=2,v2v7=3,v3v5=3,v3v6=6,v4v5=5,v4v7=1, v5v 6 =4,v 5 v7=3,v6v7=6, 请画出6阶3正则图。 请画出4个顶,3条边的所有非同构的无向简单图。 设图G={V(G),E(G)}其中V ={ a1, a2, a3, a4, a5},E(G)={(a1, a2),(a2, a4),(a3, a1),(a4, a5),(a5, a2)},试给出G的图形表示并画出其补图的图形。 一个图的生成子图必是唯一的。 不同构的有2条边,4个顶的无向简单图的个数为 A.1 B.2 C.3 D.4 画出5个具有5个结点5条边的非同构的无向连通简单图。 u0到v1的最短轨长度为6,u0到v2的最短轨长度为1,u0 到v3的最短轨长度为4,u0到v4的最短轨长度为2,u0到v5的最短轨长度为6 ,u0到v6的最短轨长度为9,u0到v7的最短轨长度为3。

东南大学高数实验报告(大一上)桑林卫

高等数学数学实验报告 实验人员:院(系):学号:16014217 姓名:桑林卫 实验地点:计算机中心机房 实验一 一、实验题目:设数列{n x }由下列关系出: ),2,1(,2 1 211 =+==+n x x x x n n n ,观察 数列 1 1 111121++ ++++n x x x 的极限。 二、实验目的和意义 通过编程可以输出数列的任意多项值,以此来得到数列的收敛性。通过此实验对数列极限概念的理解形象化、具体化。 三、计算公式 ),2,1(,212 11 =+== +n x x x x n n n ,1 1111121++++++n x x x . 四、程序设计

五、程序运行结果 0.66, 1., 1.6, 1.9, 1.9, 1.9,, ,,,, ,,,,,,,,,,,,,,,,,, . 六、结果的讨论和分析 观察实验结果可得该数列收敛与2,即其极限值为2。 实验二 一、实验题目:已知函数)45(21 )(2≤≤-++=x c x x x f ,作出并比较当c 分别取-1,0,1, 2,3时代图形,并从图上观察极值点、驻点、单调区间、凹凸区间以及渐进线。 二、实验目的和意义 熟悉数学软件Mathematica 所具有的良好的作图功能,并通过函数图形来认识函数,运用 函数的图形来观察和分析函数的有关形态,建立数姓结合的思想。 三、计算公式 )45(21 )(2≤≤-++= x c x x x f 四、程序设计

五、程序运行结果

六、结果的讨论和分析 c的值影响着函数图形上的极值点、驻点、单调区间、凹凸区间以及渐进线,c的值决定了函数图像。 实验三 一、实验题目:作出函数 ) 4 4 )( sin ln(cos2 π π ≤ ≤ - + =x x x y 的函数图形和泰勒展开式 (选取不同的0x和n的值)图形,并将图形进行比较。 二、实验目的和意义 熟悉数学软件Mathematica所具有的良好的作图功能,并通过函数图形来认识函数,运用函数的图形来观察和分析函数的有关形态,建立数姓结合的思想。 熟悉泰勒多项式对函数的近似。 三、计算公式 四、程序设计

数值线性代数实验

数值线性代数实验 题目:数值线性代数 专业:信息与计算科学班级:班姓名: 山东科技大学 2013年 1 月16日

实验报告说明 学院:信息学院专业:信息班级10-2 姓名: 一、主要参考资料: (1)《Matlab数值计算-案例分析》北京航空出版(2)《Matlab数值分析》机械工业出版 二、课程设计应解决的主要问题: (1)平方根 (2)QR方法 (3)最小二乘法 三、应用软件: (1)Matlab7.0 (2)数学公式编辑器 四、发出日期:课程设计完成日期: 指导教师签字:系主任签字:

指导教师对课程设计的评语 指导教师签字: 年月日

一、问题描述 先用你所熟悉的计算机语言将平方根和改进的平方根法编成写通用的子程序,然后用你编写的程序求解对称正定方程组b x =A ,其中 (1)b 随机的选取,系数矩阵位100阶矩阵 ?? ? ??? ???? ????????????1011101110111011101110 (2)系数矩阵为40阶Hilbert 矩阵,即系数矩阵A 的第i 行第j 列元素为 11-+=j i a ij ,向量b 的第i 个分量为∑=-+=n j i j i b 11 1 。 二、分析与程序 1. 平方根法函数程序如下: function [x,b]=pingfanggenfa(A,b) n=size(A); n=n(1); x=A^-1*b; disp('Matlab 自带解即为x'); for k=1:n A(k,k)=sqrt(A(k,k)); A(k+1:n,k)=A(k+1:n,k)/A(k,k); for j=k+1:n; A(j:n,j)=A(j:n,j)-A(j:n,k)*A(j,k); end end for j=1:n-1 b(j)=b(j)/A(j,j);

电子科技大学研究生试题图论及其应用参考答案完整版

电子科技大学研究生试题图论及其应用参考答 案 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

电子科技大学研究生试题 《图论及其应用》(参考答案) 考试时间:120分钟 一.填空题(每题3分,共18分) 1.4个顶点的不同构的简单图共有__11___个; 2.设无向图G 中有12条边,已知G 中3度顶点有6个,其余顶点的度数均小于3。则G 中顶点数至少有__9___个; 3.设n 阶无向图是由k(k2)棵树构成的森林,则图G 的边数m= _n-k____; 4.下图G 是否是平面图?答__是___; 是否可1-因子分解?答__是_. 5.下图G 的点色数=)(G χ______, 边色数=')(G χ__5____。 图G 二.单项选择(每题3分,共21分) 1.下面给出的序列中,是某简单图的度序列的是( A ) (A) (11123); (B) (233445); (C) (23445); (D) (1333). 2.已知图G 如图所示,则它的同构图是( D ) 3. 下列图中,是欧拉图的是( D ) 4. 下列图中,不是哈密尔顿图的是(B )

5. 下列图中,是可平面图的图的是(B ) 6.下列图中,不是偶图的是( B ) 7.下列图中,存在完美匹配的图是(B ) 三.作图(6分) 1.画出一个有欧拉闭迹和哈密尔顿圈的图; 2.画出一个有欧拉闭迹但没有哈密尔顿圈的图; 3.画出一个没有欧拉闭迹但有哈密尔顿圈的图; 解: 四. A C D 1 2 3 A B C D

解:由克鲁斯克尔算法的其一最小生成树如下图: 权和为:20. 五.(8分) 求下图G 的色多项式P k (G). 解:用公式 )(e G P k -G 的色多项式: )3)(3)()(345-++=k k k G P k 。 六.(10分) 一棵树有n 2个顶点的度数为2,n 3个顶点的度数为3,…,n k 个顶点的度数 为k ,而其余顶点的度数为1,求1度顶点的个数。 解:设该树有n 1个1度顶点,树的边数为m. 一方面:2m=n 1+2n 2+…+kn k 另一方面:m= n 1+n 2+…+n k -1 由上面两式可得:n 1=n 2+2n 3+…+(k -1)n k 七.证明:(8分) 设G 是具有二分类(X,Y)的偶图,证明(1)G 不含奇圈;(2)若|X |≠|Y |,则G 是非哈密尔顿图。 证明:(1) 若不然,设C=v 1v 2…v m v 1为G 的一个奇圈,不妨设v 1X, v 5 v v v 6 图G

线性代数MATLAB仿真实验报告

合肥学院 2018—2019学年第2学期 线性代数及应用 (模块) 实验报告 实验名称:线性代数MATLAB实验 实验类别:综合性 设计性□验证性 专业班级: 17通信工程(2)班 实验时间: 9-12周 组别:第组人数 3人 指导教师:牛欣成绩: 完成时间: 2019年 5 月9日

一. 小组成员 姓名学号具体分工 汪蔚蔚(组长) 1705022025 A报告最后的整合,编写,案例四的计算与应用 以及案例一的计算与证明 陶乐 1 1705022009 C案例二,化学方程式配平问题 程赢妹1505022036 A案例三,应用题灰度值的计算问题 二. 实验目的 1、案例一利用MATLAB进行线性代数计算,求出矩阵B 2、案例二利用MATLAB计算出每一个网格数据的值,然后每一个网格数据的值乘以256以后进行归一化处理,根据每个网格中的灰度值,绘制出灰度图像。 3、案例三利用MATLAB完成对化学方程式进行配平的应用 4、案例四利用MATLAB求极大线性无关组,并表示出其余向量 三. 实验内容 1、案例一: 0,1,0 ,=1,0,0, 0,0,0 A B AB BA A B ?? ?? =?? ?? ?? 已知矩阵和矩阵满足乘法交换律,即且求矩阵。 2、案例二 配平下列化学方程式: 3、案例三: 3*32 0.81.21.70.20.3 0.6021.61.20.6. 1MATLAB 2256MATLAB 给定一个图像的个方向上的灰度叠加值:沿左上方到右 下方的灰度叠加值依次为,,,,;沿右上方到左下 方的灰度叠加值依次为,。,,, )建立可以确定网络数据的线性方程组,并用求解 )将网络数据乘以,再取整,用绘制该灰度图像

运筹学期末试题

《运筹学》试题样卷(一) 一、判断题(共计10分,每小题1分,对的打√,错的打X ) 1. 无孤立点的图一定是连通图。 2. 对于线性规划的原问题和其对偶问题,若其中一个有最优解, 另一个也一定有最优解。 3. 如果一个线性规划问题有可行解,那么它必有最优解。 4.对偶问题的对偶问题一定是原问题。 5.用单纯形法求解标准形式(求最小值)的线性规划问题时,与0 >j σ 对应的变量都 可以被选作换入变量。 6.若线性规划的原问题有无穷多个最优解时,其对偶问题也有无穷 多个最优解。 7. 度为0的点称为悬挂点。 8. 表上作业法实质上就是求解运输问题的单纯形法。 9. 一个图G 是树的充分必要条件是边数最少的无孤立点的图。 二、建立下面问题的线性规划模型(8分) 某农场有100公顷土地及15000元资金可用于发展生产。农场劳动力情况为秋冬季3500人日;春夏季4000人日。如劳动力本身用不了时可外出打工,春秋季收入为25元 / 人日,秋冬季收入为20元 / 人日。该农场种植三种作物:大豆、玉米、小麦,并饲养奶牛和鸡。种作物时不需要专门投资,而饲养每头奶牛需投资800元,每只鸡投资3元。养奶牛时每头需拨出1.5公顷土地种饲料,并占用人工秋冬季为100人日,春夏季为50人日,年净收入900元 / 每头奶牛。养鸡时不占用土地,需人工为每只鸡秋冬季0.6人日,春夏季为0.3人日,年净收入2元 / 每只鸡。农场现有鸡舍允许最多养1500只鸡,牛栏允许最多养200头。三种作物每年需要的人工及收入情况如下表所示:

试决定该农场的经营方案,使年净收入为最大。 三、已知下表为求解某目标函数为极大化线性规划问题的最终单纯形表,表中54,x x 为 1x 2x 3x 4x 5x 3x 5/2 0 1/2 1 1/2 0 1x 5/2 1 -1/ 2 0 -1/6 1/ 3 j j z c - -4 -4 -2 (1)写出原线性规划问题;(4分) (2)写出原问题的对偶问题;(3分) (3)直接由上表写出对偶问题的最优解。(1分) 四、用单纯形法解下列线性规划问题(16分) 3212max x x x Z +-= s. t. 3 x 1 + x 2 + x 3 £ 60 x 1- x 2 +2 x 3 £ 10 x 1+ x 2- x 3 £ 20 x 1, x 2 , x 3 30 五、求解下面运输问题。 (18分) 某公司从三个产地A 1、A 2、A 3 将物品运往四个销地B 1、B 2、B 3、B 4,各产地的产量、各销地的销量和各产地运往各销地每件物品的运费如表所示: 问:应如何调运,可使得总运输费最小? 销 地 产 地 1B 2 B 3 B 4 B 产 量 1A 2 A 3 A 10 8 9 5 2 3 6 7 4 7 6 8 25 25 50 销 量 15 20 30 35 100 六、灵敏度分析(共8分) 线性规划max z = 10x 1 + 6x 2 + 4x 3 s.t. x 1 + x 2 + x 3 £ 100 10x 1 +4 x 2 + 5 x 3 £ 600

数值分析实验报告_清华大学__线性代数方程组的数值解法

线性代数方程组的数值解法 实验1.主元的选取与算法的稳定性 问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。 实验内容:考虑线性方程组 n n n R b R A b Ax ∈∈=?,, 编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss 消去过程。 实验要求: (1)取矩阵?? ???? ? ?????????=???????????? ? ?? ?=141515 7,68 168 16816 b A ,则方程有解T x )1,,1,1(* =。取n=10 计算矩阵的条件数。让程序自动选取主元,结果如何? (2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。 (3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。 (4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。重复上述实验,观察记录并分析实验结果。 1.1程序清单 n=input('矩阵A 的阶数:n='); A=6*diag(ones(1,n))+diag(ones(1,n-1),1)+8*diag(ones(1,n-1),-1); b=A*ones(n,1); p=input('计算条件数使用p-范数,p='); cond_A=cond(A,p) [m,n]=size(A); Ab=[A b]; r=input('选主元方式(0:自动;1:手动),r=');

相关文档
最新文档