1. 怎么用matlab进行数据的多元拟合
如何用matlab进行数据的多元函数拟合?
1、拟合前,我们应准备x1,x2,x3,。。。,y的一系列数据
2、将x1,x2,x3,。。。数据赋值给X变量
3、自定义多元函数拟合函数,如func=@(a,x)a(1)*x1+a(2)*x2+a(3)*x3+a(4),a为拟合系数
4、初定a的初始值,如a0=[0,0,0,0] %其个数必须与拟合显示对应
5、利用nlinfit或lsqcurvefit函数,求其拟合系数。如
[a,r,J]=nlinfit(X,y,func,a0)
这里,a为拟合系数;r为残差;J为Jacobian 矩阵
6、利用nlparci函数,求得拟合系数的置信区间,即
ci = nlparci(p,r,J)
7、计算拟合值,即 yi=func(a,x)
8、计算原数据与拟合数据的相关性,如R²≈1,则认为拟合是合理的。
2. 怎么用matlab进行非线性的多元函数拟合
方法一:抄
1、最常用的是多项式拟合,采用polyfit函数,在命令窗口输入自变量x和因变量y。
3. 请问Matlab的libsvm工具箱如何进行多元回归
这个问题其实非常地简单。
1、在Matlab里面先做这样一小段处理:
data = [
0.5 2 12 26 2 0.0476890000000000
0.5 3 14 28 4 0.0792965000000000
0.5 4 16 30 6 0.106723000000000
0.5 5 18 32 8 0.112500000000000
1 2 14 30 8 0.487650000000000
1 3 12 32 6 0.0955300000000000
1 4 18 26 4 0.336150000000000
1 5 16 28 2 0.202830000000000
1.5 2 16 32 4 1.18260000000000
1.5 3 12 30 2 0.273390000000000
1.5 4 18 28 8 0.784670200000000
1.5 5 14 26 6 0.487695000000000
2 2 18 28 6 1.41230000000000
2 3 16 26 8 0.934150000000000
2 4 14 32 2 0.181100000000000
2 5 12 30 4 1.08280000000000
];
x = data(:,1:end-1);
y = data(:,end);
% 上述处理即是将最后一列作为输出,前n-1列全部作为输入
2. 将 x, y 分别作为输入和输出放入svmtrain函数中训练
3. 再在svmpredict函数中输入x即可得出各个x对应的预测值y
注:这里的原理其实十分简单,在libsvm中其实也是将所有变量都默认为了向量(或矩阵),所以你只管输入的数据结构即可。
4. MATLAB中NETLAB工具箱如何实现预测多元数据是否需要用到其他的工具箱
数据准备:
我们以一组多项式数据为例,进行示例,假如多项式是y=4x^3+3x^2+2产生的数据,x取0到3之间间隔为0.3的数。具体数据如下:
调用工具箱:
关于如何调用工具箱我在其他经验中有详细的介绍,有兴趣的可以查看。
这里我们用命令cftool进行调用拟合工具箱,在MATLAB主窗口中输入 cftool 回车
可以看到如下拟合工具箱界面
拟合操作步骤:
首先我们将要拟合的数据选入到工具箱中,如下图,在红圈处,点击向下三角,分别将要拟合的x y 选入,然后点击右侧的最上方的下三角,然后选择polynomial( 多项式),下面的degree是阶数,也就是x的最高次数,选择不同的degree,在图的左下角是拟合的结果,包括拟合的系数以及方差相关系数等,右侧是数据点,以拟合曲线。
结果分析:
我们拟合的时候,一般情况下不知道要拟合的多项式是几阶的,我们一般调节degree都是从1逐渐增大,只要精度符合要求,就可以了,并不是精度越高越高。
拟合结果说明:
Linear model Poly3:
f(x) = p1*x^3 + p2*x^2 + p3*x + p4
Coefficients (with 95% confidence bounds):
p1 = 4 (4, 4)
p2 = 3 (3, 3)
p3 = 4.593e-15 (-3.266e-14, 4.185e-14)
p4 = 2 (2, 2)
Goodness of fit:
SSE: 2.386e-28
R-square: 1
Adjusted R-square: 1
RMSE: 5.839e-15
从以上可以看到最终拟合的y关于x的函数为:
f(x)=4*x^3+3*x^2+4.593e-15*x+2
我们可以看到一次项的系数为4.593e-15,实际上就是4.593*10^(-15),这个数量级完全可以认为是0,所以拟合的结果我们认为是:
f(x)=4*x^3+3*x^2+2
这里的方差SSE数量级为10的负28次方,相关系数 R-square=1,说明拟合的结果很好。
5. 如何向MATLAB中添加新工具箱
今天费了好大的劲终于将SVM_SteveGunn添加至我的matlab工具箱内,并且已能成功运行,现在把在添加以及运行中出现的各种问题罗列如下,并一一解决:
1、将下载的svm工具箱添加至matlab安装目录下
1、单独下载的工具箱
2、把新的工具箱拷贝到某个目录(我的是D:softmatlab2011b oolbox)。
注意:你要是添加的很多个m文件,那就把这些m文件直接拷到再下一层你想要的工具箱的文件夹里
例如,我要添加的是支持向量机工具箱,在刚才的文件夹下我已经有svm(支持向量机工具箱)文件夹了,但有的m文件还没有,我就把新的m文件统统拷到D:softmatlab2011b oolbox svm目录下了。如果你连某工具箱(你打算添加的)的文件夹都没有,那就把文件夹和文件一起拷到D:softmatlab2011b oolbox 下。
先把工具箱保存到MATLAB安装目录的根目录下面,然后运行matlab---->file---->set path---->add folder 然后把你的工具箱文件夹添加进去就可以了
3、在matlab的菜单file下面的set path把它( D:softmatlab2011b oolbox svm )加上。
4、 把路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。
记得一定要更新!我就是没更新,所以添加了路径,一运行还是不行。后来更新了才行。
2、在对svm工具箱进行使用时,发现了'qp.dll 不是有效的 Win32 应用程序 '
问题描述:
mex在不同windows OS下编译的结果,所以我们需要重新编译一下qp.dll
解决方案:
steve gunn 的包下面有一个optimiser 文件夹,把current Diretory目录改为optimiser目录,例如E:matlabProgramSVM_SteveGunnOptimiser,然后运行命令
>> mex -v qp.c pr_loqo.c
命令运行完毕后,你会发现原先的qp.dll变为qp.dll.old,还出现了qp.mexw32,我们把该文件改为qp.dll 复制到工具箱文件夹下。原先的工具箱文件qp.dll可以先改一下名字...
3、我在运行第二步时发现了‘D:SOFTMATLAB~3BINMEX.PL: Error: Compile of 'qp.c' failed. Error using mex (line 206)
Unable to complete successfully.
这个是因为编译器设置的问题,这里需要重新选择设置编译器,设置编译器的方法:
mex -setup(mex和-setup之间要有空格),然后我选择的VS2010,然后再继续运行步骤2就成功了。
6. matlab需要安装哪些工具箱
至于Matlab工具箱安装中涉及到了Matlab的搜索路径、工作目录、当前路径、用户路径等好多术语。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
(6)matlab工具箱多元扩展阅读:
编程环境:
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
7. matlab曲线拟合工具箱能做多元非线性回归分析吗只能写程序吗求方法!!
目前,Matlab还不能对多元非线性回归分析。只能用nlinfit函数,lsqcurvefit函数来拟合。其方回法:
x=[。。。];y=[。。。];
fun=inline('a(1)+a(2).*exp(x)','a','x');
a=lsqcurvefit(fun,[a01 a02],x,y)
或
a= nlinfit(x,y,fun,[a01 a02])
[a01 a02] 初值答
8. 如何使用matlab中的工具箱
如果是系统自带的,你可以直接用,如果是外部的或者是自编的你需要先把文件夹拷贝到tools文件夹下,再设置路径。x0dx0aMatlab常用工具箱介绍(英汉对照)x0dx0aMatlab Main Toolbox——matlab主工具箱x0dx0aControl System Toolbox——控制系统工具箱x0dx0aCommunication Toolbox——通讯工具箱x0dx0aFinancial Toolbox——财政金融工具箱x0dx0aSystem Identification Toolbox——系统辨识工具箱x0dx0aFuzzy Logic Toolbox——模糊逻辑工具箱x0dx0aHigher-Order Spectral Analysis Toolbox——高阶谱分析工具箱x0dx0aImage Processing Toolbox——图象处理工具箱x0dx0aLMI Control Toolbox——线性矩阵不等式工具箱x0dx0aModel predictive Control Toolbox——模型预测控制工具箱x0dx0aμ-Analysis and Synthesis Toolbox——μ分析工具箱x0dx0aNeural Network Toolbox——神经网络工具箱x0dx0aOptimization Toolbox——优化工具箱x0dx0aPartial Differential Toolbox——偏微分方程工具箱x0dx0aRobust Control Toolbox——鲁棒控制工具箱x0dx0aSignal Processing Toolbox——信号处理工具箱x0dx0aSpline Toolbox——样条工具箱x0dx0aStatistics Toolbox——统计工具箱x0dx0aSymbolic Math Toolbox——符号数学工具箱x0dx0aSimulink Toolbox——动态仿真工具箱x0dx0aSystem Identification Toolbox——系统辨识工具箱x0dx0aWavele Toolbox——小波工具箱x0dx0ax0dx0a例如:控制系统工具箱包含如下功能:x0dx0a连续系统设计和离散系统设计x0dx0a状态空间和传递函数以及模型转换x0dx0a时域响应(脉冲响应、阶跃响应、斜坡响应)x0dx0a频域响应(Bode图、Nyquist图)x0dx0a根轨迹、极点配置x0dx0ax0dx0a较为常见的matlab控制箱有:x0dx0ax0dx0a控制类:x0dx0ax0dx0a控制系统工具箱(control systems toolbox)x0dx0a系统识别工具箱(system identification toolbox)x0dx0a鲁棒控制工具箱(robust control toolbox)x0dx0a神经网络工具箱(neural network toolbox)x0dx0a频域系统识别工具箱(frequency domain system identification toolbox)x0dx0a模型预测控制工具箱(model predictive control toolbox)x0dx0a多变量频率设计工具箱(multivariable frequency design toolbox)x0dx0ax0dx0a信号处理类:x0dx0a信号处理工具箱(signal processing toolbox)x0dx0a滤波器设计工具箱(filter design toolbox)x0dx0a通信工具箱(communication toolbox)x0dx0a小波分析工具箱(wavelet toolbox)x0dx0a高阶谱分析工具箱(higher order spectral analysis toolbox)x0dx0ax0dx0a其它工具箱:x0dx0a统计工具箱(statistics toolbox)x0dx0a数学符号工具箱(symbolic math toolbox)x0dx0a定点工具箱(fixed-point toolbox)x0dx0a射频工具箱(RF toolbox)x0dx0ax0dx0a1990年,MathWorks软件公司为Matlab提供了新的控制系统模型化图形输入与仿真工具,并命名为Simulab,使得仿真软件进入了模型化图形组态阶段,1992年正式命名为Simulink,即simu(仿真)和link(连接)。matlab7.0里的simulink为6.0版本,matlab6.5里的simulink为5.0版本。x0dx0ax0dx0aMATLAB的SIMULINK子库是一个建模、分析各种物理和数学系统的软件,它用框图表示系统的各个环节,用带方向的连线表示各环节的输入输出关系。x0dx0a启动SIMULINK十分容易,只需在MATLAB的命令窗口键入“SIMULINK”命令,此时出现一个SIMULINK窗口,包含七个模型库,分别是信号源库、输出库、离散系统库、线性系统库、非线性系统库及扩展系统库。x0dx0a1.信号源库x0dx0a包括阶跃信号、正弦波、白噪声、时钟、常值、文件、信号发生器等各种信号源,其中信号发生器可产生正弦波、方波、锯齿波、随机信号等波形。x0dx0a2.输出库x0dx0a包括示波器仿真窗口、MATLAB工作区、文件等形式的输出。x0dx0a3.离散系统库x0dx0a包括五种标准模式:延迟,零-极点,滤波器,离散传递函数,离散状态空间。x0dx0a4.线性系统库x0dx0a提供七种标准模式:加法器、比例环节、积分环节、微分环节、传递函数、零-极点、状态空间。x0dx0a5.非线性系统库x0dx0a提供十三种常用标准模式:绝对值、乘法、函数、回环特性、死区特性、斜率、继电器特性、饱和特性、开关特性等。x0dx0a6.系统连接库包括输入、输出、多路转换等模块,用于连接其他模块。x0dx0a7.系统扩展库x0dx0a考虑到系统的复杂性,SIMULINK另提供十二种类型的扩展系统库,每一种又有多种模型供选择。x0dx0a使用时只要从各子库中取出模型,定义好模型参数,将各模型连接起来,然后设置系统参数,如仿真时间、仿真步长、计算方法等。SIMULINK提供了Euler、RungeKutta、Gear、Adams及专用于线性系统的LinSim算法,用户根据仿真要求选择适当的算法。x0dx0ax0dx0a当然,不同版本的Matlab/Simulink内容有所不同。x0dx0ax0dx0a另外,Simulink还提供了诸如航空航天、CDMA、DSP、机械、电力系统等专业模块库,给快速建模提供了很大的便利。
9. matlab 画图 多元线性回归分析
Matlab中统计工具箱用命令regress实现多元线性回归,用的方法是最小二乘法,基本用法是:
b=regress(Y,X)
Y,X是因变量和自变量,b为回归系数的估计值。
当然,也可以让结果更详细,这个你可以自己查看帮助文档 doc regress
这里使用:
[b,bint,r,rint,stats]=regress(Y,X)
其中,bint为回归系数的置信区间,r,rint为残差及其置信区间,stats为计算回归模型的统计量。
所以,设房屋销售均价为Y,其余四个变量分别为X1,X2,X3,X4
则代码如下:
clc
clear
x=[];
Y=[];
X=[ones(length(x),1),x];
[b,bint,r,rint,stats]=regress(Y,X,0.05)
X,Y的数据你填进去就可以了。
10. matlab遗传算法工具箱求解多元函数显示输入参数数目不足求解答,非常感谢
错误的主要原因是你写的函数有问题。函数应该这样来表示:
function y = Test1(x)
a=x(1);b=x(2);
y=a+b;
end
使用优化工具箱,选择ga,运行可以得到如下结果