matlab 有没有正则化命令?

matlab 有没有正则化命令?,第1张

MatLab归一化(正则化)函数

mapminmax

语法

[Y,PS] = mapminmax(YMIN,YMAX)

[Y,PS] = mapminmax(X,FP)

Y = mapminmax('apply',X,PS)

X = mapminmax('reverse',Y,PS)

dx_dy = mapminmax('dx',X,Y,PS)

dx_dy = mapminmax('dx',X,[],PS)

name = mapminmax('name')

fp = mapminmax('pdefaults')

names = mapminmax('pnames')

remconst('pcheck',FP)

描述

mapminmax将矩阵中每一行规范化到[YMIN,YMAX]范围内。

mapminmax(X,YMIN,YMAX)中参数YMIN,YMAX是可选的。 Matlab中文论坛

X为N*Q的矩阵或者每一元素为1*TS细胞元组的N*Q的矩阵。

YMIN Y中每个行的最小值(默认为-1)

YMAX Y中每个行的最大值(默认为1) book.iLoveMatlab.cn

返回值:

Y M*Q的矩阵(M=Q)

PS 处理过程的设置,实现对数据的一致处理

mapminmax(X,FP) 参数为一个结构:FP.ymin, FP.ymax

mapminmax('apply',X,PS) 对X根据PS中的配置做同样的规范化,返回Y

mapminmax('reverse',Y,PS) 根据规范化后的Y及PS中的配置反归一化,返回X

mapminmax('dx',X,Y,PS) returns the M x N x Q derivative of Y with respect to X.

mapminmax('dx',X,[],PS) returns the derivative, less efficiently.

mapminmax('name') 返回处理方法的歼前名字

mapminmax('pdefaults') 返回默认的处理参数的结构

mapminmax('pdesc')返回处理参数的描述

mapminmax('pcheck'虚肆,FP) 如果任意一个参数非法返回错误信息

举例

下面是如何规范化一个矩阵的过程,这个规范化将每一行的最小值与最大值映射到区间[-1,1]

x1 = [1 2 41 1 13 2 20 0 0]

[y1,PS] = mapminmax(x1)

下一步,对新的值应用同样的处理方法 book.iLoveMatlab.cn

x2 = [5 2 31 1 16 7 30 0 0]

y2 = mapminmax('apply',x2,PS)

将y1反归一化回x1

x1_again = mapminmax('reverse',y1,PS)

算法

mapminmax假设x的值为实数,差改轿并且每一行的元素值不相等

y = (ymax - ymin)*(x - xmin)/(xmax - xmin) + ymin

参考如下代码:

function [c,err,yc]=bisect(f,a,b,delta)

%二分法求根Matlab源代码

%f为所要求解的函数则姿晌,一般为匿名函数册镇、inline函数或者M文件

%a,b为求根区间

%delta为允许的误差精度

%c为近似解

%err为误差估计

%yc为函孙锋数f在c点的函数值

%EXAMPLE

%>>f=inline('x^4-x-1')bisect(f,1,2)

%by dynamic

%all rights preserved by www.matlabsky.cn

%2008.7.3

if nargin<4

delta=1e-6

end

ya=feval(f,a)

yb=feval(f,b)

if yb==0

c=b

return

elseif ya==0

c=a

return

end

if ya*yb>0

disp(['区间[' num2str(a) num2str(b) ']没有根,请重新选择求根区间'])

return

end

nn=1+round((log(b-a)-log(delta))/log(2))

for kk=1:nn

c=(a+b)/2

yc=feval(f,c)

if yc==0

a=c

b=c

break

elseif yb*yc>0

b=c

yb=yc

else

a=c

ya=yc

end

if (b-a)<delta

break

你的问题看得不是太懂,不过最小二乘法的函数是lsqcurvefit

使大消孝用方法是:

lsqcurvefit(fun,a0,x,y)

其中fun为函数原型

a0为最优化的初始桥卜值

x,y为原始滚稿输入输出数据向量


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12211109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存