数学建模算法


算法讲解
matlab代码大全

1. 评价类模型

算数平均法
几何法
最大特征值法
一致性比较

评价类模型内容1
评价类模型内容2

2. TOPSIS

构造计算评分的公式:公式

topsis评价模型:将原始数据矩阵统一指标类型(一般正向化处理) 得到正向化的矩阵
代码

3. 线性规划

  1. 线性规划(linprog)模型:高中知识所学

  2. 整数线性规划(intlinprog)模型:变量有部分限制为整数的线性规划

  3. 匈牙利算法:求解任务分配问题的组合优化算法(一对一的问题)
    二分图最大匹配 匈牙利算法:用于寻找最大匹配,通过不断寻找怎光路径,来寻找最大匹配问题
    讲解传送
    二分图分配,匈牙利

匈牙利算法matlab实现    python实现
在这里插入图片描述

  1. 非线性规划(fmincon)模型:目标函数或者约束条件中包含非线性函数
    非线性规划例题传送阵
  2. 二次规划(quadprog)模型:目标函数自变量为x的二次函数约束条件又全是线性的
  3. 多目标规划(fgoalattain)模型:研究多于一个的目标函数在给定区域上的最优化,给予权重来评判目标重要性
    matlab代码传送阵
  4. 绘制柱形竞赛图:https://blog.csdn.net/zhwzhaowei/article/details/110915135

4. 聚类分析

聚类分析(pdist)是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。目的是,组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不相关的)。
组内相似性越大,组间差距越大,说明聚类效果越好
K-Means聚类算法代码通道

X=[0 0;1 0;0 1;1 1;2 1;1 2;2 2;3 2;6 6;7 6;8 6;6 7;7 7;8 7;9 7;7 8;8 8;9 8;8 9;9 9];		% X:N*P的数据矩阵
[idx,C,sumd,d] = kmeans(X,2);	%  idx:N*1的向量,存储的是每个点的聚类标号
figure;		% K = 2;表示将X划分为几类,为整数。 C:K*P的矩阵,存储的是K个聚类质心位置
plot(X(:,1),X(:,2),'.'); 	% sumd:1*K的和向量,存储的是类间所有点与该类质心点距离之和。 d:N*K的矩阵,存储的是每个点与所有质心的距离
title 'Randomly Generated Data';
figure;
plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(C(:,1),C(:,2),'kx',...
     'MarkerSize',15,'LineWidth',3)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title 'Cluster Assignments and Centroids'
hold off

figure1
figure2

5. 预测模型

6. 拉伊达准则(对异常值进行剔除)

      假设一组检测数据只含有随机误差,对其进行计算处理得到标准偏差,按一定概率确定一个区间,认为凡超过这个区间的误差,就不属于随机误差而是粗大误差,含有该误差的数据应予以剔除,基于3σ原则
代码实现传送阵    正太检验

7. 数据拟合

8. 图论

握手定理

  • 在任何有向图图中,所有顶点的度数之和等于边数的2倍,所有顶点的入度之和等于所有顶点出度之和,等于边数
  • 无向简单图,同样所有顶点的度数之和等于边数的2倍

有限简单图

代码练习

1. 模拟圆周率

题目图

allPoints = input("请输入总点数:")
count = 0
for i = 1:allPoints
	if rand^2 + rand^2 <=1
		count = count + 1
	end
end
res = count / allPoints * 4
disp(res)

2. 斐波那契数列

N = input("请输入项数:")
res = [1,1]
for i = 3:N
	element = res(length(res)) + res(length(res) - 1)
	res = [res,element]
disp(res)

3. 四只鸭子落在一个圆中概率

N = 4
count = 0
total =1000 %试验次数
for i = 1:total
	p1 = 2*[rand,rand]-1;
	p2 = 2*[rand,rand]-1;
	p3 = 2*[rand,rand]-1;
	p4 = 2*[rand,rand]-1;
	p = [p1,p2,p3,p4]; %生成4 2 矩阵
	for j = 1:N
		k = p(i,2) / p(i,1);
		b = [];
		if (i == j)
			continue;
		else
			b = [b, p(i,2) - p(i,1)*k];
		end
	end
end
if (b(1)>=0 & b(2)>=0 & b(3)>=0 | b(1)<=0 & b(2)<=0 & b(3)<=0)
	count = count + 1;
res = count/total;
disp(res);
# 拓展N只鸭子
% 生成N个随机点
function p Npoints(N)
	p = [];
	for i = 1:N
		p = [p;2*[rand,rand]-1]  % 每一列
	end
end

% 判断截距的一致性
function isEqual ifisEqual(b)
	isEqual = 1;
	if b(1)>=0
		for i = 1:length(b)
			if b(i)<0
				isEqual = 0;
			end
		end
	else
		for i = 1:length(b)
			if b(i)>0
				isEqual = 0;
			end
		end
	end
end

4. 方程2: y" = uy’ + y,初值y(0) = 1,y(0) =0

syms y(x) mu
eqn = diff(y,2) == mu*diff(y)+y;
cond1 = y(0) == 1;
Dy(0) == 0;
dsolve(eqn)  % dsolve(方程,初值) 常微分方程求解

B = repmat(A,m, n):将矩阵A复制m×n块,即把A作为B的元素,Btm×n个A平铺而成。
prod():与sunm类似,求积
数据导入函数:weitetable()
数据导出函数:readtable()
Y = round(X,N,type) 指定四舍五入的类型
type filename 在 MATLAB 命令行窗口中显示指定文件的内容
imread(x.jpg):图片读入,以(0:255)读入,格式为 unit8
imshow(x)矩阵图片显示
imresize(x,0.5)图片大小更改
imwrite(x.jpg):图片写入,以图片存入路径
imbinarize(a):将图片矩阵二值化
logical(A):将矩阵A转换为逻辑值(即非零即为1)
bwlabel(A,4/8):联通分量化
solve(方程1,方程2…,变量1,变量2…):求解函数

相关推荐

  1. 数学智能算法

    2023-12-08 12:24:05       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 12:24:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 12:24:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 12:24:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 12:24:05       20 阅读

热门阅读

  1. [C#]文件的读写-1

    2023-12-08 12:24:05       38 阅读
  2. zookeeper常用接口

    2023-12-08 12:24:05       32 阅读
  3. 二维码扫描并输出信息(小程序,IOS,安卓)

    2023-12-08 12:24:05       30 阅读
  4. 《微信小程序开发从入门到实战》学习四十四

    2023-12-08 12:24:05       39 阅读
  5. 数据结构-数组

    2023-12-08 12:24:05       34 阅读
  6. 搜索引擎高级用法总结: 谷歌、百度、必应

    2023-12-08 12:24:05       42 阅读
  7. stm8l151,c语言混编汇编,实现16位乘除法

    2023-12-08 12:24:05       34 阅读
  8. Flink 项目系列

    2023-12-08 12:24:05       48 阅读
  9. flink sink多个topic

    2023-12-08 12:24:05       34 阅读
  10. PTA 7-237 特殊排序

    2023-12-08 12:24:05       37 阅读
  11. Metasploit的提权和后渗透

    2023-12-08 12:24:05       31 阅读
  12. Ubuntu 修改当前用户的名称

    2023-12-08 12:24:05       34 阅读