逐步回归stepwise(x,y,inmodel,alpha)例: >> x1=[4.46 4.11 3.58 4.42 4.62]'; >> x2=[4.42 3.82 3.31 4.37 4.47]'; >> x3=[4.23 3.29 3.24 4.34 4.53]'; >> X=[x1 x2 x3];
>> y=[4.41 3.38 3.17 4.39 4.69]'; >> stepwise(X,y)
区分回归与拟合!! 18
二、网格法(半穷举法) 算法略。(类似下面的代码格式) 网格法实现代码参考:
s1=0.01;%变量x1搜索步长 s2=0.01;%变量x2搜索步长
opt_value =inf;%预置一个足够大的数 %二重嵌套循环进行“穷举” for x1=-5:s1:5, for x2=0:s2:10,
v = 100*(x2-x1^2)^2+(1-x1)^2; if v< opt_value, opt_value = v; opt_x = [x1,x2]; end????? end end
%显示结果 opt_value opt_x
计算机模拟:
追逐模拟: v=1; dt=0.05;
x=[0 0 10 10]; y=[0 10 10 0]; d=20; while (d>0.1)
x(5)=x(1);y(5)=y(1); for i=1:4
d=sqrt((x(i+1)-x(i))^2+(y(i+1)-y(i))^2); x(i)=x(i)+v*dt*(x(i+1)-x(i))/d; y(i)=y(i)+v*dt*(y(i+1)-y(i))/d; plot(x(i),y(i),'.'),hold on end end
数 值 函 数
N[expr]表达式的机器精度近似值
N[expr, n] 表达式的n位近似值,n为任意正整数 NSolve[lhs==rhs, var] 求方程数值解
NSolve[eqn, var, n] 求方程数值解,结果精度到n位 NDSolve[eqns, y, {x, xmin, xmax}]微分方程数值解 NDSolve[eqns, {y1,y2,...}, {x, xmin, xmax}] 微分方程组数值解
FindRoot[lhs==rhs, {x,x0}] 以x0为初值,寻找方程数值解 FindRoot[lhs==rhs, {x, xstart, xmin, xmax}] NSum[f, {i,imin,imax,di}] 数值求和,di为步长 NSum[f, {i,imin,imax,di}, {j,..},..] 多维函数求和 NProduct[f, {i, imin, imax, di}]函数求积 NIntegrate[f, {x, xmin, xmax}] 函数数值积分
优化函数:
FindMinimum[f, {x,x0}] 以x0为初值,寻找函数最小值 FindMinimum[f, {x, xstart, xmin, xmax}] ConstrainedMin[f,{inequ},{x,y,..}]
inequ为线性不等式组,f为x,y..之线性函数,得到最小值及此时的x,y..取值
ConstrainedMax[f, {inequ}, {x, y,..}]同上
LinearProgramming[c,m,b] 解线性组合c.x在m.x>=b&&x>=0约束下的
最小值,x,b,c为向量,m为矩阵
LatticeReduce[{v1,v2...}] 向量组vi的极小无关组
数据处理:
Fit[data,funs,vars]用指定函数组对数据进行最小二乘拟和 data可以为{{x1,y1,..f1},{x2,y2,..f2}..}多维的情况 emp: Fit[{10.22,12,3.2,9.9}, {1, x, x^2,Sin[x]}, x] Interpolation[data]对数据进行差值,
data同上,另外还可以为{{x1,{f1,df11,df12}},{x2,{f2,.}..}指定各阶导数
InterpolationOrder默认为3次,可修改
ListInterpolation[array]对离散数据插值,array可为n维 ListInterpolation[array,{{xmin,xmax},{ymin,ymax},..}] FunctionInterpolation[expr,{x,xmin,xmax}, {y,ymin,ymax},..] 以对应expr[xi,yi]的为数据进行插值 Fourier[list] 对复数数据进行付氏变换 InverseFourier[list] 对复数数据进行付氏逆变换 Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值 Max[{x1,x2...},{y1,y2,...}]得到每个表中的最大值
Select[list, crit] 将表中使得crit为True的元素选择出来 Count[list, pattern] 将表中匹配模式pattern的元素的个数 Sort[list] 将表中元素按升序排列
Sort[list,p] 将表中元素按p[e1,e2]为True的顺序比较list 的任两个元素e1,e2,实际上Sort[list]中默认p=Greater 集合论:
Union[list1,list2..] 表listi的并集并排序 Intersection[list1,list2..] 表listi的交集并排序 Complement[listall,list1,list2...]从全集listall中对listi的差集
九、虚数函数
Re[expr] 复数表达式的实部
Im[expr] 复数表达式的虚部 Abs[expr] 复数表达式的模 Arg[expr] 复数表达式的辐角 Conjugate[expr] 复数表达式的共轭
十、数的头及模式及其他操作
Integer _Integer 整数 Real _Real 实数 Complex _Complex 复数 Rational_Rational 有理数 (*注:模式用在函数参数传递中,如MyFun[Para1_Integer,Para2_Real]
规定传入参数的类型,另外也可用来判断If[Head[a]==Real,...]*) IntegerDigits[n,b,len] 数字n以b近制的前len个码元 RealDigits[x,b,len] 类上
FromDigits[list] IntegerDigits的反函数
Rationalize[x,dx] 把实数x有理化成有理数,误差小于dx Chop[expr, delta] 将expr中小于delta的部分去掉,dx默认为10^-10
Accuracy[x] 给出x小数部分位数,对于Pi,E等为无限大 Precision[x] 给出x有效数字位数,对于Pi,E等为无限大 SetAccuracy[expr, n] 设置expr显示时的小数部分位数 SetPrecision[expr, n] 设置expr显示时的有效数字位数
十一、区间函数