如何用matlab数据拟合函数

2024-05-14

1. 如何用matlab数据拟合函数


如何用matlab数据拟合函数

2. 在matlab中如何根据拟合图得到函数?

在matlab中根据拟合图得到函数步骤如下:
1、常用的模型有多项式模型、幂函数模型、指数函数模型等。

2、设出函数,用命令“plot”绘出图像作为对比。

3、准备好散点数据,用命令“plot”绘出散点作为对比。

4、调用函数“fit”,参数包括散点数据和曲线拟合模型。

5、按回车键即可完成曲线拟合,p1、p2、p3为多项式前面的系数。

3. 如何利用matlab将数值拟合成函数

首先你得估计你的数据的走向 大致与那个函数像就用那个函数
matlab里有多项式拟合函数polyfit
t=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20;
ni=19 43 59 82 92 113 138 148 151 157 158 155 137 109 89 79 60 53 92 45;
                      t
目标函数Ni=10^(A-B*t)*加和Ni
                      i=1
求A、B的值
t=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20;
ni=19 43 59 82 92 113 138 148 151 157 158 155 137 109 89 79 60 53 92 45;
p=polyfit(t,log10(Ni),1)
%由目标函数知,log10(Ni)与t成一次线形回归,求出其系数
p =

    0.0058    1.8802
所以A=1.8802,B=-0.0058 
和自定义拟合函数lsqcurvefit
matlab 非线性的拟合有两个命令lsqcurvefit和lsqnonlin。这里用lsqcurvefit(lsqnonlin一样做),先介绍下lsqcurvefit(原理是最小二乘法)
已知数据点:xdata=(xdata1,xdata2,…,xdatan)
            ydata=(ydata1,ydata2,…,ydatan)
        lsqcurvefit用以求含参量x(向量)的向量值函数
F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T
中的参变量x(向量),使得1/2*∑[a+b*exp(-0.02*k*t(i))-c(i)]^2最小
1.先定义个函数fun
function y=fun(x,tdata)
y=x(1)*gamma(1-x(2))*gamma(x(2))*cos(x(2)*pi/2)*(x(3)*tdata).^x(2);
保存一下
2调用解题
clc
x0=[0.05 0.1 0.05];
tdata=[0.06283 0.08118 0.1048 0.13534 0.17486 0.22581 0.29166];
ydata=[0.02797 0.04477 0.06839 0.101 0.145 0.2 0.27];
x=lsqcurvefit('fun',x0,tdata,ydata)
结果x =0.1163    1.3353    4.1766 即分别是A,n,B

如何利用matlab将数值拟合成函数

4. 如何利用MATLAB对数据进行曲线拟合

您好,这样的:一、 单一变量的曲线逼近
Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线
性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。
假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。
1、在命令行输入数据:

》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908 280.0447 
296.204 311.5475]

》y=[5 10 15 20 25 30 35 40 45 50]

2、启动曲线拟合工具箱
》cftool

3、进入曲线拟合工具箱界面“Curve Fitting tool”
(1)点击“Data”按钮,弹出“Data”窗口;
(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set name”,然
后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数
据集的曲线图;
(3)点击“Fitting”按钮,弹出“Fitting”窗口;
(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Data set”下拉菜单
选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类
型有:
Custom Equations:用户自定义的函数类型 
Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x) 
Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) + b1*sin(x*w) 
Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2) 
Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-
preserving 
Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~ 
Power:幂逼近,有2种类型,a*x^b 、a*x^b + c 
Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th 
degree ~;此外,分子还包括constant型 
Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思) 
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x + c1) 
Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b) 
选择好所需的拟合曲线类型及其子类型,并进行相关设置:
——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改
待估计参数的上下限等参数;
——如果选Custom Equations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear 
Equations线性等式”和“General Equations构造等式”两种标签。
在本例中选Custom Equations,点击“New”按钮,选择“General Equations”标签,输入函
数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。

5. 怎样用matlab进行数据拟合求出函数关系式

x = [2,4,6.5,8,9,9.5,10,11,12.5,15];y = [125.18,195.8,265.21,332.56,322.93,372.63,363.29,374.56,430.18,459.29];p = polyfit(x,y,3);xx = min(x):.1:max(x);yy = polyval(p,xx);plot(x,y,'*');hold on;plot(xx,yy,'r');legend('原始数据','3阶拟合曲线',2);hold off;r = vpa(poly2sym(p),2);title(char(r));

怎样用matlab进行数据拟合求出函数关系式

6. 如何用MATLAB拟合曲线?

输入数据
command window中输入 cftool
选择Custum Equation,输入模型
File菜单中选择Generate Code,可自动生成相关代码。

7. 用MATLAB怎么实现曲线拟合?

MATLAB软件提供了基本的曲线拟合函数的命令.
1 多项式函数拟合:a=polyfit(xdata,ydata,n)
其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式 的系数
多项式在x处的值y可用下面程序计算.
y=polyval(a,x)
2 一般的曲线拟合:p=curvefit(‘Fun’,p0,xdata,ydata)
其中Fun表示函数Fun(p,data)的M函数文件,p0表示函数的初值.curvefit()命令的求解问题形式是
若要求解点x处的函数值可用程序f=Fun(p,x)计算.
例如已知函数形式 ,并且已知数据点 要确定四个未知参数a,b,c,d.
使用curvefit命令,数据输入 ;初值输 ;并且建立函数 的M文件(Fun.m).若定义 ,则输出
又如引例的求解,MATLAB程序:
t=[l:16];  %数据输人
y=[ 4 6.4 8 8.4 9.28 9.5 9.7 9.86 10.2 10.32 10.42 10.5 10.55 10.58 10.6] ;
plot(t,y,’o’) %画散点图
p=polyfit(t,y,2)  (二次多项式拟合)计算结果:p=-0.0445 1.0711 4.3252  %二次多项式的系数
由此得到某化合物的浓度y与时间t的拟合函数。

用MATLAB怎么实现曲线拟合?

8. 怎么用matlab对以下数据进行曲线拟合?

下面程序放到一个m文件里,运行即可:
function
a=f()
x=[0.25
0.5
0.75
1
1.5
2
2.5
3
3.5
4
4.5
5
6
7
8
9
10
11
12
13
14
15
16
];
y=[15
34
37.5
41
41
38.5
34
34
29
25.5
25
20.5
19
17.5
14
12.5
9
7.5
6
5
3.5
3.5
2];
a
=
nlinfit(x,y,@ff,[1;1]);
function
y=ff(a,x)
y=log(a(1))-a(2)*x;
拟合结果不太好,可能是你的函数形式问题
最新文章
热门文章
推荐阅读