用matlab进行离散数据的曲线拟合时 只能进行多项式拟合吗 如果已知拟合曲线的最高次数是分数 咋办?
看图像应该是正态分布
可以用工具箱做cftool,选择Gaussian,
number of stems选择4
得出
f(x) = a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2) + a3*exp(-((x-b3)/c3)^2) + a4*exp(-((x-b4)/c4)^2)
a1 = 4.258e+04 (2.817e+04, 5.7e+04)
b1 = 4.358e+04 (4.218e+04, 4.499e+04)
c1 = 1791 (189.8, 3392)
a2 = 4765 (-2297, 1.183e+04)
b2 = 5.37e+04 (5.104e+04, 5.637e+04)
c2 = 4062 (-3728, 1.185e+04)
a3 = 1.218e+04 (-4.117e+04, 6.553e+04)
b3 = 7.256e+04 (4.343e+04, 1.017e+05)
c3 = 2.602e+04 (-5.024e+04, 1.023e+05)
a4 = 1.25e+19 (-7.416e+23, 7.416e+23)
b4 = -4.532e+06 (-7.788e+09, 7.779e+09)
c4 = 7.715e+05 (-6.608e+08, 6.623e+08)
结果比较接近
最好是先看看数据的规律,从低次到高次不断的试验,当前几项系数为零时,就可以停止了,一般不会超过6次的,最好能传上数据来看看
基本上只要你知道函数形式都可以拟合的。matlab有一个cftool工具箱,很方便。当然用函数也比较不错。例如用lsqcurvefit。x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)
例如:拟合y=a*e^(b*x)。拟合a,b
定义拟合函数
function F = myfun(x,xdata)
F = x(1)*exp(x(2)*xdata);
在命令窗口输入:
xdata = [0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 74.6 81.3];
ydata = [455.2 428.6 124.1 67.3 43.2 28.1 13.1 -0.4 -1.3 -1.5];
x0 = [100; -1] % 初始点
[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata);
得:
x =
498.8309 -0.1013%即a,b的值
resnorm =
9.5049
要用matlab对一组离散数据(5000个)进行定积分求值,积分范围是1000到20...
clc;clear%复化cotes公式求积分值%[a,b]为积分区间%n是等分区间份数load('C:\\Users\\baiyanglong\\Desktop\\n.mat')a=1000;b=1500;C=0;h=4;n=(b-a)\/h;for i=1:(n-1) x0=a+i*h; C=C+14*nlp(x0);endfor k=0:(n-1) x0=a+h*k; s=32*nlp(x0+h*1\/4)+...
两个点之间的距离 matlab
a=[3 4 8 9 3 4];b=[2];s=abs(a-b)s = 1 2 6 7 1 2
matlab中如何表示一个离散信号
在用MATLAB表示离散序列并将其可视化时,我们要注意一下几点:第一,与连续时间信号不同,离散时间信号无法用符号运算来表示;第二,由于在MATLAB中,矩形的元素是有限的,因此,MATLAB无法表示无限序列;第三,在绘制离散信号波形时,要使用专门绘制离散数据的stem命令,而不是plot命令。一.离散时间序列卷积...
如何用MATLAB传递函数离散化
把传递函数离散化 dsys=c2d(sys,ts,'method');传函离散 [num,den]=tfdata(dsys,'v');离散后提取分子分母 这里面的method有好多种,zoh 零阶保持,假设控制输入在采样周期内为常值,为默认值。foh 一阶保持器,假设控制输入在采样周期内为线性。tustin 采用双线性逼近。method用tustin替代 matched ...
如何利用matlab求点到直线距离
以下为简单的MATLAB代码,输入为空间点P,和直线上的两点:function [ d ] = DisPtToLine( P, CorPts ) %UNTITLED Summary of this function goes here % Detailed explanation goes here l = [ CorPts(1) - CorPts(4), CorPts(2) - CorPts(5), CorPts(3) - CorPts(6) ]; pl = [ P(1) -...
matlab怎样实现离散数据的傅里叶变换?
每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量,它的相位是该频率的初相位,matlab以cos为底的,若信号时正弦形式sin(t),则变成cos(t-pi\/2)即可。采样频率Fs,被N-1个点平均分成N等份,每个点的频率依次增加。为了方便进行FFT运算,通常N取大于信号长度L的2的整数次方。例如...
MATLAB离散最优控制程序应该怎么编?
1、step的调用方式有问题,完全没有体现出这是一个离散系统。考虑:step(ss(Ac,Bc,Cc,Dc,1))2、【k1=k(1);Ac=A-B*k;Bc=B*k1;Cc=C;Dc=D;】Bc和Cc的计算有问题,应该是Bc=B, Cc=C-D*k。3、LQR最优调节器与Q、R的选择关系很大,所谓的最优只是对于特定的Q、R而言的。4、可以...
用MATLAB怎么实现离散信号的卷积啊 编程?
MATLAB图像处理工具箱提供了基于卷积的图象滤波函数filter2,filter2的语法格式为:Y = filter2(h,X)其中Y = filter2(h,X)返回图像X经算子h滤波后的结果,默认返回图像Y与输入图像X大小相同。例如:其实filter2和conv2是等价的。MATLAB在计算filter2时先将卷积核旋转180度,再调用conv2函数进行计算。
matlab对离散数据进行拟合
看你的数据不多啊,我的建议还是把数据分段,然后写三个拟合函数这样呗
matlab中如何绘制大量的离散点
假设你的文件名为data.txt 如果不是的话,下面第一行至第四行的data改成相应的文件名。load data.txt x=data(1:end,1);y=data(1:end,2);z=data(1:end,3);N=50; %图如果做出来太密,你这个值就改小一些 xmin=min(x);xmax=max(x);dx=(xmax-xmin)\/N;ymin=min(y);ymax=...
苏娄天晴: % 方法1 T = [1:100];D = [1:100]; K = rand(1,100);% 插值 [X,Y,Z]=griddata(T,D,K,linspace(min(T),max(T))',linspace(min(D),max(D)),'v4'); figure,surf(X,Y,Z);%方法2 x = [1:100];y = [1:100]; z = rand(1,100); xlin = linspace(min(x),max(x),33); ylin = ...
旺苍县13589712533: matlAB 三维离散数据的曲面拟合和具体方程怎么弄? - ?
苏娄天晴: matlab中的Curve Fitting Tool工具箱可以根据你输入函数表达式拟合二维或三维离散数据!
旺苍县13589712533: matlab下离散数据二维曲面拟合方法 - ?
苏娄天晴: Y=z X=[x.^2 y.^2 xy x y 1] b=regress(Y,X)
旺苍县13589712533: matlab里怎样怎样把数据量庞大的离散点拟合成光滑曲线 - ?
苏娄天晴: 有很多种拟合方法啊,像多项式拟合polyfit,插值这些,建议到图书馆借本书来看.
旺苍县13589712533: 额,我想知怎样用MATLAB拟合数据和曲线 - ?
苏娄天晴: 你好 我用的MATLAB R2010B版本 我以前也碰到过这个问题 在左下角 start-toolboxs-curving fitting-第一个 这个工具箱可以对离散点进行常用函数的拟合,你导入数据以后点fitting就可以选择函数进行拟合.希望对你有帮助
旺苍县13589712533: 请问:MATLAB中如何在一个图中显示多条离散曲线 - ?
苏娄天晴: MATLAB2维一些离散知数据画出的曲线图, MATLAB中把离散的一组数据拟合成曲线的一种有效方法现在需要从这 em>图片中 道,如果调用plot函数对于离散数据绘图,那么系统默认把若干离散的数据点用是用连续曲线近似地刻画或比拟平面版上离散点组所表示的坐 间的函数关系的一种权第一步把所给的数据画在一个坐 上,通过图表来判断其数学形式;第二步决定
旺苍县13589712533: 如何使用matlab 2014a 做数据曲线拟合 - ?
苏娄天晴: 方法一、用数据拟合工具箱 Curve Fitting Tool1. 打开CFTOOL工具箱.在matlab的command window中输入cftool,即可进入数据拟合工具箱.2. 输入两组向量x,y.首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据...
旺苍县13589712533: 如何用matlab把离散的点连接成曲线比如x=[0.31,0.2,0.5,0.3,0.3,0.2,0.5,0.4]; y=[219,216,217,217,218,21 - ?
苏娄天晴: x=[0.31,0.2,0.5,0.3,0.3,0.2,0.5,0.4];y=[219,216,217,217,218,21; plot(x,y)
旺苍县13589712533: 在matlab中如何将一些离散的二维坐标点用曲线显示出来? - ?
苏娄天晴: x=[154,206,221,262] %横坐标 y=[470,418,418,388] %纵坐标 p=polyfit(x,y,2) %用二次函数拟合 X=sym('X') %定义X为自变量 Y=poly2sym(p,'X') %Y是关于X的函数 ezplot(Y,[150,270]) %在离散点的区间内画出图像
旺苍县13589712533: 求matlab高手看看怎么拟合离散点(用3次样条曲线拟合) - ?
苏娄天晴: [a,b,c]polyfit(x,y,3)