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

2024-05-15

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

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

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

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

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

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

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

2. 如何用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)

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

MATLAB有好多方法来拟合函数,比如对数拟合、指数拟合、多项式拟合。建议你看一下讲解MATLAB函数拟合的书籍。就你给的数据看,多项式拟合(Polyfit)比较适合且比较简单。

如何用matlab数据拟合函数

4. 用matlab进行曲线拟合时,如何判断拟合的好坏

我也在做这方面的分析,对于曲线拟合,一是看相关系数如何越接近1越好,一般要求大于0.9,统计量的概率一般要小于0.05,所做的模型才可以使用,此外残差的置信区间应该包括0,但是对于拟合到什么程度,才算满意好像没有严格的标准来进行界定,希望其它高手进行解答一下

5. matlab 曲线拟合求函数的最佳参数时怎么确定参数的初始值

x=[2:16];
y=[6.42
8.2
9.58
9.5
9.7
10
9.93
9.99
10.49
10.59
10.6
10.8
10.6
10.9
10.76];
plot(x,y,'*');
b0=[10.5974438964979
0.928821089717906
-0.453];%待定参数初始值
fun=inline('b(1)*(1-b(2)*exp(b(3)*x))','b','x');
[b,r,j]=nlinfit(x,y,fun,b0);
b
R=sum(r.^2)%误差平方和

matlab 曲线拟合求函数的最佳参数时怎么确定参数的初始值

6. matlab中,关于多元函数的拟合matlab程序如何书写?(4自变量1因变量)

题主的(4自变量1因变量)多元函数的拟合matlab程序。可以用nlinfit非线性回归函数来做(也可以用lsqcurvefit函数)。实现代码:
x1=[0.55 0.65 0.65 0.65 0.65 0.55 0.55 0.55 0.65]';
x2=[1.6 1.6 1.4 1.6 1.4 1.4 1.6 1.4 1.4]';
x3=[20 20 20 10 10 20 20 20 20]';
x4=[10 10 10 10 10 10 12 12 12]';
Y=[1.848 3.145 3.337 3.022 3.188 1.97 1.63 1.621 2.534]';
X=[x1 x2 x3 x4];
n=length(x1);
a0=rand(1,5);
func=@(a,X)(a(1)+a(2)*X(:,1)+a(3)*X(:,2)+a(4)*X(:,3)+a(5)*X(:,4));
[a,r,J] = nlinfit(X,Y,func,a0);a
Y1=func(a,X);
[Y  Y1]
运行上述代码,可以得到
a1= -1.52778571412534;a2= 11.4823809522886;a3=  -0.359047619087202 ;a4= 0.00441190476147387;a5=-0.23363095238449
多元函数表达式,y=a1+a2*x1+a3*x2+a4*x3+a5*x4

nlinfit与lsqcurvefit两者区别并不太大,前者用回归的方法来求解,而后者用最小二乘法来求解,两者都可以用于非线性函数和线性函数。

7. 如何寻找最好的拟合曲线?以及matlab中Polyfit的用法?

【1】用cftool
>>cftool
回车,出现一个对话框。【1】Data输入相应的x,y,然后create data set;【2】fitting,选择提供的各种模型,逐个试试,总能找到残差最小的,相关系数最大的一种模型。

【2】给个例子。
clc;clear
x=-1:0.1:1
for k=1:length(x)
y(k)=x(k)^2+0.1*rand
end
[p,s]=polyfit(x,y,2)
s.R
plot(x,y,'o',x,polyval(p,x))

结果:
p =

    1.0072    0.0091    0.0439


s = 

        R: [3x3 double]
       df: 18
    normr: 0.1153


ans =

   -2.2509   -0.0000   -3.4208
         0    2.7749    0.0000
         0         0   -3.0492

s是个结构数组。
S contains fields for the triangular factor (R) from a QR decomposition of the Vandermonde matrix 【范德蒙特矩阵】of X, the degrees of freedom (df)【自由度】, and the norm of the residuals (normr)【范数】.

如何寻找最好的拟合曲线?以及matlab中Polyfit的用法?

8. 想用matlab确定拟合函数的最佳次数?

拟合效果一般是不看次数,是在于关注拟合误差,一般拟合的都是根据最小二乘法实现的,首先你可以根据拟合优度R^2判断拟合效果(越接近1越好),其次就是看拟合误差,至于怎么查看,你可以help polyfit调用拟合误差。祝好运
最新文章
热门文章
推荐阅读