-
2021-01-12 17:25:22
1stopt win10版是款可以在WIN10系统上适用的函数模型分析画图软件。它可以帮助用户快速绘制出函数所代表的图形,提供非线性拟合,回归的分析功能,操作简单,方便快捷,非常好用。
【功能特色】
1、模型自动优化率定;参数估算;
2、任意模型公式线性,非线性拟合,回归;
3、非线性连立方程组求解;
4、常微分方程(组)求解(初值、边值问题);
5、常微分方程(组)拟合求解;
6、复数方程求解、复数非线性拟合;
7、任意维函数,隐函数极值求解;
8、隐函数根求解,作图,求极值;
9、线性,非线性及整数规划;
10、组合优化问题;
11、高级计算器!
【软件优势】
1、模型采用自然描述语言,简单易懂,学习周期短;
2、线性、非线性、混合整数规划、二次规划、优化组合;
3、功能强劲,是目前唯一能以任何初始值而求得美利坚合众国国家标准与技术研究院(NIST:National Institute of Standards and Technology)非线性回归测试题集最优解的软件包;
4、可广泛用于工程模型优化计算如水文水资源等,内镶Basic及Pascal高级语言,可帮助描述处理复杂模型;
5、可连接由任何语言(C++, Fortran, Basic, Pascal…)编译而成的外部目标函数动态连接库或命令行可执行文件;
6、支持二次开发,轻松定义开发具有1stOpt核心功能的用户应用程序;
7、自带专用工具箱:人工神经网络,支持向量机(SVM),聚类,概率分布,投影寻踪,TSP旅行商,圆/椭圆拟合,公式自动匹配拟合工具箱;
8、独特的隐含数优化、拟合,智能拟合、带约束的拟合功能;
9、非线性曲线拟合可处理任意类型模型公式,任意多数目的待求参数及变量;
10、模型自动率定时可同时处理多个数据文件;
11、可非常容易处理一些特殊的参数,如降雨径流模型中的流域初期土壤含水量;
12、可同时处理多个输出量;
13、实时显示计算结果;
14、可直接读存Excel,CSV等格式文件;
15、界面简单友好,使用方便;
16、自带有上百个实例,覆盖范围包括几乎所有优化方面。通过不同类型实例,用户可轻松掌握1stOpt的用法!
更多相关内容 -
1stopt1.5+5.0最新版_131_628095.exe
2021-06-21 22:41:57都阅读文献必备 -
1stopt1.5 破解版
2017-08-13 18:53:591stopt1.5 破解版,无安装包 -
1stopt破解版1
2018-01-22 10:36:381stOpt一套数学优化分析综合工具软件包。在非线性回归,曲线拟合,非线性复杂模型参数估算求解,线性/非线性规划等领域傲视群雄,首屈一指,居世界领先地位。此资源为1stopt破解版part1 -
一起来看看国产数学拟合优化工具——1stOpt到底有多强大?
2022-01-04 00:46:31第一次接触到1stOpt是因为N年前需要求解一组非常复杂的微分方程组,自己又懒得用matlab敲代码,于是就在网上搜索有没有更为轻松便捷的办法。一找就找到了1stOpt,虽然是个绿色和谐版...第一次接触到1stOpt是因为N年前需要求解一组非常复杂的微分方程组,自己又懒得用matlab敲代码,于是就在网上搜索有没有更为轻松便捷的办法。一找就找到了1stOpt,虽然是个绿色和谐版,但基本上能满足自己需求,顺带把1stOpt的帮助文档都看了个遍。
看了1stOpt官网的介绍,据说1stOpt是一款不依赖初始值的数学优化综合工具,这一点连老牌的Matlab、Origin、Lingo、Gams等都是望洋兴叹的,这得益于其开发的通用全局优化算法。不依赖初始值对科学计算而言是极其有用的,比如求根、求解微分、优化等问题往往对初始值有高度依赖,初始值选择不当可能会得到高误差甚至是错误的结果,而1stOpt完美解决了此问题。现已被广泛用于工程、金融、决策、流通、生产等分析、计算、规划领域。揽括:模型自动优化率定;参数估算;任意模型公式线性,非线性拟合,回归;非线性连立方程组求解;常微方程(组)求解(初值、边值问题);常微分方程(组)拟合求解;复数方程求解、复数非线性拟合;任意维函数,隐函数极值求解;隐函数根求解,作图,求极值;线性,非线性及整数规划;组合优化问题等。
下面就通过几个实例来看看1stOpt的实力:
特别说明:本次采用的1stOpt 5.5 英文试用版,实例全部来自于5.0官方帮助文档。
由于试用版有参数个数限制,计算参数不能超过4个,目前官方最新版为8.0,9.0版即将发布,下面就一起来看看吧。
1、二维针状全局最优的函数
该函数的函数图形如下所示,在(50,50)处取得全局最大值 1.1512,其第二极大值为1.12837,它是一个多峰值函数,采用传统优化方法几乎不能找到全局最优点。
1stOpt源代码:
Parameter x[0,100], y[0,100]; ConstStr r = sqrt((x-50)^2+(y-50)^2)+exp(1); MaxFunction Sin(r)/r + 1;
2、隐函数优化
1stOpt源代码:
Parameter x[-1,7], y[-2,2]; Minimum = z; Function z = sin((z*x-0.5)^2 + x*2*y^2-z/10)*exp(-((x-0.5-exp(-y+z))^2 + y^2-z/5+3));
3、非线性规划
1stOpt源代码:
Parameter x1[0,10], x2[0,10]; MaxFunction (sin(2*pi*x1))^3*sin(2*pi*x2)/(x1^3*(x1+x2)); x1^2-x2+1 <= 0; 1-x1+(x2-4)^2 <= 0;
4、整数规划
1stOpt源代码:
Parameter x(1:2)[0,100,0], x3[3,100,0], x4[0,100,0]; MinFunction -2*x1-x2-4*x3-3*x4; 2*x2+x3+4*x4<54; 3*x1+4*x2+5*x3-x4<62; x1+2*x2+x3-2*x4<-3;
5、带等式约束的优化问题
1stOpt源代码:
Algorithm = DE1[100]; PenaltyFactor = 5; ParameterDomain = [-50,50]; MinFunction exp(sin(50*x)) +sin(60*exp(y)) +sin(70*sin(x)) +sin(sin(80*y))-sin(10*(x+y))+(x^2+y^2)^sin(y)/4; x-((cos(y))^x-x)^y<=0;
6、非线性拟合
美国国家标准与技术研究院(NIST)提供有一套 27 道非线性拟合测试题,世界上几乎所有著名的数据分析软件包都以能通过该套测试题集为验证标准。经对比测试,1stOpt 是目前唯一不依赖使用 NIST 提供的初始值, 而能以任意随机初始值就可求得全部最优解的软件包(如果使用 NIST 提供的初始值,则更可轻易求得最优解)。由于在实际应用当中,选择确定合理的初始值组是一件非常困难的事,尤其是在参数量比较多的情况下。从此意义而言1stOpt的实用能力达业界领先水平。
示例代码:
Variables x, y; Parameters a, b, c, d; Function y = a-b*exp(-c*x^d); Data; 0.05 0.13 0.15 0.13 0.25 0.19 0.35 0.34
7、求解带积分方程组
本题来源于小木虫,由于参数限制,改为4个参数:
http://muchong.com/t-4192342-1-authorid-8600892
Parameters a,b,c,d; Function int(exp(a+b*x+c*x^2+d*x^3),x=0.5779,13.5883)=1; int(x*exp(a+b*x+c*x^2+d*x^3),x=0.5779,13.5883)=6.86; int(x^2*exp(a+b*x+c*x^2+d*x^3),x=0.5779,13.5883)=54.39; int(x^3*exp(a+b*x+c*x^2+d*x^3),x=0.5779,13.5883)=478.14;
由于功能和参数限制,没法演示1stOpt更为强大的求解功能,暂且演示到此。
在少数铁杆粉丝的支持下,小编目前已拥有1stOpt 9.0最新版的正版版权。如有需要购买正版1stOpt的伙伴,加公众号任意Q联系群主,可能能为大家争取到专属优惠哦
!
参考资料:www.7d-soft.com
图片来源:www.7d-soft.com
如需转载,请在公众号中回复“转载”获取授权,如未经授权擅自搬运抄袭的,本公众号将保留一切追责权利!
-
c++怎么调用1stOpt拟合软件里的函数
2016-05-04 00:46:58 官网上说“可连接由任何语言(C++, Fortran, Basic, Pascal…)编译而成的外部目标函数动态连接库...我想在C++中调用1stOpt的拟合函数 -
1stopt、matlab和python用morris、sobol方法实现参数敏感性分析
2020-12-21 02:59:43首先看抛物线函数:现在我取a=2,b=3,c=4 ,得到如下函数:x或t都是指自变量,就不改了,一个...首先用1stopt分析:1 NewCodeBlock"SA";2 Parameter a=[1,3],b=[2,4],c=[3,5];//要优化的参数及其范围3 Variable t,y;...首先看抛物线函数:
现在我取a=2,b=3,c=4 ,得到如下函数:
x或t都是指自变量,就不改了,一个意思。
问题是,我想知道对于此数据和模型,参数a,b,c的敏感性,也就是y的改变量与a、b、c的改变量的比值关系。
首先用1stopt分析:
1 NewCodeBlock"SA";2 Parameter a=[1,3],b=[2,4],c=[3,5];//要优化的参数及其范围3 Variable t,y;//变量4 Function y=a*t^2+b*t+c;5 Data;6 //t y 变量顺序要和Variable后变量对应
7 -5 39
8 -4 24
9 -3 13
10 -2 6
11 -1 3
12 0 4
13 1 9
14 2 18
15 3 31
16 4 48
17 5 69
以下分别为各种参数敏感性方法(包括morris局部和全局,偏微分方法局部和全局):
以上就是4中方法的结果。用的目标函数是SSR,点的范围我用的是上下浮动50%,正好布满整个给定空间:
可以看morris局部敏感度分析具体数据:
a:
b:
c:
然后将灵敏度指数平均得到morris局部方法(本质是OAT方法,一次改变一个)分析结果:
全局方法(本质是通过拉丁抽样实现同时考虑多个参数的影响)就不是这个思路了,看一下超拉丁抽样:
总结一下1stopt中4种方法参数灵敏度结果:
morris方法局部:
名称 灵敏度指数 灵敏度指数(%)
a3.916E1889.1113892365457
b4.125E179.38673341677096
c6.6E161.50187734668335
morris方法全局:
名称 灵敏度指数 灵敏度指数(%)
a2.00290323137447E1881.4890482414753
b2.10289523274038E178.55572692595605
c2.44687506069835E179.95522483256862
偏微分方法局部:
名称 灵敏度指数 灵敏度指数(%)
a3.99432000000567E1889.1113892365577
b4.20750000000213E179.38673341676365
c6.73199999998753E161.50187734667864
偏微分方法全局:
名称 灵敏度指数 灵敏度指数(%)
a3.98876054886661E1882.084202339751
b4.20542269921853E178.65428655186941
c4.50049450186404E179.26151110837963
下面用matlab写sobol方法进行分析:
1 %sobol 参数敏感性分析2 %算法参考:3 % csdn : https://blog.csdn.net/xiaosebi1111/article/details/46517409
4 % wiki: https://5 %运行环境 matlab2016b6 %作者 blzhu@buaa.edu.cn 2020年6月7日7 %%初始化8 clc;9 clear all;10 close all;11 %%设定:给定参数个数和各个参数的范围12
13 % % 1-自定义子函数114 % D=3;%维度3,几个参数15 % nPop=4:500:5000;%采样点个数,也就是参数水平数 ,取大了好,比如4000,但慢16 % VarMin=[-pi -pi -pi ];%各个参数下限 SALib :S1: [ 0.30797549 0.44776661 -0.00425452] ;ST: [0.56013728 0.4387225 0.24284474]17 % VarMax=[pi pi pi];%各个参数上限18 % myFunction=@(x) Ishigami(x);%目标函数,也可以是个黑盒子19
20 % % 1-自定义子函数221 D=3;%维度3,几个参数22 nPop=4:50:1000;%采样点个数,也就是参数水平数 ,取大了好,比如4000,但慢23 VarMin=[1 2 3 ];%各个参数下限24 VarMax=[3 4 5];%各个参数上限25 myFunction=@(x) myx2(x);26
27 % % 1-自定义子函数328 % D=4;%维度3,几个参数29 % nPop=4:50:1000;%采样点个数,也就是参数水平数 ,取大了好,比如4000,但慢30 % VarMin=[1 2 3 4];%各个参数下限31 % VarMax=[3 4 5 5];%各个参数上限32 % myFunction=@(x) myx3(x);33
34
35 %%开始计算36 numnPop=numel(nPop);37 SAll=zeros(numnPop,D+1);%分别是各参数的敏感度,最后一列是各参数敏感度之和38 STAll=zeros(numnPop,D+1);39 for i=1:numnPop40 [S,ST]=sobol(D,nPop(i),VarMin,VarMax,myFunction);41 SAll(i,1:D)=S';
42 SAll(i,D+1)=sum(SAll(i,1:D));43 STAll(i,1:D)=ST';
44 STAll(i,D+1)=sum(STAll(i,1:D));45 end46 %%绘图47 color=[1 0 0;0 1 0;0 0 1;0.5 0.1 0;0 0.3 0.4;0.6 0.7 0.2;0.5 0.8 0.9;0 0.2 0.1;0.1 0.5 0;0.1 0 0.5;0.5 0 0.1];%12种颜色 一般颜色不一样48 marker=['o','+','*','.','x','s','d','^','v','>','
52 figure(1)53 for i=1:D+1
54 plot(nPop,SAll(:,i),'Marker',marker(i),'LineStyle',char(linestyle(useL)),'Color',color(i,:),'LineWidth',1);55 hold on56 end57 title('Sobol-S');58 whichPara=sprintfc('%g',repmat(1:D+1,1,2));%把数字数组转化成字符串数组59 legend(whichPara,'Location','bestoutside');%加图例60
61
62 figure(2)63 for i=1:D+1
64 plot(nPop,STAll(:,i),'Marker',marker(i),'LineStyle',char(linestyle(useL)),'Color',color(i,:),'LineWidth',1);65 hold on66 end67 title('Sobol-ST');68 whichPara=sprintfc('%g',repmat(1:D+1,1,2));%把数字数组转化成字符串数组69 legend(whichPara,'Location','bestoutside');%加图例70
71 disp('一阶影响指数(左方向收敛于1)Sobol-S:');72 disp(S);73 disp('总效应指数(大于等于1,且仅当myfun是纯相加时取等号)Sobol-ST:');74 disp(ST);75 disp(datetime);76 disp('parameter sensitive analyse success use sobol method!');77 %%火车声音提示已经算完了78 load train79 sound(y,Fs)80
81
82
83 %% -------------------------子函数 matlab2016之前不支持子函数写在同一个m文档中----------------------------
84 % 1-自定义子函数1(3个参数)Ishigami https://www.sfu.ca/~ssurjano/ishigami.html
85 function y=Ishigami(x)86 y=sin(x(1))+7*(sin(x(2)))^2+0.1*x(3)^4*sin(x(1));%SALib用的这个87 % y=sin(x(1))+7*(sin(x(2)))^2+0.05*x(3)^4*sin(x(1));88 end89
90 % 1-自定义子函数2 (3个参数)91 function y=myx2(x)92 t=-5:1:5;%与此处有t范围和步距有关系93 % t=-5:0.1:5;%与此处有t范围和步距有关系94 ylab=2*t.^2+3*t+4;95 ytheory=x(1)*t.^2+x(2)*t+x(3);96 y=sum((ylab-ytheory).^2);%残差平方和SSR作为目标函数97 % y=sum((ylab-ytheory).^2)/numel(t);%各参数灵敏度与上式相同98 end99
100
101 % 1-自定义子函数3(4个参数)102 function y=myx3(x)103 t=-5:1:5;104 ylab=2*t.^3+3*t.^2+4*t+5;105 ytheory=x(1)*t.^3+x(2)*t.^2+x(3)*t+x(4);106 y=sum((ylab-ytheory).^2);107 end108
109
110
111 %% 2-求sobol敏感度112 function [S,ST]=sobol(D,nPop,VarMin,VarMax,myFunction)113 M=D*2;%
114 %%产生所需的各水平参数115 VarMin=[VarMin,VarMin];116 VarMax=[VarMax,VarMax];117 p= sobolset(M);% https://www.cnblogs.com/zhubinglong/p/12260292.html
118 % R=p(1:nPop,:);%我只用前nPop个119 R=[];120 for i=1:nPop121 r=p(i,:);122 r=VarMin+r.*(VarMax-VarMin);123 R=[R; r];124 end125 % plot(R(:,1),'b*')126 %拆分为A B127 A=R(:,1:D);%每行代表一组参数,其中每列代表每组参数的一个参数;行数就代表共有几组参数128 B=R(:,D+1:end);129 %根据A B 产生矩阵AB130 AB=zeros(nPop,D,D);131 for i=1:D132 tempA=A;133 tempA(:,i)=B(:,i);134 AB(1:nPop,1:D,i)=tempA;135 end136 %%求各参数解137 YA=zeros(nPop,1);%解138 YB=zeros(nPop,1);139 YAB=zeros(nPop,D);%分别代表YAB1,YAB2,YAB3,YAB(:,D)就代表YABD140 for i=1:nPop141 YA(i)=myFunction(A(i,:));142 YB(i)=myFunction(B(i,:));143 for j=1:D144 YAB(i,j)=myFunction(AB(i,:,j));145 end146 end147 %%根据一阶影响指数公式:148 VarX=zeros(D,1);%S的分子149 S=zeros(D,1);150
151 % 0: 估算基于给定样本的方差(EXCEL var.p) ; 1:计算基于给定的样本总体的方差(EXCEL var.p())152 % var([2.091363878 1.110366059 3.507651769 1.310950363 2.091363878 3.507651769 1.110366059 1.7066512],1);153 VarY=var([YA;YB],1,'omitnan');% S的分母。 计算基于给定的样本总体的方差(EXCEL var.p())154 for i=1:D155 for j=1:nPop156 VarX(i)=VarX(i)+YB(j)*(YAB(j,i)-YA(j));157 end158 VarX(i)=1/nPop*VarX(i);%蒙特卡罗估计量159 S(i)=VarX(i)/VarY;160 end161
162 %%总效应指数163 EX=zeros(D,1);164 ST=zeros(D,1);165 for i=1:D166 for j=1:nPop167 EX(i)=EX(i)+(YA(j)-YAB(j,i))^2;168 end169 EX(i)=1/(2*nPop)* EX(i);%蒙特卡罗估计量170 ST(i)=EX(i)/VarY;171 end172 end
我分别取了不同个数的样点 4:50:1000 ,结果如下,可见1000个样点基本稳定了。
各参数的灵敏度:
一阶影响指数(左方向收敛于1)Sobol-S:
0.9728
0.0030
0.0001
总效应指数(大于等于1,且仅当myfun是纯相加时取等号)Sobol-ST:
0.9860
0.0031
0.0155
当然,也可以在matlab的fileexchange上下载各种工具箱,但这个根据csdn和wiki上写的算法相对简单些,便于魔改。
用python的SALib包分析
Method of Morris, including groups and optimal trajectories ([Morris 1991], [Campolongo et al. 2007])
Fourier Amplitude Sensitivity Test (FAST) ([Cukier et al. 1973], [Saltelli et al. 1999])
Delta Moment-Independent Measure ([Borgonovo 2007], [Plischke et al. 2013])
Derivative-based Global Sensitivity Measure (DGSM) ([Sobol and Kucherenko 2009])
Fractional Factorial Sensitivity Analysis ([Saltelli et al. 2008])
下面以sobol方法举例:
1 #https://salib.readthedocs.io/en/latest/basics.html#run-model
2 #-*- coding: utf-8 -*-
3 from SALib.sample importsaltelli4 from SALib.analyze importsobol5 from SALib.test_functions importIshigami6 importnumpy as np7 importmath8 from SALib.plotting.bar importplot as barplot9 importmatplotlib.pyplot as plot10
11 #problem = {
12 #'num_vars': 3,
13 #'names': ['x1', 'x2', 'x3'],
14 #'bounds': [[-3.14159265359, 3.14159265359],
15 #[-3.14159265359, 3.14159265359],
16 #[-3.14159265359, 3.14159265359]]
17 #}
18
19 problem ={20 'num_vars': 3,21 'names': ['x1', 'x2', 'x3'],22 'bounds': [[1, 3],23 [2, 4],24 [3, 5]]25 }26
27
28 param_values = saltelli.sample(problem, 1000)#不管用哪个方法计算y,这个要有
29 np.savetxt("param_values.txt", param_values)#将参数变化保存,其实是各参数范围内的sobol抽样
30
31 ## 计算Y
32 ##1-自定义-1
33 #Y = np.zeros([param_values.shape[0]])
34 #A = 7
35 #B = 0.1
36 #for i, X in enumerate(param_values):
37 #Y[i] = math.sin(X[0]) + A * math.pow(math.sin(X[1]), 2) + \
38 #B * math.pow(X[2], 4) * math.sin(X[0])
39
40 #1-自定义-2
41 Y =np.zeros([param_values.shape[0]])42 for i, X inenumerate(param_values):43 tarr=np.arange(-5,6,1);44 yerror=0.0;45 for t intarr:46 ylab=2*t**2+3*t+4;47 ytheory=X[0]*t**2+X[1]*t+X[2];48 yerror=yerror+(ylab-ytheory)**2;49
50 Y[i] =math.sqrt(yerror);51
52 #2-load计算好的txt
53 #Y = np.loadtxt("outputs.txt", float)
54
55 #3-SALib自带测试函数
56 #Y = Ishigami.evaluate(param_values)
57 ## np.savetxt("outputs.txt", Y)#将因变量变化结果保存
58
59 Si = sobol.analyze(problem, Y ,print_to_console=True)60 print()#自动输出S1(单个参数对因变量的影响)、ST(考虑各个变量相互影响)和S2(两两参数之间影响),需有,print_to_console=True
61
62 print("all parameters first-order sensitivity indices S1:")63 print(Si['S1'])#一阶影响指数
64 print("all parameters second-order sensitivity indices S2:")65 print(Si['S2'])#二阶影响指数
66 print("all parameters total sensitivity indices ST:")67 print(Si['ST'])#总效应指数
68
69 #绘图 https://zhuanlan.zhihu.com/p/137953265
70 Si_df =Si.to_df()71 barplot(Si_df[0])72 plot.show()
输出结果:
Parameter S1 S1_conf ST ST_conf
x1 0.969397 0.069624 0.982232 0.058139
x2 0.007222 0.009055 0.009680 0.001325
x3 0.000848 0.008468 0.011699 0.001033
Parameter_1 Parameter_2 S2 S2_conf
x1 x2 0.000330 0.070070
x1 x3 0.010014 0.069389
x2 x3 -0.000129 0.013788
all parameters first-order sensitivity indices S1:
[9.69397123e-01 7.22243327e-03 8.47690887e-04]
all parameters second-order sensitivity indices S2:
[[ nan 0.00032978 0.01001386]
[ nan nan -0.00012935]
[ nan nan nan]]
all parameters total sensitivity indices ST:
[0.9822323 0.00968001 0.01169928]
也可以用morris方法:
只需要导入
from SALib.analyze import morris
然后用
Si = morris.analyze(problem, Y ,print_to_console=True) 代替
Si = sobol.analyze(problem, Y ,print_to_console=True)
1 #https://salib.readthedocs.io/en/latest/basics.html#run-model
2 #-*- coding: utf-8 -*-
3 from SALib.sample importsaltelli4 from SALib.analyze importsobol5 from SALib.analyze importmorris6 from SALib.test_functions importIshigami7 importnumpy as np8 importmath9 from SALib.plotting.bar importplot as barplot10 importmatplotlib.pyplot as plot11
12 #problem = {
13 #'num_vars': 3,
14 #'names': ['x1', 'x2', 'x3'],
15 #'bounds': [[-3.14159265359, 3.14159265359],
16 #[-3.14159265359, 3.14159265359],
17 #[-3.14159265359, 3.14159265359]]
18 #}
19
20 problem ={21 'num_vars': 3,22 'names': ['x1', 'x2', 'x3'],23 'bounds': [[1, 3],24 [2, 4],25 [3, 5]]26 }27
28
29 param_values = saltelli.sample(problem, 1000)#不管用哪个方法计算y,这个要有
30 np.savetxt("param_values.txt", param_values)#将参数变化保存,其实是各参数范围内的sobol抽样
31
32 ## 计算Y
33 ##1-自定义-1
34 #Y = np.zeros([param_values.shape[0]])
35 #A = 7
36 #B = 0.1
37 #for i, X in enumerate(param_values):
38 #Y[i] = math.sin(X[0]) + A * math.pow(math.sin(X[1]), 2) + \
39 #B * math.pow(X[2], 4) * math.sin(X[0])
40
41 #1-自定义-2
42 Y =np.zeros([param_values.shape[0]])43 for i, X inenumerate(param_values):44 tarr=np.arange(-5,6,1);45 yerror=0.0;46 for t intarr:47 ylab=2*t**2+3*t+4;48 ytheory=X[0]*t**2+X[1]*t+X[2];49 yerror=yerror+(ylab-ytheory)**2;50
51 Y[i] =math.sqrt(yerror);52
53 #2-load计算好的txt
54 #Y = np.loadtxt("outputs.txt", float)
55
56 #3-SALib自带测试函数
57 #Y = Ishigami.evaluate(param_values)
58 ## np.savetxt("outputs.txt", Y)#将因变量变化结果保存
59
60 #Si = sobol.analyze(problem, Y ,print_to_console=True)
61 Si = morris.analyze(problem, Y ,print_to_console=True)62 print()#自动输出S1(单个参数对因变量的影响)、ST(考虑各个变量相互影响)和S2(两两参数之间影响),需有,print_to_console=True
63
64 print("all parameters first-order sensitivity indices S1:")65 print(Si['S1'])#一阶影响指数
66 print("all parameters second-order sensitivity indices S2:")67 print(Si['S2'])#二阶影响指数
68 print("all parameters total sensitivity indices ST:")69 print(Si['ST'])#总效应指数
70
71 #绘图 https://zhuanlan.zhihu.com/p/137953265
72 Si_df =Si.to_df()73 barplot(Si_df[0])74 plot.show()
python3.8.1+SALib1.3 use morris
Parameter S1 S1_conf ST ST_conf
x1 0.969397 0.072129 0.982232 0.062795
x2 0.007222 0.008033 0.009680 0.001303
x3 0.000848 0.009519 0.011699 0.001045
Parameter_1 Parameter_2 S2 S2_conf
x1 x2 0.000330 0.087924
x1 x3 0.010014 0.087743
x2 x3 -0.000129 0.013700
all parameters first-order sensitivity indices S1:
[9.69397123e-01 7.22243327e-03 8.47690887e-04]
all parameters second-order sensitivity indices S2:
[[ nan 0.00032978 0.01001386]
[ nan nan -0.00012935]
[ nan nan nan]]
all parameters total sensitivity indices ST:
[0.9822323 0.00968001 0.01169928]
小技巧:
SALib如果不便于将目标函数写为函数的形式,可以将代码:
np.savetxt("param_values.txt", param_values)# 将参数变化保存,其实是各参数范围内的sobol抽样
生成的抽样带入自己的系统,然后根据自己需要生成对应抽样的目标函数,将目标函数放入同目录下的 outputs.txt 文档中,一行一个结果,然后用这个语句代替上面求Y[i]:
Y = np.loadtxt("outputs.txt", float)
就是说提供了参数变化以及目标函数变化,用SALib就可以求参数灵敏度了。
总结:
matlab我用的sobol生成的抽样和别人的不一样,不知道为什么,这个是造成与python计算不一样的一个原因吧。但差别不大。
-
MATLAB 被禁点燃导火索,国产软件之殇如何自愈?
2020-06-19 17:55:19受访者 | 程先云,七维高科CTO 记者 | 夕颜 出品 | CSDN(ID:CSDNnews) 「AI技术生态论」是CSDN发起的“百万人学AI”倡议下的重要组成部分,与AIProCon万人开发者大会、Top30 AI技术生态行业案例征集和评选、开发者...受访者 | 程先云,七维高科CTO
记者 | 夕颜
出品 | CSDN(ID:CSDNnews)
「AI技术生态论」是CSDN发起的“百万人学AI”倡议下的重要组成部分,与AIProCon万人开发者大会、Top30 AI技术生态行业案例征集和评选、开发者与AI大调查、AI大师课一起,打造一个覆盖百万开发者的AI生态联盟。
2020年,「AI技术生态论」栏目将对1000+AI生态大咖进行系列访谈,勾勒出AI生态最具影响力人物图谱和AI产业全景图!
本文为 「AI 技术生态论」系列访谈第三十七期。
百万人学 AI 你也有份!今日起点击阅读原文报名「2020 AI开发者万人大会」,即可免费获得价值299元的大会在线直播门票一张!
MATLAB事件
2020 年 6 月 6 日起,哈尔滨工业大学和哈尔滨工程大学因被列入美国商务部实体名单,并被禁用数学基础软件 Matlab。这一消息迅速在网络发酵,引发关于国产软件独立自主重要性的大规模讨论。
哈尔滨工业大学和哈尔滨工程大学表示,其正在和美国 MathWorks 公司进行积极沟通,而 MathWorks 方面则回应称,接到通知,根据美国政府最新的进出口管制名单,无法再为其提供服务。这个在特殊环境下的非个例事件将会对国内产生深刻的影响是可以预见到的,但以此事为导火索,将具体会对学术科研界产生怎样的影响,对国内自研软件行业带来哪些改变没有人可以说得清楚。针对这些问题,数学科学计算软件 1stOpt 的核心研发人程先云博士从专业角度,带来了他的看法。
无知识积累、团队支持,自研 MATLAB 替代品纯粹是“瞎忽悠”
首先,程先云博士对哈工大等高校被限制使用 Matlab 一事有一个预判,认为此事对学术科研界影响巨大,而按目前的发展趋势,不久的将来或许会有更多的专业/行业软件被禁,涉及的高校及科研单位也会更广,甚至最大的开源社区的 GitHub 对中国封禁也是大概率的事。
他提到,前段时间美国在硬件方面禁中兴和华为,现在又在软件方面发力,虽然很无奈也很遗憾,但有一点却是痛苦的事实,也振醒了我们,那就是美国禁什么,我们才发现我国在这方面确实很弱,差距巨大。硬件方面如此,软件方面更是有过之而无不及,如此精准“打击”,美国似乎比我们自己更了解我们,不得不说这显然是件非常恐怖也很令人难堪的事。
如何破局应对?不少人都在讨论国产替代品的可能性,如 Python、Octave、Julia 等,然而,现实情况却是,语言上找到替代品简单,但 Simulink 仿真却很难找得到替代品。
程先云博士说到,其实从理论上来说,世界上没有任何东西是不可替代的,软件产品也是如此,关键要看替换的代价和成本。打个比喻,如果一个人习惯而且一直喝咖啡,因为喝咖啡,地里种的也是咖啡树,所有设备、器材都是为咖啡而备,此时如果咖啡相关的整体归零,要求全部改为以茶为主,不喝茶就没有水喝,结局会是什么?无法适应而渴死?显然不会,很顺畅地适应而且喝得很舒服?那也绝对是假话,一定会有一段痛苦的调整适应阶段,而且 Simulink 就像咖啡因,茶里也有,但含量远远低于咖啡,要完全适应会是一个长期的过程。
Matlab 禁用事件才几天,据了解就有公司号称一年内就能开发出完全替代 Matlab 的国产同类软件产品,按过往的经验,程先云预计以“逐利”为本的一大波公司也已经“在路上”。程先云博士不客气地指出,说白了,那些既无以往开发科学计算软件的经历及知识积累,也无强大的数学支持团队,承诺可以完成 Matlab 替代品开发的基本可以说是“瞎忽悠”, 否则这类产品早就应该出来了,而不会像现在这样以蹭热点式的方式冒出。
“Matlab 并不是像一些人说的仅仅是把已有成熟的算法、数学原理、数学公式及相关工具箱堆砌在一起那样简单,如果是这样,10 年前清华大学搞得那个对标 Mathematica/Matlab的maTHμ也不会消失的无影无踪了,”程先云无奈道。
他指出,开发综合数学类软件,除了需要精通编程及具有深厚完善的数学知识外,算法上还需有自身的特点和先进之处,否则花大精力开发的产品连开源的 Scilab 和 Octave 等都比不过,意义何在?Matlab 不但是数学功能的集大成者,而且具有完全的开发环境和编程功能,早已被视为 Fortran 的替代者,而按国内目前的环境,跟风式的科研风气,不重视基础研究与应用,唯论文论英雄,科学界看似繁荣的表面实则都是建立在他人的基础之上,被人釜底抽薪卡脖子自然是难免之事。
“开发出个数学应用软件不难,但要想在短期内达到或超过 Matlab,可能性微乎其微,”程先云从自己的专业角度做出了这个让人遗憾但客观的预测。
一蹴而就不现实,但从局部破局还是有希望的!
程先云博士认为,Matlab 是大而全的数学类专业软件,无法短期内开发出全面接近或超越 Matlab 的产品,也是客观现实,但先从局部或某个方面先取得突破,再在此基础上完善拓展还是很有希望的。Matlab 也是历经几十年不断迭代累积修正发展而来的,任何希望一蹴而就的想法都是不现实的。
阿基米德说:“给我一个立足点和一根足够长的杠杆,我就可以撬动地球”,但实际上人类目前根本就不存在这样的杠杆,脚踏实地道路才会坚实,一砖一瓦大厦方可竖起。
如果没有创新而只是重复,拥抱开源比独立开发效率更高。
90 年代海外读博期间开发 1stOpt
虽然短期内国内自研 Matlab 的替代品不现实,但是一旦大规模封禁,我们总需要些能够暂时可以顶一阵的产品。我们关心的是,国内有哪些类似的产品可以暂缓燃眉之急呢?
程先云博士所在的七维高科旗下,就有一款主要专注于优化数值计算(非线性拟合,非线性方程组,全局非线性最优化等)的产品 1stOpt。程先云博士称,在优化数值计算方面,1stOpt 可以实现不错的求解效果和易用性。
七维高科科技有限公司是一家专注于数学科学计算软件研发企业,数学优化分析计算软件平台1stOpt 是其旗下独立研发并拥有完全自主知识产权的一套软件产品,软件名“1stOpt”源自英文“First Optimization”,意喻最优化领域做到第一。该产品自上世纪末第一版面世,至今已有 20年的历史。程先云博士是 1stOpt 的核心研发人员。上世纪 90 年代中期留学国外攻读博士学位期间,因专业问题涉及到模型参数优化求解,程先云开始了解并学习最优化算法、人工神经网络及智能计算方法等,在大量研究的基础上,开发提出了 UGO 通用全局优化算法(Universal Global Optimization),并以此为核心技术推出了 1stOpt 数值计算软件平台的第一个版本。
程先云博士说道,许多数学问题,包括当今火热的人工智能问题都可以最终归结为数学优化问题,而要完美解决这类问题的重要密匙之一就是优化算法,尤其是具有全局寻优能力的全局优化算法更是重中之重,成为当下研究的焦点。从上世纪五、六十年代提出的具有全局寻优能力的模拟退火和遗传算法,到如今数不胜数的各种仿生智能算法,虽然都号称是全局优化算法,但实际表现与期待的理想结果还有相当大的差距,最多只能说是在理论上具有全局优化计算能力,而能在实际应用当中表现名副其实的并不多见。Matlab 官方就在其论坛指出“任何优化问题,当今的基于进化的智能全局优化算法都不值得推荐使用”,这也是为什么包括 Matlab 在内的主流计算软件涉及到优化计算,比如拟合和方程求解,都还是采用经典的局部最优算法,如牛顿算法。
UGO 算法之最大特点是,与经典局部最优算法相比,克服了在优化计算领域中使用迭代法必须给出合适初始值的难题,即用户勿需猜测给出待求参数的初始估值,而由 1stOpt 随机给出,通过 UGO 算法,最终找出最优解;而与遗传算法等具有全局优化能力的算法相比,其稳定的全局优化求解能力有了压倒性的提升。
另外,1stOpt 吸引用户的原因,除了独有的算法及计算效果好之外,使用简单也是最主要原因之一。有一个说法是,过去理工科学生必学的 Fortran,其代码量 10 行,目前理工科学生必学的 Matlab 用一行即可,而如果 Matlab 用 10 行代码,1stOpt 只需一行,入门门栏极低。程先云博士认为,Python 也好,Julia 也罢,都是属于编程语言了,而很大一部分科研人员实际上并不擅长编程,其中不少还有“编程”恐惧症,为了解决自己专业领域的一个数学计算问题就要花费大量额外时间去学习一门语言,实则事半功倍,从这一点看,1stOpt 具有很大优势。
据悉,现在最新版的 Matlab,安装包大小已接近 10G,完全安装完需硬盘空间近 100G 左右,比较臃肿,而很多用户实际只使用到很小一部分功能;而 1stOpt 安装包只有 60M 左右,相比Matlab 要小巧很多,同时对硬盘和内存的要求也很低。
在语言支持方面,1stOpt 除了直接支持 Fortran、Basic、Pascal 等高级语言外,也直接支持Python,Julia 语言的支持也在计划中,这样,无论是简单还是复杂的数值计算问题,1stOpt 都可以轻松应对。
在竞争激烈及国外类似软件几乎垄断的境况下,1stOpt 依靠自己创新的全局最优算法及简单易用的自然语言和用户界面,处于虽然缓慢但始终发展上升的状态,其在非线性回归、曲线拟合、非线性方程组求解、非线性复杂模型参数全局求解、非线性规划等科学计算领域,不仅国内,在世界上也居领先地位。
如今,1stOpt 可应用于几乎所有科研、工程、金融、决策、等领域,据不完全统计,包括国家自然科学基金、国家863计划项目、国家973项目、国家重大科技专项和国家"十一五"、"十二五"科技支撑计划等数千项各类科研基金项目采用了1stOpt软件平台,上百项发明专利及近万篇学术研究论文采用了1stOpt作为分析计算支撑辅助工具,发表刊物包括众多国内外SCI、EI、IEEE及中文核心期刊,包括国内几乎所有“985”和“211”顶尖高校,中国科学院下属数十个研究所,牛津大学、斯坦福大学等国外高校,宝钢集团、大庆石油集团等企业也都在用这款软件。
程先云博士表示,在国内搞这样的基础应用软件,能坚持下来就是最大的胜利,他很欣慰做到了,即使面对 Matlab 这样的“杀手”,自己的产品仍然有很强的竞争力。
他表示,虽然 1stOpt 不可能完全取代大而全的 Matlab,但在局部领域还是可以胜任的,将来若获得政策上的支持,这款产品会在已有的基础上丰富功能并持续发展。
技术不应有国界是伪命题,拿来申辩苍白无力
在笔者看来,科技合作本应是共同体,技术原本也不应有国界,但受美国实体清单的影响,国内学术圈已然受到了波及。但对于“技术无国界”这个说法,程先云博士却有着不同的理解。
他认为,“科学”与“技术”是两个不同概念,简单而言,科学旨在回答“是什么”和“为什么”,而技术则关心“做什么”和“怎么做”。“科学无国界”这句话没任何问题,牛顿、高斯、麦克斯韦尔、爱因斯坦等西方科学家的科学研究成果是现代科技的基石;而“技术无国界”则是一个伪命题, 就看如何理解了,技术是在科学的基础上开发的实用方法或产品,是有投入的,不论是国与国之间,还是不同单位甚至不同个体之间,至少在可见的未来,“技术”产品不可能完全都是免费的,否则“专利”和“知识产权”的概念也不会存在了。即使单纯从市场角度看,任何人都不可能去强买强用某款对方不愿意给的技术产品。
因此,Matlab 对国内禁用,程先云博士坦承,实话实说,我们没有太多的抗辩理由,拿“技术无国界”来申辩更显得苍白无力。“弱者无外交”,“历史是由胜利者书写的”,这些定律同样适用于科技界。
关键是形势已经走到这一步,我们应该如何破局?程先云博士认为还需从我们自身去寻找答案,比如为什么 Matlab 被禁我们会感到难受?因为我们已经习惯了使用这款产品,因为没有这款产品我们的科研会受到不小的影响,而令人尴尬的是短期内我们却又无法找到或开发出类似的产品。
了解了现状,也知道了原因,解决之道就一定会有的。
“能站在巨人的肩膀上固然是很好,但因此就觉得比巨人还高那就危险了,做好随时被抖下肩而又不会迷失方向才是最重要的,”相信有很多人和程先云博士一样保持着这份清醒。
国产软件,必须要有造血能力!
因实体清单以及出口管制等原因,去年,在开源层面上,Apache 基金会与 GitHub 也疑似受美国出口法律法规管制,今年,商业软件再受限制,长远来看,我们亟需拿出一些解决方案来摆脱目前的困境,在困境中,业界、学术界、技术人该如何参与进来?
程先云博士的建议从反思国内教育开始。他指出,基础教育的缺失和填鸭式教育导致国内很难出现数学方面有影响的创新方法和理论,如人工神经网络、支持向量机、随机森林法、深度神经网络等等,国内大都是跟踪模仿,这种“锦上添花”式的模式想出原创性成果几无可能。
开发科学计算软件,国内实际上并不缺乏人才, 如在科技绘图分析软件领域居前列的美国软件Origin Pro,据称实际上既是最先由留美大陆学生开发并逐渐壮大成科技绘图分析软件第一霸主的,其目前的开发及服务支持团队很大一部分就在中国大陆;另外一款在数学线性规划领域执牛耳的美国软件 Gurobi,该软件的三位创始人之一姓顾(Gurobi 中的 Gu 的来源),也是一位华人;更不用说在微软、谷歌和苹果公司,都有大量华人在其中做贡献。这些充分说明,在开发高端软件上中国并不缺乏人才,而是环境,南橘北枳就是最好的比喻描述。
在程先云博士看来,国产软件主要面临如下问题:
- 科研与实际脱节严重,不少涉及到应用软件开发的项目闭门造车者多,完全脱离市场需求,也无法通过市场验证从而得到市场认可和用户的接受;虽然国内科研论文发表数、专利申请获得数及软件著作权登记数屡创新高,位居世界前一、二名,但实际有用并可转化成生产力的比例极小,大部分都是为了职称评定或完成科研定量指标任务而凑数;
- 国内科研和软件开发急功近利者多,耐得住寂寞能沉下心长时间专注一项产品的少之又少,导致此现象原因众多,但生存环境不允许应该是重要原因之一;
- 软件开发得不到重视,具体表现在认为编程序不算科研,编程就是机械性写代码,没有技术含量,很难发表高水平论文,因此,最好的人才不太愿意搞应用软件开发;
- 国家层面对软件支持的盲目性投入导致的后果往往是事倍功半,有不少以国产自主名义骗取国家投入(如红芯浏览器、木兰编程语言等)。根据国际上的成功经验,很多后来成功的知名软件如Matlab和Mathematical,创业起始都是由几个人组成的小规模团队研发成功再逐渐壮大的,即使目前大名鼎鼎的Android系统,最初也是由“安卓之父” 安迪·鲁宾个人开发,再后来由谷歌公司收购,继而成为移动端霸主的。“大兵团”作战方式并不适合科学计算类数学软件的开发,尤其对于初创公司来说,更需要的是创新思想和有能力把这些思想转换成实际产品的人才。国家要做的是创造公平公开的环境,让处于不同位置、不同阶段的主体获得公平竞争的机会。软件从来不是扶持出来的,而是市场竞争出来的。中国不缺有竞争力的人,而是缺好的竞争环境。诺贝尔奖获得者不可能由特定模式及特定人员按规划专门培养而成,自由生长的环境才能保证百花齐放,才可能获得硕果。
- 市场已经有口碑和性能都很好的软件,新入市的软件不论是时间还是机会空间都很小,除非有自己的特色,在性能上明显胜于已有软件产品几个档次,才有可能吸引用户转投新的产品;国内盗版现象虽然比以前有所好转,但还是相当严重。不同于国外科学计算软件大鳄,他们可放任国内盗版的使用,不论是“先培养用户习惯,将来再收割”的阴谋论也好,还是无暇顾及版权维护也罢,他们依靠国外的正版收入即可足以维持自身的发展壮大;与之对比,即使有创意且性能在某些领域领先的国产数学软件,其国内主市场以盗版为主,那么就算产品再优秀,也是很难维持并走向成功的;
- 虽然一款软件产品的成功与否最终取决于市场,但在目前国内,仅靠市场而没有国家的扶持,想最终战胜国外同类成熟产品,无异于比登天还难。
科学计算软件的发展,需要长期的人才和技术积累,需要拥有自己的核心求解技术,不可能一蹴而就,核心技术也是不可能通过引进获取的,急功近利式的方式是无法产生伟大产品的。
程先云博士表示,虽然在大而全方面不可能一蹴而就弄出个中国版的 Matlab 或 Mathematical,但先专注于某一方向,精雕细琢,取得局部领域的突破,再考虑全面地集成发展,虽然任重道远,但毕竟是可行的发展方向。通过这次软件禁用一事,相信国家会采取相应的应对措施,不论是政策层面还是资金扶持资助方面,基础应用软件会迎来发展的春天。但在这个过程中,要避免“头痛医头脚痛医脚”式的发展模式,更要杜绝骗取经费的闹剧,要有长远的规划。
“软件产品的成功与否最终要靠市场说话,中国是开放的国家,我们不能仅仅满足于国内市场的一亩三分地,能走向国际市场,能得到世界范围的认可,才可以说是一款成功的产品。温室里的鲜花是永远经不起大风大浪的,一时帮扶可以,但如果自身始终无自我造血机能,只能属于被淘汰的产品,”程先云博士如是说。
【End】 今日福利!
同样作为“百万人学 AI”的重要组成部分,2020 AIProCon 开发者万人大会将于 7 月 3 日至 4 日通过线上直播形式,让开发者们一站式学习了解当下 AI 的前沿技术研究、核心技术与应用以及企业案例的实践经验,同时还可以在线参加精彩多样的开发者沙龙与编程项目。参与前瞻系列活动、在线直播互动,不仅可以与上万名开发者们一起交流,还有机会赢取直播专属好礼,与技术大咖连麦。
门票限量大放送! 今日起点击阅读原文报名「2020 AI开发者万人大会」,即可免费获得价值299元的大会在线直播门票一张。快来动动手指,免费获取入会资格吧!
点击阅读原文,直达大会官网。
-
模型评估与选择
2017-05-05 22:43:09“交叉验证法”将数据集划分为k个大小相似的互斥子集,每个子集都尽可能保持数分布的一致性,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而进行k次训练和测试,... -
高维多元数据拟合回归如何进行???
2021-04-27 19:51:54经过查阅一些论坛和CSDN资料,解决方式有以下几种: 1、 用python加载KNN、Numpy、pandas、statsmodels等安装包进行算法求取,在迭代时会由于初值选定问题,出现结果偏差过大情况,需要不断根据经验调整相关参数。... -
systemverilog 基础
2022-02-26 19:49:56systemverilog 面向对象编程 1. class 的定义,声明,实例化 2. 父类,子类,virtual,$cast() 3. keyword. Static, -
数学建模软件lingo的基本使用方法
2020-03-10 16:51:23获取lingo安装包可以到lingo官网下载或者在微信公众号“认知无线电”回复“lingo”即可得到安装包(来源CSDN)。下载好安装包后,解压安装。在第一打开时肯能会出现需要注册码,此... -
dat文件读取操作
2019-12-08 21:14:35参考: https://blog.csdn.net/xiaogugood/article/details/21447431 ... 文件内容大概如图所示: DimOfX 1 NumOfSamples 11 X Y 0 3.027209981 0.1 -0.656576774 0.2 ... -
赤池信息量准则 ( Akaike information criterion)
2017-07-11 09:48:00sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) ...amp;utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share 赤池信息量准则[1] 是由日本... -
隐函数式微分方程参数拟合
2021-08-09 15:25:10问题来源:1stopt 7参数拟合求助 - 计算模拟 - 程序代码 - 小木虫论坛-学术科研互动平台 (muchong.com) 根据两个式子(一个隐函数式微分方程,一个代数方程)拟合7个未知参数fac1~fac7。式中lambv'=d(lambv)/d(lamb... -
MATLAB 被禁点燃导火索,国产软件路在何方?
2020-06-20 17:26:36采访嘉宾 | 程先云,七维高科CTO记者 |夕颜出品| CSDN(ID:CSDNnews)MATLAB事件2020 年 6 月 6 日起,哈尔滨工业大学和哈尔滨工程大学因被列入美国... -
mpp region osd反色
2021-03-11 15:34:30海思3516A区域管理操作汇总及位图填充示例_海思,OSD,点阵传位图_mill_li的博客-CSDN博客【已解决】关于Hi3516A做OSD的问题 - 海思平台开放论坛 - 易百纳论坛 - Powered by Discuz!(9条消息)海思多媒体(MPP)开发(5)... -
HA 模式 Hadoop+ZooKeeper+Hbase启动顺序
2019-09-24 20:51:29背景(原http://blog.csdn.net/u011414200/article/details/50437356 ,对其进行了一定更改) 1.1 网络上的大部分教程 都是机器间含有SSH联通来启动的。生产环境一般都是不配置SSH机器之间互通的。 1.2 主机... -
HA模式下的各种启动顺序
2019-08-30 22:13:011 网络上的大部分教程的顺序 2 主机规划 3 正确的启动顺序 二 首次启动格式化集群 三 开启与关闭集群顺序 1 Hadoop 生态系统集群的启动顺序概览 2 非首次启动集群 3 Hadoop 生态系统集群的关闭顺序概览 4 集群关闭... -
串口UART——学习笔记4
2019-06-08 10:24:58接着我们回到串口发送部分,当发送完一个字节的数据后,最后的1bit数据为stopt_bit=1’b1,并且数据保持。那么我们在串口接收到的数据的开始数据start_bit=0则必定产生一个下降沿,在这个下降沿产生的时候,接收数据... -
HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序
2018-10-09 10:35:09文章转载此处:https://blog.csdn.net/u011414200/article/details/50437356 一 背景 1 网络上的大部分教程的顺序 2 主机规划 3 正确的启动顺序 二 首次启动格式化集群 三 开启与关闭集群顺序 1 ... -
MegaCli64/MegaCli命令详解
2019-02-19 21:58:00RAID 1 to RAID 0,RAID 1 to RAID 5,RAID 1 to RAID 6,RAID 5 to RAID 0, RAID 5 to RAID 6,RAID 6 to RAID 0,RAID 6 to RAID 5 9 升级 一 从低版本到高版本升级MegaCli -adpfwflash -f x.rom -a0 二... -
RandomForest详解(附带详细公式推导)
2018-07-11 17:39:49@CSDN:https://blog.csdn.net/qq_40793975/article/details/80988486 """ import numpy as np import random import time # 加载IRIS数据集 def load_IRISdata ( filename ) : labelMap = ... -
TableCurve 3D寻找拟合公式
2017-08-04 19:12:00拟合的时候不知道拟合公式的情况下,可以尝试TableCurve 2D和TableCurve 3D(听说1stopt 也不错,也支持拟合公式海量匹配,而且在已知公式拟合的时候甚至要优于MATLAB的,因为初值的问题)。TableCurve 3D内置了... -
linux安装Apache代理及配置httpd
2018-06-26 11:25:00service httpd stopt service httpd stop 安装完了设置配置文件 找到apache的安装目录下的conf/httpd.conf文件 配置监听端口 Listen 80 这一行是用来配置监听端口的,默认配置是80,你可以随意修改为你喜欢的... -
Win7安装MySQL Server 5.6记录
2014-11-11 12:17:001、下载安装 MySQL官网 下载安装包mysql-5.6.20-win32.msi ,并安装到目录 D:\Program Files\MySQL\MySQL-Server-5.6 2、配置my.ini文件 将D:\Program Files\MySQL\MySQL-Server-5.6目录下的my-... -
C#播放语音
2017-01-12 15:33:56public void StopT() { TemStr = ""; TemStr = TemStr.PadLeft(128, Convert.ToChar(" ")); ilong = APIClass.mciSendString("close media", TemStr, 128, 0); ilong = APIClass.mciSendString("close all", ...