如何用matlab求解不等式曲面上最短路问题?

MATLAB求最短路
黎约绛血Rm
读取代码如下:fid=fopen('11.txt','r');data=[];while 1
tline=fgetl(fid);
if ~ischar(tline),end
tline=str2num(tline);
data=[tline];end
为您推荐:
其他类似问题
扫描下载二维码图论中最短路问题的MATLAB程序实现[1]_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
图论中最短路问题的MATLAB程序实现[1]
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
你可能喜欢小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
知道一个关系式,如何用MATLAB画出曲面图???
现在我知道一个关系式如下:
Z=1/(1+0.485*x^0.4761/y^0.3318)
如何用MATLAB画出曲面图?
我在MATLAB里用如下命令为何行不通?
x=0:0.1:10;
=meshgrid(x,y);
Z=(1+0.485*x^0.4761/y^0.3318)^-1
surf(X,Y,Z)
给出的报错是:
??? Error using ==& mpower
Inputs must be a scalar and a square matrix.
如何我想把X轴限定在,y限定在之间,如何办得到?
=meshgrid(0:1:10,0:0.2:2);
Z=(1+0.485*X.^0.4761./Y.^0.3318).^-1;
surf(X,Y,Z);
好的,谢谢!
研究生必备与500万研究生在线互动!
扫描下载送金币基于MATLAB的dijkstra算法及其应用 
简介dijkstra算法(迪杰斯特拉算法)是一种经典的优化算法。以其应用的广泛性与简便性,值得我们去研究。
Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。(摘自网络,呵呵)
实例这里给出一个基于MATLAB的dijkstra算法的实现函数,并给出MATLAB已有的dijkstra算法函数的调用情况。给出一个具体的例子。
路径分布图
[distance,path]=dijkstra(A,s,e)
% [DISTANCE,PATH]=DIJKSTRA(A,S,E)
% returns the distance and path between the start node and the end
% A: adjcent matrix
% s: start node
% e: end node
% initialize
n=size(A,1);&&&&&&&
% node number
D=A(s,:);&&&&&&&&&&
% distance vector
path=[];&&&&&&&&&&&
% path vector
visit=ones(1,n);&&&
% node visibility
visit(s)=0;&&&&&&&&
% source node is unvisible
parent=zeros(1,n);& % parent node
% the shortest distance
i=1:n-1&&&&&&&&
% BlueSet has n-1 nodes
temp=zeros(1,n);
if visit(j)
&&&&&&&&&&&
temp=[temp(1:count) D(j)];
&&&&&&&&&&&
temp=[temp(1:count) inf];
count=count+1;
[value,index]=min(temp);
visit(j)=0;
if D(k)&D(j)+A(j,k)
&&&&&&&&&&&
D(k)=D(j)+A(j,k);
&&&&&&&&&&&
parent(k)=j;
distance=D(e);
% the shortest distance path
if parent(e)==0
path=zeros(1,2*n);&&&&&
% path preallocation
t=e; path(1)=t; count=1;
while t~=s &&
p=parent(t);
&&& path=[p
path(1:count)];
count=count+1;
if count&=2*n
&&& error(['The
path preallocation length is too short.',...
'Please redefine path preallocation parameter.']);
path(1)=s;
path=path(1:count);
-------------------------------------------------------------
%% 载入设置数据
points = load('c:\\niu\\点的数据.txt');
lines = load('c:\\niu\\边数据.txt');
A = ones(size(points, 1))*I
for i = 1 : size(A, 1)
&&& A(i, i) =
figure('NumberTitle', 'off', 'Name', '连接关系', 'Menu', 'None',
&&& 'Color',
'w', 'units', 'normalized', 'position', [0 0 1 1]);
plot(points(:, 2), points(:, 3), 'r.', 'MarkerSize', 20);
for i = 1 : size(lines, 1)
&&& temp =
lines(i, :);
points(temp(1), 2 : end);
points(temp(2), 2 : end);
norm([pt1(1)-pt2(1), pt1(2)-pt2(2)]);
&&& A(temp(1),
temp(2)) =
&&& plot([pt1(1)
pt2(1)], [pt1(2) pt2(2)], 'k-', 'LineWidth', 2);
% A就是连接矩阵,其中对角线为0,表示本身
% 有连接关系的就对应线的长度
% 没有连接关系的就对应inf
%% 下面的是dijstra算法,有两种方式可以调用
s = 10; % 起点
e = 100; % 终点
[distance,path0] = dijkstra(A,s,e);
fprintf('\n Use Dijkstra the Min Distance is: %.5f \n',
distance);
fprintf('\n Use Dijkstra the Min Distance path is: \n');
disp(path0);
A1(isinf(A1)) = 0;
[d, p, pred] = graphshortestpath(sparse(A1), s, e);
fprintf('\n Use graphshortestpath the Min Distance is: %.5f \n',
fprintf('\n Use graphshortestpath the Min Distance path is:
for i = 1 : length(path0)
&&& if i ==
length(path0)
temp = [path0(1) path0(i)];
temp = [path0(i) path0(i+1)];
points(temp(1), 2 : end);
points(temp(2), 2 : end);
norm([pt1(1)-pt2(1), pt1(2)-pt2(2)]);
&&& plot([pt1(1)
pt2(1)], [pt1(2) pt2(2)], 'r-', 'LineWidth', 2);
end总结dijkstra算法在优化、图像处理、网格处理等相关领域有非常广泛的应用,希望能借此机会了解其实质内容,并灵活应用其到所学领域中。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。工具类服务
编辑部专用服务
作者专用服务
利用lingo软件解决最短路问题的两种方法
最短路问题是网络理论解决的典型问题之一,在实际生活中有着广泛的应用,可用来解决管路铺设、线路安装、厂区布局和设备更新等实际问题.本文总结了利用matlab和lingo数学软件来解决最短路问题的几种方法,为最短路问题的解决拓展了思路.
CHEN Yun-feng
作者单位:
济南工程职业技术学院 山东 济南 250200
年,卷(期):
在线出版日期:
本文读者也读过
相关检索词
万方数据知识服务平台--国家科技支撑计划资助项目(编号:2006BAH03B01)(C)北京万方数据股份有限公司
万方数据电子出版社

我要回帖

更多关于 matlab求解不等式 的文章

 

随机推荐