基础算法matlab

常用算法

knn

% clc
% close all
% clear
training = [mvnrnd([2 2],eye(2),50);mvnrnd([-2 -2],2*eye(2),50);mvnrnd([-2 -2],2*eye(2),50)];
group = [ones(50,1);2*ones(50,1);3*ones(50,1)];
gscatter(training(:,1),training(:,2),group,'rcb','*x+');
hold on;
sample = unifrnd(-3,3,20,2);
K = 3;
Mdl = fitcknn(training,group,'NumNeighbors',K);
ck = predict(Mdl,sample); 
gscatter(sample(:,1),sample(:,2),ck,'rcb','ods');

7.6 试编程实现AODE分类器,并以西瓜数据集3.0为训练集,对p.151的“测1”样本进行判别。
答:编程代码附后。
在实现AODE分类器过程中,需要应用(7.23)~(7.25)式计算各个概率值。由于西瓜数据集3.0中含有连续属性,需要对(7.24)和(7.25)计算式进行相应的拓展。

对于(7.24)式,若为连续属性,则按下式计算:

其中为正态分布的概率密度函数,参数为。
对于(7.25)式,存在多种情况:
(a). 若为离散属性,为连续属性,此时:

(b). 若为连续属性,为离散属性,此时:

©. 若为连续属性,为连续属性,此时:

需要注意的是,对于上面(a),(b)两种情况下,求取正态分布参数时,可能因为子集中样本数太少而无法估计。在编程中,若样本数为零,则假定为正态分布,亦即;若仅一个样本,则将平均值设为该唯一取值,方差设为1.

function predict  = aoop(x, X, Y)
%      平均独依赖贝叶斯分类器
%      x 待预测样本
%      X 训练样本特征值
%      Y 训练样本标记
%      laplace 是否采用“拉普拉斯修正”,默认为真
%      mmin 作为父属性最少需要的样本数
laplace=1;
mmin=3;
XX = cell2table(X);
C = unique(Y);  % 所有可能标记
N = zeros(1,size(x,2));
%% 
for i = 1:size(x,2)
    N(i) = size(unique(XX(:,i)),1);
end
%% 
p = zeros(size(C,1),1);  % 存储概率值
% disp('===============平均独依赖贝叶斯分类器(AODE)===============')
for i= 1:size(C,1)
 
    c = C(i);
    % --------求取类先验概率P(c)--------
    disp('--------求取类先验概率P(c)--------')
    Xc = X(Y==c,:);
%     Xc = X(Y==1,:);
    Xcc = cell2table(Xc);
    pc = (size(Xc,1) + laplace) / (size(X,1) + laplace * size(C,1));  % 类先验概率
%     disp('--------求取父属性概率P(c,xi)--------')
    p_cxi = zeros(1,size(x,2));  % 将计算结果存储在一维向量p_cxi中
    for ii = 1:size(x,2)
        if ~strcmp(class(x{1,ii}),class(X{1,ii}))
%             disp('样本数据第%d个特征的数据类型与训练样本数据类型不符,无法预测!')
            return 
        end
        if isa(x{1,ii},'categorical')%strcmp(class(x{1,1}),'categorical')
                % 若为字符型特征,按离散取值处理
                Xci = 0;
                for jj = 1:size(Xc(:,ii))
                    if Xc{jj,ii}==x{1,ii}
                       Xci = Xci+1;
                    end
                end
                p_cxi(ii) = (Xci + laplace) / (size(XX,1)+ laplace * size(C,1) * N(ii));
                
                
         elseif isa(x{1,ii}, 'double')
                % 若为浮点型特征,按高斯分布处理
                
                Xci = cell2mat(Xc(:,ii));
                u = mean(Xci);
                sigma = std(Xci);
                p_cxi(ii) = pc / sqrt(2 * pi) / sigma * exp(-(x{1,ii} - u)^2 / 2 / sigma ^ 2);
        else
                disp('目前只能处理字符型和浮点型数据,对于其他类型有待扩展相应功能。')
                return       
        end   
    end
    % --------求取父属性条件依赖概率P(xj|c,xi)--------
    p_cxixj = eye(size(x,2));  % 将计算结果存储在二维向量p_cxixj中
    for ii = 1:size(x,2)
            for jj = 1:size(x,2)
                if ii == jj
                    continue
                end
                % ------根据xi和xj是离散还是连续属性分为多种情况-----
                if isa(x{1,ii},'categorical') == isa(x{1,jj}, 'categorical')
                    Xci = [];
                    for jjj = 1:size(Xc(:,ii))
                        if Xc{jjj,ii}==x{1,ii}
                            Xci = [Xci,jjj];
                        end
                    end
                    
                    
                    Xcij = 0;
                    for jjj = 1:size(Xci,2)
                        if Xc{Xci(jjj), jj} == x{1, jj}
                            Xcij = Xcij + 1;
                        end
                    end
                    p_cxixj(ii, jj) = (Xcij + laplace) / (size(Xci,2) + laplace * N(jj));
                end
                if isa(x{1,ii},'categorical') && isa(x{1,jj}, 'double')
                    Xci = 0;
                    Xcij = [];
                    for jjj = 1:size(Xc(:,ii))
                        if Xc{jjj,ii}==x{1,ii}
                            Xci = Xci+1;
                            Xcij = [Xcij;Xcc(jjj,:)];
                        end
                    end
                    % 若子集Dc,xi数目少于2个,则无法用于估计正态分布参数,
                    % 则将其设为标准正态分布
                    if size(Xcij,1) == 0
                        u = 0;
                    else
                        Xcij(:,jj)
                        table2array(Xcij(:,jj))
                        u = mean(table2array(Xcij(:,jj)));
                    end
                    if size(Xcij,1) < 2
                        sigma = 1;
                    else
                        sigma = std(table2array(Xcij(:,jj)));
                    end
                    p_cxixj(ii, jj) = 1/(sqrt(2 * pi)*sigma) * exp(-(x{1,jj} - u)^ 2 / (2 * sigma ^ 2));
