matlab中怎么得到基本拟合的曲线方程式
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 11:12:50
多项式函数拟合:a=polyfit(xdata,ydata,n)其中n表示多项式的最高阶数,xdata,ydata为要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式y=a(1)*x^n+…+
非性线拟合一般是根据数据产生的特点来的(就是说数据产生符合什么分布函数)对你这样的应用,我个人感觉使用线性拟合简单易行:如下给定数据的拟合曲线:x=[0.5,1.0,1.5,2.0,2.5,3.0];
x=y=f=@(c,x)1./(c(1)*x+c(2));%拟合方程c0=[15];%系数初值t=lsqcurvefit(f,c0,x,y)%求得系数再问:��������
t=[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=[30,68,75,82,82,77,68,68,
egress这个也是
用函数lsqnonlin进行最小二乘拟合functionf=myfunc(c,x,y)f=y-c(1)+c(2)./x;return保存为M文件.然后在命令行下输入:x=[你的x数组]y=[你的y数组
拟合的时候把y当作自变量,x当作未知数这样拟合出来的函数是x=f(y)知道y求x就容易了
http://www.baisi.net/thread-2402447-1-1.html我看了这里的帮助大概了解了,你可以看有帮助没
x1=[1.51.5222.52.52.52.53333];x2=[0.050.10.150.20.050.10.150.20.050.10.150.2];y=[10.990.980.970.980.
你这个曲线拟合本来就不是简单的事情.对于这种指数函数的线性组合,一般很难找到合适的变换使其变成多项式.如果你能找到这样的变换,那么问题就简单许多.如果不能,那么就需要Bayesianinference
好像没有吧要算的话就把函数转化为x^2/a+y^2/b=1转化成b*x^2+a*y^2=a*b求超定方程组就可以了吧
你的函数就是z=ax+by+c,然后用最小二乘法确定系数abc即可
%nlinfit非线性参数拟合clc;clear;x=[1,2,3,4,5,6,7,8,9,10];y=[7,3,6,8,2,4,10,16,2,8];myfunc=inline('beta(1)*s
程序是A=[0000004500084005000482610055001444340060003557600065091536940007002077241000007511143095691000
plot可以画多条曲线在一个图上主要把拟合的数据也算出来,一起画就好了
function[a,resnorm]=sphere_fit(a0,data)%对数据进行球拟合,a0是初始的球心和半径%data是x、y、z的数据矩阵,第一行是x,第二行是y,第三行是z%a是拟合后
在拟合函数过程中,不管用nlinfit()函数还是用lsqcurvefit()函数去拟合非线性函数,都要先确定一组初始值,初始值选择好与坏,直接影响其拟合精度(即相关系数).但初始值选择实际是有一定的
当然可以按你所说的求解,关键是看你建立的回归模型的意义.还有,从回归原理看,一般认为回归方程要有常数项,这样才能保证回归的有效性.比如,如果没有ones(4,1)这一列,matlab会提示:R-squ
1、简单的函数拟合,初值可以任意给定2、如果待拟合函数较复杂,需要根据经验或其他条件尽可能的给出较接近真实值的初值3、别无他法
lz看到楼上有两位大神回复了,我是不想参合,但由于matlab确实有这样的函数,而不是向楼上这种disp(['y='num2str(a(1))'*x'num2str(a(2))]),手动显示,不够智能