Matlab函数拟合与Dijkstra算法实现

函数拟合

题目:


   题目1
 

代码:

>> x=[0,34,67,101,135,202,259,336,404,471];

>> y=[15.18,21.36,25.72,32.29,34.03,39.45,43.18,43.46,40.83,30.75];

function [fitresult, gof] = createFit(x, y)

[xData, yData] = prepareCurveData( x, y );

ft = fittype( 'gauss1' );

opts = fitoptions( 'Method', 'NonlinearLeastSquares' );

opts.Display = 'Off';

opts.Lower = [-Inf -Inf 0];

opts.StartPoint = [43.46 336 210.279614505574];

[fitresult, gof] = fit( xData, yData, ft, opts );

figure( 'Name', '无标题拟合 1' );

h = plot( fitresult, xData, yData );

legend( h, 'y vs. x', '无标题拟合 1', 'Location', 'NorthEast', 'Interpreter', 'none' );

xlabel( 'x', 'Interpreter', 'none' );

ylabel( 'y', 'Interpreter', 'none' );

grid on


Dijkstra算法:

题目:


   题目2
 

代码:

clc,clear all

a=zeros(8);

a(1,2)=4;a(1,3)=6;

a(2,4)=5;a(2,5)=4;

a(3,4)=4;a(3,5)=7;

a(4,6)=9;a(4,7)=7;

a(5,6)=5;a(5,7)=6;

a(6,8)=4;a(6,7)=5;

a(7,8)=1;

a=a+a'

a(find(a==0))=inf

pb(1:length(a))=0;pb(1)=1;

index1=1;

index2=ones(1,length(a));

d(1:length(a))=inf;d(1)=0;

temp=1;

while sum(pb)<length(a)

tb=find(pb==0);

d(tb)=min(d(tb),d(temp)+a(temp,tb));

tmpb=find(d(tb)==min(d(tb)));

temp=tb(tmpb(1));

pb(temp)=1;

index1=[index1,temp];

temp2=find(d(index1)==d(temp)-a(temp,index1));

index2(temp)=index1(temp2(1));

end

d,index1,index2

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空