%                     p_cxixj(ii, jj) = 1 / sqrt(2 * pi) / ...
%                                     sigma * exp(-(x{1,jj} - u) ^ 2 / 2 / sigma ^ 2);
                end
                if isa(x{1,jj},'categorical') && isa(x{1,ii}, 'double')
                    Xci = 0;
                    Xcij = [];
                    for jjj = 1:size(Xc(:,jj))
                        if Xc{jjj,jj}==x{1,jj}
                            Xci = Xci+1;
                            Xcij = [Xcij;Xcc(jjj,:)];
                        end
                    end
                    % 若子集Dc,xi数目少于2个,则无法用于估计正态分布参数,
                    % 则将其设为标准正态分布
                    if size(Xcij,1) == 0
                        u = 0;
                    else
                        u = mean(table2array(Xcij(:,ii)));
                    end
                    if size(Xcij,1) < 2
                        sigma = 1;
                    else
                       
                        sigma = std(table2array(Xcij(:,ii)));
                    end
                    p_cxixj(ii, jj) = 1/(sqrt(2 * pi)*sigma) * exp(-(x{1,ii} - u)^ 2 / (2 * sigma ^ 2))*p_cxi(jj) / p_cxi(ii);
                end
                if isa(x{1,ii},'double') && isa(x{1,jj}, 'double')
                    Xcij = Xcc(:,[ii,jj]);
                    Xcij = table2array(Xcij);  
                    mui = mean(Xcij);
                    sigmaxie = cov(Xcij);
                    temp = pc./p_cxi(ii);
                    p_cxixj(ii,jj) = (1/(2*pi*sqrt(det(sigmaxie))))*exp(-0.5*([x{1,ii},x{1,jj}]-mui)/(sigmaxie)*([x{1,ii},x{1,jj}]-mui)').*temp; 
%                    p_cxixj(ii,jj) = ((1/(2*pi*det(sigmaxie)^(0.5)))*exp(-([x{1,ii} x{1,jj}]-mui)*sigmaxie*([x{1,ii} x{1,jj}]-mui)'/2))*pc/p_cxi(ii); 
                end
            end
            
    end
    sump = 0;
    for iij = 1:size(x,2)
        Xci = 0;
        for jjj = 1:size(X,1)
            if X{jjj,2}==x{1,2}
                Xci = Xci+1
            end
         end
         if Xci >= mmin
            sump = sump + p_cxi(iij)*prod(p_cxixj(iij,:))
         end
    end
    p(i) = sump
end
[~,index]=max(p);
predict = C(index);
p
end
clear;clc;
load m1.mat
load m2.mat
%               主程序
%  ====================================
%4.3 西瓜数据集3.0
%  FeatureName=['色泽','根蒂','敲声','纹理','脐部','触感','密度','含糖率']
%  LabelName={1:'好瓜',0:'坏瓜'}

X = table2cell(xigua1);
x  = table2cell(XTT1);
x = X(17,:);
x{1,8} = 0.8;
Y = [ones(8,1);-1*ones(9,1)];
% x = {'青绿', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', 0.697, 0.460};  % 测试例"测1"
ptict  = aoop(x, X, Y) ; % 此时不用拉普拉斯修正,方便与教材对比计算结果

LLE

function [Y] = lle(X,K,d)
X = X';
[D,N] = size(X);

X2 = sum(X.^2,1);
distance = repmat(X2,N,1)+repmat(X2',1,N)-2*X'*X;

[~,index] = sort(distance);
neighborhood = index(2:(1+K),:);

if(K>D)    
  tol=1e-3; 
else
  tol=0;
end

W = zeros(K,N);
for ii=1:N
   z = X(:,neighborhood(:,ii))-repmat(X(:,ii),1,K); 
   C = z'*z;                                        
   C = C + eye(K,K)*tol*trace(C);                   
   W(:,ii) = C\ones(K,1);                           
   W(:,ii) = W(:,ii)/sum(W(:,ii));                  
end
M = sparse(1:N,1:N,ones(1,N),N,N,4*K*N); 
for ii=1:N
   w = W(:,ii);
   jj = neighborhood(:,ii);
   M(ii,jj) = M(ii,jj) - w';
   M(jj,ii) = M(jj,ii) - w;
   M(jj,jj) = M(jj,jj) + w*w';
end

options.disp = 0; 
options.isreal = 1; 
options.issym = 1; 
options.v0=ones(N,1); 
[Y,~] = eigs(M,d+1,0,options);
Y = Y(:,1:d)'*sqrt(N); 
Y = Y';



谱聚类

function C = spectral(dataSet,sigma, num_clusters)
% 谱聚类算法
% 使用Normalized相似变换
% 输入  : W              : N-by-N 矩阵, 即连接矩阵
%        sigma          : 高斯核函数,sigma值不能为0
%        num_clusters   : 分类数
%
% 输出  : C : N-by-1矩阵 聚类结果,标签值
%   
    dataSet=dataSet/max(max(abs(dataSet)));
    
    Z=pdist(dataSet);
    W=squareform(Z);
    format long
    m = size(W, 1);
    %计算相似度矩阵  相似度矩阵由权值矩阵得到,实践中一般用高斯核函数
    W = W.*W;   %平方
    W = -W/(2*sigma*sigma);
    S = full(spfun(@exp, W)); % 在这里S即为相似度矩阵,也就是这不在以邻接矩阵计算,而是采用相似度矩阵

    %获得度矩阵D
    D = full(sparse(1:m, 1:m, sum(S))); %所以此处D为相似度矩阵S中一列元素加起来放到对角线上,得到度矩阵D

    % 获得拉普拉斯矩阵 Do laplacian, L = D^(-1/2) * S * D^(-1/2)
    L = eye(m)-(D^(-1/2) * S * D^(-1/2)); %拉普拉斯矩阵

    % 求特征向量 V
    %  eigs 'SM';绝对值最小特征值
    [V, ~] = eigs(L, num_clusters, 'SM');
    % 对特征向量求k-means
    C=kmeans(V,num_clusters);
end

邻接矩阵转图





import networkx as nx  # 导入NetworkX包,为了少打几个字母,将其重命名为nx
import matplotlib.pyplot as plt  # 导入绘图包matplotlib
import numpy as np

# matrix = [[0 for x in range(8)] for y in range(8)]  # 8*8的零矩阵
matrix = [[0, 1, 1, 1, 0, 0, 1, 0],
          [1, 0, 1, 1, 1, 0, 0, 0],
          [1, 1, 0, 0, 1, 1, 1, 0],
          [1, 1, 0, 0, 1, 0, 1, 0],
          [0, 1, 1, 1, 0, 1, 1, 1],
          [0, 0, 1, 0, 1, 0, 0, 1],
          [1, 0, 1, 1, 1, 0, 0, 1],
          [0, 0, 0, 0, 1, 1, 1, 0]]
colors = [1, 2, 3, 3, 1, 2, 2, 3]
# matrix = np.array(matrix)
# 创建图
G = nx.Graph()  # 建立一个空的无向图
v = range(1, 8)  # 一维行向量,从1到8递增
G.add_nodes_from(v)  # 从v中添加结点,相当于顶点编号为1到8
for x in range(0, len(matrix)):  # 添加边
    for y in range(0, len(matrix)):
        if matrix[x][y] == 1:
            G.add_edge(x, y)
            print(x, y)

    # 绘制网络图G,带标签,           用指定颜色给结点上色
nx.draw(G, with_labels=True, node_color=colors)
plt.show()

马尔可夫使用

from random import randint
import numpy as np
from hmmlearn import hmm


def hmm_forward(A, B, pi, O, V):
    T = len(O)
    N = len(A[0])
    # step1 初始化
    alpha = [[0] * T for _ in range(N)]
    for i in range(N):
        alpha[i][0] = pi[i] * B[i][V.index(O[0])]

    # step2 计算alpha(t)
    for t in range(1, T):
        for i in range(N):
            temp = 0
            for j in range(N):
                temp += alpha[j][t - 1] * A[j][i]
            alpha[i][t] = temp * B[i][V.index(O[t])]

    # step3  V.index(O[t])
    proba = 0
    for i in range(N):
        proba += alpha[i][-1]
    return proba, alpha


def hmm_backward(A, B, pi, O, V):
    T = len(O)
    N = len(A[0])
    # step1 初始化
    beta = [[0] * T for _ in range(N)]
    for i in range(N):
        beta[i][-1] = 1

    # step2 计算beta(t)  V.index(O[t + 1])
    for t in reversed(range(T - 1)):
        for i in range(N):
            for j in range(N):
                beta[i][t] += A[i][j] * B[j][V.index(O[t + 1])] * beta[j][t + 1]

    # step3
    proba = 0
    for i in range(N):
        proba += pi[i] * B[i][V.index(O[0])] * beta[i][0]
    return proba, beta


'''def TODO_EM(Q, V, A, B, pi, v):
    T = len(O)
    N = len(A[0])
    # 第一步
    _, alpha2 = hmm_forward(A, B, pi, O, v)
    _, beta = hmm_backward(A, B, pi, O, v)
    alpha2 = np.array(alpha2)
    beta = np.array(beta)

    EY = 0
    Y_i = np,zeros
    for j in range(N):

        EY = EY + np.vdot(alpha2[j], beta[j])
    print(EY)

    #

    return 0
'''


def hmm_obs_seq(Q, V, A, B, pi, T):
    """
    :param Q: 状态集合
    :param V: 观测集合
    :param A: 状态转移概率矩阵
    :param B: 观察概率矩阵
    :param pi: 初始概率分布
    :param T: 观察序列和状态序列的长度
    """
    q_0 = np.random.choice(Q, size=1, p=pi)
    o_0 = list(np.random.choice(V, size=1, p=B[Q.index(q_0)]))
    o_t = []
    o_t.extend(o_0)
    for t in range(1, T):
        q_t = np.random.choice(Q, size=1, p=A[Q.index(q_0)])
        o_t.extend(np.random.choice(V, size=1, p=B[Q.index(q_t)]))
    for i in range(T):
        o_t[i] = [V.index(o_t[i])]
    return o_t


# 《统计学习方法》中的例子  V.index(o_0)
Q = [1, 2, 3]
V = ['红', '白']
A = np.array([[0.5, 0.2, 0.3], [0.3, 0.5, 0.2], [0.2, 0.3, 0.5]])
B = np.array([[0.5, 0.5], [0.4, 0.6], [0.7, 0.3]])
pi = [0.2, 0.4, 0.4]
'''T = 8
O = hmm_obs_seq(Q, V, A, B, pi, T)
print(O)
proba, alpha = hmm_forward(A, B, pi, O, V)
print(alpha)
TODO_EM(Q, V, A, B, pi, V)'''
X2 = np.array([[0], [1], [0]])
data_size = 100
whole_data = []
lengths = []
n_observations = len(V)
for i in range(data_size):
    sequence_length = randint(3, 10)
    data = hmm_obs_seq(Q, V, A, B, pi, sequence_length)
    whole_data.append(data)
    lengths.append(sequence_length)
whole_data = np.concatenate(whole_data)
lengths = ([3])
hmm_model = hmm.MultinomialHMM(n_components=len(Q),
                               n_iter=1000000,  # 要执行的最大迭代次数
                               tol=0.00000001,  # 收敛阈值。如果对数可能性增益低于该值,EM将停止。
                               verbose=False,  # 如果为True,则每次迭代收敛报告将打印到sys。斯特德尔。
                               )
'''hmm_model.fit(X2, lengths)

# 学习之后,查看参数
print(f"结束学习 ", str(data_size) + "次")
# print('因为是无监督学习,所以模型不会把 A B 排定先后顺序,但是 三个参数是相互关联的,所以顺序其实无关系')
print('初始概率')
print(hmm_model.startprob_, '\n')
print('状态转移矩阵')
print(hmm_model.transmat_, '\n')
print('从隐藏状态到 显示状态的发散矩阵')
print(hmm_model.emissionprob_, '\n')'''
hmm_model.startprob_ = pi
hmm_model.transmat_ = A
hmm_model.emissionprob_ = B
seen = np.array([[0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1]]).T
logprob, box = hmm_model.decode(seen, algorithm="viterbi")
print(logprob)
print(box + 1)
box = hmm_model.predict(seen)
print("f1g5edg")
print(box + 1)
'''print("The ball picked:", ", ".join(map(lambda x: observations[x], seen)))
print("The hidden box", ", ".join(map(lambda x: states[x], box)))'''

马尔可夫聚类

function [C,p] = Markovclustering(data,K,mode)
% mode    	先降维后聚类
if nargin<3
    mode = 1;
else
    switch mode
        case 'PCA'
            mode = 1;
        case 'LLE'
            mode = 2;
        otherwise   
            
    end
end
if mode == 1
    if size(data,2) > 2
        [~, score] = pca(data);
        p = score(:,1:2);
    else
        p = data;
    end
else
    if size(data,2) > 2
%         [~, data] = pca(data);
        score = lle(data,12,2);
        p = score;
    else
        p = data;
    end
end


for i = 1:length(p)
    for j =1:length(p)
        W(i,j) = sqrt(sum((p(i,:)-p(j,:)).^2));%根据距离初始化无向图的边
    end
end
preW=W;
while 1
    x=repmat(sum(W),length(p),1);
    W=W./x;
    W=W*W;                      %马尔科夫状态转移
    if sum(sum(preW-W))<1e-15
        break;
    end
    preW=W;
end
[C,~] = kmeans(W(:,1),K);  
end

极其简单的梯度下降

x = 0:0.1:10;
y = 4*x + 8*rand(1,101)- 8*rand(1,101);
plot(x,y,'.r');
arf = 0.0001;
k0 = 1;

for j = 1:100
for i = 1:101
    k0 = k0-arf*((k0*x(i)-y(i))*x(i));
end
end

y2 = k0*x;
hold on
plot(x,y2,'.b');
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
各种数学算法MATLAB实现 第4章: 插值 函数名 功能 Language 求已知数据点的拉格朗日插值多项式 Atken 求已知数据点的艾特肯插值多项式 Newton 求已知数据点的均差形式的牛顿插值多项式 Newtonforward 求已知数据点的前向牛顿差分插值多项式 Newtonback 求已知数据点的后向牛顿差分插值多项式 Gauss 求已知数据点的高斯插值多项式 Hermite 求已知数据点的埃尔米特插值多项式 SubHermite 求已知数据点的分段三次埃尔米特插值多项式及其插值点处的值 SecSample 求已知数据点的二次样条插值多项式及其插值点处的值 ThrSample1 求已知数据点的第一类三次样条插值多项式及其插值点处的值 ThrSample2 求已知数据点的第二类三次样条插值多项式及其插值点处的值 ThrSample3 求已知数据点的第三类三次样条插值多项式及其插值点处的值 BSample 求已知数据点的第一类B样条的插值 DCS 用倒差商算法求已知数据点的有理分式形式的插值分式 Neville 用Neville算法求已知数据点的有理分式形式的插值分式 FCZ 用倒差商算法求已知数据点的有理分式形式的插值分式 DL 用双线性插值求已知点的插值 DTL 用二元三点拉格朗日插值求已知点的插值 DH 用分片双三次埃尔米特插值求插值点的z坐标 第5章: 函数逼近 Chebyshev 用切比雪夫多项式逼近已知函数 Legendre 用勒让德多项式逼近已知函数 Pade 用帕德形式的有理分式逼近已知函数 lmz 用列梅兹算法确定函数的最佳一致逼近多项式 ZJPF 求已知函数的最佳平方逼近多项式 FZZ 用傅立叶级数逼近已知的连续周期函数 DFF 离散周期数据点的傅立叶逼近 SmartBJ 用自适应分段线性法逼近已知函数 SmartBJ 用自适应样条逼近(第一类)已知函数 multifit 离散试验数据点的多项式曲线拟合 LZXEC 离散试验数据点的线性最小二乘拟合 ZJZXEC 离散试验数据点的正交多项式最小二乘拟合 第6章: 矩阵特征值计算 Chapoly 通过求矩阵特征多项式的根来求其特征值 pmethod 幂法求矩阵的主特征值及主特征向量 rpmethod 瑞利商加速幂法求对称矩阵的主特征值及主特征向量 spmethod 收缩法求矩阵全部特征值 ipmethod 收缩法求矩阵全部特征值 dimethod 位移逆幂法求矩阵离某个常数最近的特征值及其对应的特征向量 qrtz QR基本算法求矩阵全部特征值 hessqrtz 海森伯格QR算法求矩阵全部特征值 rqrtz 瑞利商位移QR算法求矩阵全部特征值 第7章: 数值微分 MidPoint 中点公式求取导数 ThreePoint 三点法求函数的导数 FivePoint 五点法求函数的导数 DiffBSample 三次样条法求函数的导数 SmartDF 自适应法求函数的导数 CISimpson 辛普森数值微分法法求函数的导数 Richason 理查森外推算法求函数的导数 ThreePoint2 三点法求函数的二阶导数 FourPoint2 四点法求函数的二阶导数 FivePoint2 五点法求函数的二阶导数 Diff2BSample 三次样条法求函数的二阶导数 第8章: 数值积分 CombineTraprl 复合梯形公式求积分 IntSimpson 用辛普森系列公式求积分 NewtonCotes 用牛顿-科茨系列公式求积分 IntGauss 用高斯公式求积分 IntGaussLada 用高斯拉道公式求积分 IntGaussLobato 用高斯—洛巴托公式求积分 IntSample 用三次样条插值求积分 IntPWC 用抛物插值求积分 IntGaussLager 用高斯-拉盖尔公式求积分 IntGaussHermite 用高斯-埃尔米特公式求积分 IntQBXF1 求第一类切比雪夫积分 IntQBXF2 求第二类切比雪夫积分 DblTraprl 用梯形公式求重积分 DblSimpson 用辛普森公式求重积分 IntDBGauss 用高斯公式求重积分 第9章: 方程求根 BenvliMAX 贝努利法求按模最大实根 BenvliMIN 贝努利法求按模最小实根 HalfInterval 用二分法求方程的一个根 hj 用黄金分割法求方程的一个根 StablePoint 用不动点迭代法求方程的一个根 AtkenStablePoint 用艾肯特加速的不动点迭代法求方程的一个根 StevenStablePoint 用史蒂芬森加速的不动点迭代法求方程的一个根 Secant 用一般弦截法求方程的一个根 SinleSecant 用单点弦截法求方程的一个根 DblSecant 用双点弦截法求方程的一个根 PallSecant 用平行弦截法求方程的一个根 ModifSecant 用改进弦截法求方程的一个根 StevenSecant 用史蒂芬森法求方程的一个根 PYZ 用劈因子法求方程的一个二次因子 Parabola 用抛物线法求方程的一个根 QBS 用钱伯斯法求方程的一个根 NewtonRoot 用牛顿法求方程的一个根 SimpleNewton 用简化牛顿法求方程的一个根 NewtonDown 用牛顿下山法求方程的一个根 YSNewton 逐次压缩牛顿法求多项式的全部实根 Union1 用联合法1求方程的一个根 TwoStep 用两步迭代法求方程的一个根 Montecarlo 用蒙特卡洛法求方程的一个根 MultiRoot 求存在重根的方程的一个重根 第10章: 非线性方程组求解 mulStablePoint 用不动点迭代法求非线性方程组的一个根 mulNewton 用牛顿法法求非线性方程组的一个根 mulDiscNewton 用离散牛顿法法求非线性方程组的一个根 mulMix 用牛顿-雅可比迭代法求非线性方程组的一个根 mulNewtonSOR 用牛顿-SOR迭代法求非线性方程组的一个根 mulDNewton 用牛顿下山法求非线性方程组的一个根 mulGXF1 用两点割线法的第一种形式求非线性方程组的一个根 mulGXF2 用两点割线法的第二种形式求非线性方程组的一个根 mulVNewton 用拟牛顿法求非线性方程组的一组解 mulRank1 用对称秩1算法求非线性方程组的一个根 mulDFP 用D-F-P算法求非线性方程组的一组解 mulBFS 用B-F-S算法求非线性方程组的一个根 mulNumYT 用数值延拓法求非线性方程组的一组解 DiffParam1 用参数微分法中的欧拉法求非线性方程组的一组解 DiffParam2 用参数微分法中的中点积分法求非线性方程组的一组解 mulFastDown 用最速下降法求非线性方程组的一组解 mulGSND 用高斯牛顿法求非线性方程组的一组解 mulConj 用共轭梯度法求非线性方程组的一组解 mulDamp 用阻尼最小二乘法求非线性方程组的一组解 第11章: 解线性方程组的直接法 SolveUpTriangle 求上三角系数矩阵的线性方程组Ax=b的解 GaussXQByOrder 高斯顺序消去法求线性方程组Ax=b的解 GaussXQLineMain 高斯按列主元消去法求线性方程组Ax=b的解 GaussXQAllMain 高斯全主元消去法求线性方程组Ax=b的解 GaussJordanXQ 高斯-若当消去法求线性方程组Ax=b的解 Crout 克劳特分解法求线性方程组Ax=b的解 Doolittle 多利特勒分解法求线性方程组Ax=b的解 SymPos1 LL分解法求线性方程组Ax=b的解 SymPos2 LDL分解法求线性方程组Ax=b的解 SymPos3 改进的LDL分解法求线性方程组Ax=b的解 followup 追赶法求线性方程组Ax=b的解 InvAddSide 加边求逆法求线性方程组Ax=b的解 Yesf 叶尔索夫求逆法求线性方程组Ax=b的解 qrxq QR分解法求线性方程组Ax=b的解 第12章: 解线性方程组的迭代法 rs 里查森迭代法求线性方程组Ax=b的解 crs 里查森参数迭代法求线性方程组Ax=b的解 grs 里查森迭代法求线性方程组Ax=b的解 jacobi 雅可比迭代法求线性方程组Ax=b的解 gauseidel 高斯-赛德尔迭代法求线性方程组Ax=b的解 SOR 超松弛迭代法求线性方程组Ax=b的解 SSOR 对称逐次超松弛迭代法求线性方程组Ax=b的解 JOR 雅可比超松弛迭代法求线性方程组Ax=b的解 twostep 两步迭代法求线性方程组Ax=b的解 fastdown 最速下降法求线性方程组Ax=b的解 conjgrad 共轭梯度法求线性方程组Ax=b的解 preconjgrad 预处理共轭梯度法求线性方程组Ax=b的解 BJ 块雅克比迭代法求线性方程组Ax=b的解 BGS 块高斯-赛德尔迭代法求线性方程组Ax=b的解 BSOR 块逐次超松弛迭代法求线性方程组Ax=b的解 第13章: 随机数生成 PFQZ 用平方取中法产生随机数列 MixMOD 用混合同余法产生随机数列 MulMOD1 用乘同余法1产生随机数列 MulMOD2 用乘同余法2产生随机数列 PrimeMOD 用素数模同余法产生随机数列 PowerDist 产生指数分布的随机数列 LaplaceDist 产生拉普拉斯分布的随机数列 RelayDist 产生瑞利分布的随机数列 CauthyDist 产生柯西分布的随机数列 AELDist 产生爱尔朗分布的随机数列 GaussDist 产生正态分布的随机数列 WBDist 产生韦伯西分布的随机数列 PoisonDist 产生泊松分布的随机数列 BenuliDist 产生贝努里分布的随机数列 BGDist 产生贝努里-高斯分布的随机数列 TwoDist 产生二项式分布的随机数列 第14章: 特殊函数计算 gamafun 用逼近法计算伽玛函数的值 lngama 用Lanczos算法计算伽玛函数的自然对数值 Beta 用伽玛函数计算贝塔函数的值 gamap 用逼近法计算不完全伽玛函数的值 betap 用逼近法计算不完全贝塔函数的值 bessel 用逼近法计算伽玛函数的值 bessel2 用逼近法计算第二类整数阶贝塞尔函数值 besselm 用逼近法计算变型的第一类整数阶贝塞尔函数值 besselm2 用逼近法计算变型的第二类整数阶贝塞尔函数值 ErrFunc 用高斯积分计算误差函数值 SIx 用高斯积分计算正弦积分值 CIx 用高斯积分计算余弦积分值 EIx 用高斯积分计算指数积分值 EIx2 用逼近法计算指数积分值 Ellipint1 用高斯积分计算第一类椭圆积分值 Ellipint2 用高斯积分计算第二类椭圆积分值 第15章: 常微分方程的初值问题 DEEuler 用欧拉法求一阶常微分方程的数值解 DEimpEuler 用隐式欧拉法求一阶常微分方程的数值解 DEModifEuler 用改进欧拉法求一阶常微分方程的数值解 DELGKT2_mid 用中点法求一阶常微分方程的数值解 DELGKT2_suen 用休恩法求一阶常微分方程的数值解 DELGKT3_suen 用休恩三阶法求一阶常微分方程的数值解 DELGKT3_kuta 用库塔三阶法求一阶常微分方程的数值解 DELGKT4_lungkuta 用经典龙格-库塔法求一阶常微分方程的数值解 DELGKT4_jer 用基尔法求一阶常微分方程的数值解 DELGKT4_qt 用变形龙格-库塔法求一阶常微分方程的数值解 DELSBRK 用罗赛布诺克半隐式法求一阶常微分方程的数值解 DEMS 用默森单步法求一阶常微分方程的数值解 DEMiren 用米尔恩法求一阶常微分方程的数值解 DEYDS 用亚当斯法求一阶常微分方程的数值解 DEYCJZ_mid 用中点-梯形预测校正法求一阶常微分方程的数值解 DEYCJZ_adms 用阿达姆斯预测校正法求一阶常微分方程的数值解 DEYCJZ_adms2 用密伦预测校正法求一阶常微分方程的数值解 DEYCJZ_ yds 用亚当斯预测校正法求一阶常微分方程的数值解 DEYCJZ_ myds 用修正的亚当斯预测校正法求一阶常微分方程的数值解 DEYCJZ_hm 用汉明预测校正法求一阶常微分方程的数值解 DEWT 用外推法求一阶常微分方程的数值解 DEWT_glg 用格拉格外推法求一阶常微分方程的数值解 第16章: 偏微分方程的数值解法 peEllip5 用五点差分格式解拉普拉斯方程 peEllip5m 用工字型差分格式解拉普拉斯方程 peHypbYF 用迎风格式解对流方程 peHypbLax 用拉克斯-弗里德里希斯格式解对流方程 peHypbLaxW 用拉克斯-温德洛夫格式解对流方程 peHypbBW 用比姆-沃明格式解对流方程 peHypbRich 用Richtmyer多步格式解对流方程 peHypbMLW 用拉克斯-温德洛夫多步格式解对流方程 peHypbMC 用MacCormack多步格式解对流方程 peHypb2LF 用拉克斯-弗里德里希斯格式解二维对流方程的初值问题 peHypb2FL 用拉克斯-弗里德里希斯格式解二维对流方程的初值问题 peParabExp 用显式格式解扩散方程的初值问题 peParabTD 用跳点格式解扩散方程的初值问题 peParabImp 用隐式格式解扩散方程的初边值问题 peParabKN 用克拉克-尼科尔森格式解扩散方程的初边值问题 peParabWegImp 用加权隐式格式解扩散方程的初边值问题 peDKExp 用指数型格式解对流扩散方程的初值问题 peDKSam 用萨马尔斯基格式解对流扩散方程的初值问题 第17章: 数据统计和分析 MultiLineReg 用线性回归法估计一个因变量与多个自变量之间的线性关系 PolyReg 用多项式回归法估计一个因变量与一个自变量之间的多项式关系 CompPoly2Reg 用二次完全式回归法估计一个因变量与两个自变量之间的关系 CollectAnaly 用最短距离算法的系统聚类对样本进行聚类 DistgshAnalysis 用Fisher两类判别法对样本进行分类 MainAnalysis 对样本进行主成分分析
说明: 十大算法MATLAB程序,可用于数学建模,算法和程序相对应 十大算法 十大算法\dijkstra 十大算法\dijkstra\dijk.txt 十大算法\Floyd算法 十大算法\Floyd算法\floyd.txt 十大算法\Floyd算法\中国数学建模-数学工具-Floyd最短路算法MATLAB程序.txt 十大算法\免疫算法.txt 十大算法\分治算法 十大算法\分治算法\c程序.txt 十大算法\分治算法\中国数学建模-编程交流-分治算法_1.txt 十大算法\分治算法\中国数学建模-编程交流-分治算法_2.txt 十大算法\动态规划 十大算法\动态规划\中国数学建模-编程交流-动态规划算法_1.txt 十大算法\动态规划\中国数学建模-编程交流-动态规划算法_2.txt 十大算法\动态规划\中国数学建模-编程交流-动态规划算法_3.txt 十大算法\图论 十大算法\图论\哈密尔顿回路 十大算法\图论\哈密尔顿回路\Desktop_.ini 十大算法\图论\哈密尔顿回路\TSP模拟退火 十大算法\图论\哈密尔顿回路\TSP模拟退火\accept.m 十大算法\图论\哈密尔顿回路\TSP模拟退火\annealing.m 十大算法\图论\哈密尔顿回路\TSP模拟退火\calculate.m 十大算法\图论\哈密尔顿回路\TSP模拟退火\cost.mat 十大算法\图论\哈密尔顿回路\TSP模拟退火\cost_sum.m 十大算法\图论\哈密尔顿回路\TSP模拟退火\Desktop_.ini 十大算法\图论\哈密尔顿回路\TSP模拟退火\exchange2.m 十大算法\图论\哈密尔顿回路\TSP模拟退火\exchange3.m 十大算法\图论\哈密尔顿回路\TSP模拟退火\说明.txt 十大算法\图论\哈密尔顿回路\三边交换简单算法 十大算法\图论\哈密尔顿回路\三边交换简单算法\bianquan.m 十大算法\图论\哈密尔顿回路\三边交换简单算法\cost_sum.m 十大算法\图论\哈密尔顿回路\三边交换简单算法\Desktop_.ini 十大算法\图论\哈密尔顿回路\三边交换简单算法\jiaohuan3.m 十大算法\图论\哈密尔顿回路\三边交换简单算法\哈密尔顿回路.rar 十大算法\图论\哈密尔顿回路\三边交换简单算法\说明.txt 十大算法\图论\图论.ppt 十大算法\图论\图论1.pdf 十大算法\图论\图论及其应用.doc 十大算法\图论\最短路f_d.doc 十大算法\图论\用计算机实现图论中的最短路径程序 十大算法\图论\用计算机实现图论中的最短路径程序\Algo7-1.c 十大算法\图论\用计算机实现图论中的最短路径程序\Algo7-2.c 十大算法\图论\用计算机实现图论中的最短路径程序\Algo7-3.c 十大算法\图论\用计算机实现图论中的最短路径程序\Algo7-4.c 十大算法\图论\用计算机实现图论中的最短路径程序\Algo7-5.c 十大算法\图论\用计算机实现图论中的最短路径程序\Algo7-6.c 十大算法\图论\用计算机实现图论中的最短路径程序\Algo7-7.c 十大算法\图论\用计算机实现图论中的最短路径程序\BO7-1.C 十大算法\图论\用计算机实现图论中的最短路径程序\Bo7-2.c 十大算法\图论\用计算机实现图论中的最短路径程序\Bo7-3.c 十大算法\图论\用计算机实现图论中的最短路径程序\Bo7-4.c 十大算法\图论\用计算机实现图论中的最短路径程序\c1.h 十大算法\图论\用计算机实现图论中的最短路径程序\C7-1.H 十大算法\图论\用计算机实现图论中的最短路径程序\C7-2.H 十大算法\图论\用计算机实现图论中的最短路径程序\C7-3.H 十大算法\图论\用计算机实现图论中的最短路径程序\C7-4.H 十大算法\图论\用计算机实现图论中的最短路径程序\F7-1.DAT 十大算法\图论\用计算机实现图论中的最短路径程序\MAIN7-1.c 十大算法\图论\用计算机实现图论中的最短路径程序\Main7-2.c 十大算法\图论\用计算机实现图论中的最短路径程序\Main7-3.c 十大算法\图论\用计算机实现图论中的最短路径程序\Main7-4.c 十大算法\搜索算法 十大算法\搜索算法\中国数学建模-编程交流-搜索算法基础.txt 十大算法\概率算法 十大算法\概率算法\中国数学建模-编程交流-概率算法简介.txt 十大算法\模拟退火算法 十大算法\模拟退火算法\中国数学建模-编程交流-模拟退火算法.txt 十大算法\模拟退火算法\模拟退火算法.txt 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\cro.m 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\ft.m 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\ga.m 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\init.mat 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\main.m 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\mut.m 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\n2to10.m 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\objf.m 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\pro.m 十大算法\模拟退火,禁忌搜索,遗传算法,神经网络-MATLAB程序合集\简单函数优化的遗传算法程序\sel.m 十大算法\灰色预测 十大算法\灰色预测\灰色预测.pdf 十大算法\灰色预测\灰色预测MATLAB程序.txt 十大算法\灰色预测\灰色预测法.doc 十大算法\神经网络 十大算法\神经网络\matlab15.pdf 十大算法\神经网络\matlab16.pdf 十大算法\穷举法求解0-1整数规划的matlab程序.txt 十大算法\类比法 十大算法\类比法\数学建模中的类比方法.pdf 十大算法\组合算法 十大算法\组合算法\中国数学建模-编程交流-组合算法概论.txt 十大算法\网上matlab 十大算法\网上matlab\提高matlab运算速度.files 十大算法\网上matlab\提高matlab运算速度.files\index.files 十大算法\网上matlab\提高matlab运算速度.files\index.files\bg.gif 十大算法\网上matlab\提高matlab运算速度.files\index.files\icon_menu_05.gif 十大算法\网上matlab\提高matlab运算速度.files\index.files\icon_menu_06.gif 十大算法\网上matlab\提高matlab运算速度.files\index.files\icon_menu_07.gif 十大算法\网上matlab\提高matlab运算速度.files\index.files\icon_menu_08.gif
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值