matlab 神经网络 非线性拟合过程中出错 Input data size does not match net.inputs{1}.size.
作者&投稿:歹狭 (若有异议请与网页底部的电邮联系)
output需要进行转置才行,你的输入时75个例子,每个列子是4个元素,输出是75个结果,每个结果是4个元素是吧!
根据报错显示,估计是sim函数用法错误,提示输入的测试样本大小与训练样本大小不匹配,建议再仔细检查一下sim函数语法是否使用错误,或者测试样本维数是否不匹配。
学习神经网络可以上<神经网络之家>nnetinfo请帮忙点个赞
楼主的代码主要错在下面这段
%-------------------------------------------------------------------------%
pr(1:16,1)=0; %输入矢量的取值范围矩阵
pr(1:16,2)=1;
bpnet=newff(pr,[12 1],{'tansig', 'tansig'},'traingdx', 'learngdm');
%--------------------------------------------------%
如果你有n个变量,pr就是一个n行2列的矩阵,第i行代表第i个输入变量的范围(range),
按楼主的写法,有16个输入变量了.
楼主的输入变量应该是两个,所以应该写成:
pr=[0,1;0,1];
这样,
修改后的代码:
%-------------------------------------------------------------------------%
pr=[0,1;0,1];
bpnet=newff(pr,[12 1],{'tansig', 'tansig'},'traingdx', 'learngdm');
%--------------------------------------------------%
巴闹复方: 非线性拟合计算步骤:1、数据,x=[...];y=[...];2、自定义非线性拟合函数,fun=@(a,x)(log(1-a(1).*a(2).^x)-log(1-a(1).*a(2).^(x+1))./log(1-a(1)));3、初定x的初值,x0=[0.87038 0.0099273]; 4、用最小二乘法函数拟合系数,如lsqcurvefit()、nlinfit()或lsqnonlin()5、拟合前的y与拟合后的y1进行比较,即 y-y1 是否约等于06、或计算决定系数(相关系数),R²是否接近于1.
连云港市19293576973: 如何用matlab实现非线性最小二乘拟合 - ?
巴闹复方: 可以调用matlab中的polyfit函数,其数学原理是最小二乘法曲线拟合法. 格式如下: A=polyfit(xdata,ydata,n); 其中n表示多项式的最高阶数; xdata,ydata为将要拟合的数据;
连云港市19293576973: matlab多元非线性拟合程序怎么编写?? 比如:x1=[]; x2=[]; x3=[];y=[] - ?
巴闹复方: 非线性拟合需要迭代求值,最优化拟合方法有:牛顿-高斯法,levenberg-marquardt法等.
连云港市19293576973: matlab非线性拟合范例 - ?
巴闹复方: >> x=rand(10,1);y=rand(10,1);>> g=fittype('a*x+b*log(x)','coeff',{'a','b'}) g = General model: g(a,b,x) = a*x+b*log(x)>> fit(x,y,g) Warning: Start point not provided, choosing random start point.> In fit>handlewarn at 715 In fit at 315 ans = General model: ...
连云港市19293576973: matlab的非线性拟合 - ?
巴闹复方: f=inline('1./sqrt((c*x).^2+1)','c','x'); x=0:0.1:3 y=1./sqrt((0.5*x).^2+1); f=inline('1./sqrt((c*x).^2+1)','c','x'); [c,res]=lsqcurvefit(f,0.1,x,y) %0.1为迭代初值 不过个人觉得,由于你的表达己经知道,你经过一些变换就可以变成直接拟合了.对于你这个函数,经过变形一下就有:y^(-2)-1=c^2*x^2 你如果对y^(-2)-1与x^2用最小二乘法作直接似合的话,得到的斜率的开平方就是我们所要求的c
连云港市19293576973: 怎样在matlab里用非线性拟合? - ?
巴闹复方: 用拟合工具包吧,输入数据后然后输入cftool按回车,下面自己鼓捣一会,两分钟就搞定了
连云港市19293576973: 已知方程如何用MATLAB进行非线性拟合求模型参数 - ?
巴闹复方: 下面是相应的Matlab程序 function matexpfit(x,y) %指数曲线拟合及其图示 %x,y为已知数据点且均为行向量 %拟合曲线 A=[ones(size(x))',x'];B=log(y)';X=A\B; %A\B为矩阵除法求AX=B的解 fprintf('a=%f,b=%f\n',exp(X(1)),X(2)) fprintf('拟合...
连云港市19293576973: matlab怎样自定义拟合函数 - ?
巴闹复方: matlab中的非线性拟合函数nonlinfit具有强大的用自己定义的一个任意函数来拟合数据的功能.最常见的调用形式为 beta = nlinfit(x,y,modelfun,beta0) beta为待拟合的参数,x为自变量(矩阵),y为应变量(向量),modelfun为自定义的拟合函...
连云港市19293576973: 如何用matlab对四维数据进行非线性拟合 - ?
巴闹复方: 如你有数据和数据模型函数y=f(x1,x2,x3),可以用lsqcurvefit()或nlinfit()等拟合函数来求解其模型函数的系数. 实现方法如下: x1=[...] x2=[...] x3=[...] x=[x1 x2 x3] y=[...] func=@(a,x)数据模型函数表达式,如y=a1x1^2+a2x2^...
连云港市19293576973: matlab非线性拟合,并求SSE、s - quare - ?
巴闹复方: 对于问题用curving fitting工具是不能求得其拟合系数.可以通过变换,把非线性拟合问题转换成线性拟合问题. 运行结果: a=1,b=3,c=1 SSE(和方差)=31084,RMSE(均方根)=71.9768,R-square(确定系数)=1