https://www.baltamatica.com/community/sposts/detail/b25e8c8d-3337-5af3-c224-9c644f5336ac.html
下载好之后给同学们看看炫酷的软件界面。
这个是案例跑出来的效果:
z = linspace(0,4*pi,250);
x = 2*cos(z) + 0.1*randn(1,250);
y = 2*sin(z) + 0.1*randn(1,250);
scatter3(x,y,z)
这个图片导出可以保存在本地的,效果就是这样的,非常炫酷。
这个是支持向量机的案例运行。(不好意思圈错了,应该是SVMData.csv的,这里说明了截图不修改啦哈)
%支持向量机的例子
clear, clc, close all;
%生成数据, 并写到svmData.csv中, 数据有3列,第3列是标签
fid = fopen('svmData.csv','w+t')
for i=1:100
fprintf(fid,"%6.4f,%6.4f,-1\n", -1+rand(), -1+rand());
fprintf(fid,"%6.4f,%6.4f,1\n", 1+rand(), 1+rand());
end
fclose(fid);
%读入数据svmData.csv
data1=readmatrix('svmData.csv');
xx=zscore(data1(:,1:2));%标准化前两列的数据
yy=data1(:,end); %标签(取值是 1 或者-1)
total_size = size(data1,1);
train_size = floor( 7/10 * total_size);
X = xx(1:train_size,:);
y = yy(1:train_size,:);
test_X = xx(train_size+1:end,:);
test_y = yy(train_size+1:end,:);
C = 10;
svm = mysvmtrain(X, y, C, 'linear');
result = mysvmtest(svm, test_X, 'linear');
fprintf('Accuracy: %f\n', mean(result.y_pred == test_y));
%%训练结束,开始画图
x1_min = min(X(:, 1)) - 1;
x1_max = max(X(:, 1)) + 1;
x2_min = min(X(:, 2)) - 1;
x2_max = max(X(:, 2)) + 1;
[XX, YY] = meshgrid(x1_min:0.2:x1_max, x2_min:0.2:x2_max);
Z = mysvmtest(svm, [XX(:) YY(:)], 'linear');
Z = reshape(Z.y_pred, size(XX));
figure(1)
hold on;
plot(X(:, 1), X(:, 2), 'bo', 'MarkerFaceColor', 'r');
title('Learning training set with linear kernel function');
xlabel('x1');
ylabel('x2');
legend('训练集');
hold off
figure(2)
mesh(XX,YY,Z);
title("一系列点上的预测值")
function y = zscore(x)
mean_value = mean(x);
std_value = std(x);
y = zeros(size(x));
len = size(x,2);
for i=1:len
y(:,i) = ( x(:,i)-mean_value(i)) / std_value(i);
end
end
再就是优化问题。
%% 例2 求解具有多种类型的约束的MILP
f = [-3;-2;-1];
intcon = 3;
A = [1,1,1];
b = 7;
Aeq = [4,2,1];
beq = 12;
lb = zeros(3,1);
ub = [Inf;Inf;2];
[x,fval,exitflag,output] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
这段代码可以直接运行,你们去体验一下?系统讲解优化我留在明年啦!
下面写一个代码导引:
algorithm 文件夹底下拥有的算法:层次分析,贝叶斯,PCA,z-test等等算法;
general文件夹里面有一些仿真的案例。
graph里面很显然是数据可视化,同学们记得中秋节去吃一下北太天元的月饼哈!
plugins里面的有微分方程,机器学习工具包,而且还有运筹优化,我暂时没有看到北太和杉数求解器梦幻联动的代码,不过呢。我最近写了这个文章。
2023年华为杯研究生数学建模竞赛C题代码分享-spsspro和杉数求解器启动
这个是python语言实现的杉数求解器。
在使用北太天元的小tips:
读取数据放在同一个文件夹里面方便一些;
可以拿参考的案例修改代码进攻国赛;
记得在使用北太天元的过程中,不清楚的记得加官方群问;
最后一点,SPSSPRO和杉数求解器也是国产工具,记得用。
祝同学们比赛顺利,拿大奖,支持国产科学计算软件。
下次我写数据可视化的软件的时候把北太天元和SPSSPRO带上,确实简单好用。
布道完毕,说一点国赛的额外注意事项:
同学们进攻国赛期间,不要抄袭,buy article,this behaviour will do harm for yourself and your friend.
SPSSPRO比赛期间可以申请一下高级权限,这个请去官网操作。
杉数求解器如果有优化需求的同学记得官网去申请试用。