数学建模 求最短距离 最好能用多种方法
展开全部
用matlab解
%求A到E的最短距离
AB=[2 4 3];
BC=[7 4 6;3 2 4;4 1 5];
CD=[1 4;6 3;3 3];
DE=[3;4];
l=zeros(1,100)+1000;
n=1;
for a=1:3
L=AB(1,a);
for b=1:3
L=L+BC(a,b);
for c=1:2
L=L+CD(b,c)+DE(c,1);
l(1,n)=L;
n=n+1;
end
end
end
minL=min(l)
运行程序得到minL=11
数学模型
(Mathematical Model)是一种模拟,是用数学符号、数学式子、程序、图形等对实际课题本质属性的抽象而又简洁的刻画,它或能解释某些客观现象,或能预测未来的发展规律,或能为控制某一现象的发展提供某种意义下的最优策略或较好策略。
数学模型一般并非现实问题的直接翻版,它的建立常常既需要人们对现实问题深入细微的观察和分析,又需要人们灵活巧妙地利用各种数学知识。
东莞大凡
2024-11-19 广告
2024-11-19 广告
板格标定棋盘是我们东莞市大凡光学科技有限公司在精密光学测量领域的重要工具。它采用高精度设计,确保每一个格板都达到严格的校准标准。通过使用板格标定棋盘,我们能够有效地对光学测量系统进行校准,从而提升测量的准确性和可靠性。这一工具在光学仪器的研...
点击进入详情页
本回答由东莞大凡提供
展开全部
可以用数据结构里的最短路径算法,也叫Dijkstra算法,附上Dijkstra算法的Matlab编程代码
%两点间最短路的Dijkstra算法
function [d index1 index2]=Dijkf(a,s)
%d表示所求最短路的权和
%index1表示标号顶点顺序
%index2表示标号顶点索引
%a表示图的权值矩阵
%s表示开始的点
%对向量进行处理,将第n行和第n列的数据放置到第一行和第一列
b=a(s,:);
a(s,:)=a(1,:);
a(1,:)=b;
b=a(:,s);
a(:,s)=a(:,1);
a(:,1)=b;
%参数初始化
M=max(max(a));
pb(1:length(a))=0;
pb(1)=1;
index1=1;
index2=ones(1,length(a));
d(1:length(a))=M;d(1)=0;temp=1;
%更新l(v),同时记录顶点顺序和顶点索引
while sum(pb)<length(a)%重复步骤2,直到满足停止条件
tb=find(pb==0);
d(tb)=min(d(tb),d(temp)+a(temp,tb));%更新l(v)
tmpb=find(d(tb)==min(d(tb)));
temp=tb(tmpb(1));
pb(temp)=1;
index1=[index1,temp];%记录标号顺序
index=index1(find(d(index1)==d(temp)-a(temp,index1)));
if length(index)>=2
index=index(1);
end
index2(temp)=index;%记录标号索引
end
%两点间最短路的Dijkstra算法
function [d index1 index2]=Dijkf(a,s)
%d表示所求最短路的权和
%index1表示标号顶点顺序
%index2表示标号顶点索引
%a表示图的权值矩阵
%s表示开始的点
%对向量进行处理,将第n行和第n列的数据放置到第一行和第一列
b=a(s,:);
a(s,:)=a(1,:);
a(1,:)=b;
b=a(:,s);
a(:,s)=a(:,1);
a(:,1)=b;
%参数初始化
M=max(max(a));
pb(1:length(a))=0;
pb(1)=1;
index1=1;
index2=ones(1,length(a));
d(1:length(a))=M;d(1)=0;temp=1;
%更新l(v),同时记录顶点顺序和顶点索引
while sum(pb)<length(a)%重复步骤2,直到满足停止条件
tb=find(pb==0);
d(tb)=min(d(tb),d(temp)+a(temp,tb));%更新l(v)
tmpb=find(d(tb)==min(d(tb)));
temp=tb(tmpb(1));
pb(temp)=1;
index1=[index1,temp];%记录标号顺序
index=index1(find(d(index1)==d(temp)-a(temp,index1)));
if length(index)>=2
index=index(1);
end
index2(temp)=index;%记录标号索引
end
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最短距离有一个(可能有多条路径),的,学过数据结构没有,,,,,直接编程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-01-28
展开全部
用matlab解,,,
%求A到E的最短距离
AB=[2 4 3];
BC=[7 4 6;3 2 4;4 1 5];
CD=[1 4;6 3;3 3];
DE=[3;4];
l=zeros(1,100)+1000;
n=1;
for a=1:3
L=AB(1,a);
for b=1:3
L=L+BC(a,b);
for c=1:2
L=L+CD(b,c)+DE(c,1);
l(1,n)=L;
n=n+1;
end
end
end
minL=min(l)
运行程序得到minL=11
%求A到E的最短距离
AB=[2 4 3];
BC=[7 4 6;3 2 4;4 1 5];
CD=[1 4;6 3;3 3];
DE=[3;4];
l=zeros(1,100)+1000;
n=1;
for a=1:3
L=AB(1,a);
for b=1:3
L=L+BC(a,b);
for c=1:2
L=L+CD(b,c)+DE(c,1);
l(1,n)=L;
n=n+1;
end
end
end
minL=min(l)
运行程序得到minL=11
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找《运筹学》教材看一下,里面有例题,不难。
也可以搜索相关程序解决。
也可以搜索相关程序解决。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询