数学建模过程中总结的matlab使用

一、模型的建立、求解与应用

1.1 解决二次规划问题

问题模型

解决方法

[x,fval,exitflag,output,lamda] = quadprog(H,f,A,b,Aeq,beq,lb,ub)

将数据写入excle文件

xlswrite(‘D/test.xlsx’,x)

将数据写入excel文件指定位置

1.2 解决多目标规划问题

问题描述

例子:基于遗传算法求解多目标规划模型

%%定义求解函数文件

function f = my_first_multi(x)

f(1) = x(1)^4 - 10*x(1)^2+x(1)*x(2) + x(2)^4 - (x(1)^2)*(x(2)^2);

f(2) = x(2)^4 - (x(1)^2)*(x(2)^2) + x(1)^4 + x(1)*x(2);

%%求解文件

clear

clc

fitnessfcn = @my_first_multi;   % Function handle to the fitness function

nvars = 2;                      % Number of decision variables

lb = [-5,-5];                   % Lower bound

ub = [5,5];                     % Upper bound

A = []; b = [];                 % No linear inequality constraints

Aeq = []; beq = [];             % No linear equality constraints

options = gaoptimset('ParetoFraction',0.3,'PopulationSize',100,'Generations',200,'StallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto);

[x,fval] = gamultiobj(fitnessfcn,nvars, A,b,Aeq,beq,lb,ub,options);

参考资料

https://blog.csdn.net/panmingqian/article/details/122416880#:~:text=%E6%9C%80%E4%BC%98%E5%89%8D%E7%AB%AF%E4%B8%AA%E4%BD%93%E7%B3%BB%E6%95%B0%E5%AE%9A%E4%B9%89%E4%B8%BA%E6%9C%80%E4%BC%98%E5%89%8D%E7%AB%AF%E4%B8%AD%E7%9A%84%E4%B8%AA%E4%BD%93%E5%9C%A8%E7%A7%8D%E7%BE%A4%E4%B8%AD%E6%89%80%E5%8D%A0%E7%9A%84%E6%AF%94%E4%BE%8B%EF%BC%8C%E5%8D%B3%E6%9C%80%E4%BC%98%E5%89%8D%E7%AB%AF%E4%B8%AA%E4%BD%93%E6%95%B0%20%3D%20min%20%7B,ParetoFraction%20%2A%20%E7%A7%8D%E7%BE%A4%E5%A4%A7%E5%B0%8F%EF%BC%8C%E5%89%8D%E7%AB%AF%E4%B8%AD%E7%8E%B0%E5%AD%98%E7%9A%84%E4%B8%AA%E4%BD%93%E6%95%B0%E7%9B%AE%20%7D%EF%BC%8C%E5%85%B6%E5%8F%96%E5%80%BC%E8%8C%83%E5%9B%B4%E4%B8%BA%200%EF%BD%9E1%E3%80%82

1.3 matlab求解多目标线性规划

模糊折中规划(理想点法):

先逐个求解单目标规划

通过单目标规划的解集构造评价函数,求解极小化评价函数

参考材料

多目标线性规划求解方法及matlab实现_sljwy的博客-CSDN博客_多目标规划模型matlab

1.4 K-means聚类算法实现

Idx:每行数据的聚类标号

C:聚类处理后的数据

sumD:每个类类内各点和质心之间的距离之和

D:类内各点和质心之间的距离

data:要处理的矩阵数据

其他参数:

参考材料

https://cloud.tencent.com/developer/article/1391975#:~:text=K-means%E8%81%9A%E7%B1%BB%E7%AE%97%E6%B3%95%E9%87%87%E7%94%A8%E7%9A%84%E6%98%AF%E5%B0%86N%2AP%E7%9A%84%E7%9F%A9%E9%98%B5X%E5%88%92%E5%88%86%E4%B8%BAK%E4%B8%AA%E7%B1%BB%EF%BC%8C%E4%BD%BF%E5%BE%97%E7%B1%BB%E5%86%85%E5%AF%B9%E8%B1%A1%E4%B9%8B%E9%97%B4%E7%9A%84%E8%B7%9D%E7%A6%BB%E6%9C%80%E5%A4%A7%2C%E8%80%8C%E7%B1%BB%E4%B9%8B%E9%97%B4%E7%9A%84%E8%B7%9D%E7%A6%BB%E6%9C%80%E5%B0%8F%E3%80%82%20%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%EF%BC%9A%20Idx%3DKmeans%20%28X%2CK%29%20%5BIdx%2CC%5D%3DKmeans%20%28X%2CK%29,%5BIdx%2CC%2CsumD%5D%3DKmeans%20%28X%2CK%29%20%5BIdx%2CC%2CsumD%2CD%5D%3DKmeans%20%28X%2CK%29%20%5D%3D%5B%26Kmeans%20%28%E2%80%A6%2C%E2%80%99Param1%E2%80%99%2CVal1%2C%E2%80%99Param2%E2%80%99%2CVal2%2C%E2%80%A6%29

1.5 matlab求解非线性方程组

function x = test1()

x0=[0.5000 0.5000 1.1817 1.1817 1.0000];

x = fsolve(@test2,x0);

end

function F = test2(x)

    a1 = 1;

    a2 = 2;

    a3 = 3;

    a4 = 4;

    a5 = 5;

   

    eq1 = a1 * x(1) ^ 2 + a2 * x(2);

    eq2 = x(1)^3 + a3*x(2);

    eq3 = x(3)^2 + x(2)^2 + a2*x(5) + a3*x(1);

    eq4 = x(5)^2 + a5*x(3) + x(2)^3 + a2*x(1) + x(1);

    eq5 = x(2)^4 + x(1) + a4*x(2);

    F = [eq1;eq2;eq3;eq4;eq5];

   

end

1.6 matlab求解动态规划问题

思想:把大问题分解成小的子问题,记录子问题的解,迭代出大问题的解

例:

二、与excel文件的交互

2.1 读取excel文件数据

x=xlsread(‘D/test.xlsx’)

读取数据和字符串

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值