matlab非线性拟合函数(matlab拟合以下非线性函数有什么拟合函数吗)
本文目录
- matlab拟合以下非线性函数有什么拟合函数吗
- matlab 多元非线性函数拟合
- matlab求助:
- matlab非线性拟合问题
- matlab求非线性拟合
- matlab非线性拟合
- 如何用matlab对四维数据进行非线性拟合
- matlab拟合非线性函数
- matlab二元非线性拟合
matlab拟合以下非线性函数有什么拟合函数吗
对于非线性函数,可以用nlinfit( )函数来拟合,其一般格式 = nlinfit(x,y,func,x0);针对你的问题,可以通过下列方式func=inline(’0.826^2-a(1).^2*sin(a(2)+(t-1)*pi/10))^0.5-a(1).*cos(a(2)+(t-1)*pi/10’,’a’,’t’)式中:a=a(1),k=a(2)t0= = nlinfit(t,y,func,t0);
matlab 多元非线性函数拟合
因为这个函数的形式比较特殊,对其两边取对数后得到log(y)=log(a)+b*log(x1)+c*log(x2)于是立即就转换为了线性拟合\log(y);%就这一句话就搞定了a=exp(p(1)),b=p(2),c=p(3)%这就是拟合后的参数值y%这是采样点y的值a*x1.^b.*x2.^c%这是拟合后在采样点得到的值,可以和y比较一下,很接近。
matlab求助:
MATLAB非线性拟合函数无非有两种nlinfit和lsqcurvefit函数。详细查看帮助!下面用lsqcurvefit函数进行拟合!clearf=@(p,c)71.97-p(1)*log(1+p(2)*c);%拟合公式p(1)为P1,p(2)为Kc=’;Y=’;%我把你的数据转置为行向量了p0=;% 设置初值p=lsqcurvefit(f,p0,c,Y)%运行后得到p = 13.3450 49.9935%故拟合参数P1为13.3450,K为49.9935,Y=71.97-13.3450*ln(1+49.9935*c)希望我的回答能解决你的问题!
matlab非线性拟合问题
d. 非线性曲线拟合利用MATLAB的内建函数函数名 描述FMINBND 只解决单变量固定区域的最小值问题FMINSEARCH 多变量无约束非线性最小化问题(Nelder-Mead 方法)。下面给出一个小例子展示一下如何利用FMINSEARCH1. 首先生成数据》》 t=0:.1:10; 》》 t=t(:); 》》 Data=40*exp(-.5*t)+rand(size(t)); % 将数据加上随机噪声2.写一个m文件,以曲线参数作为输入,以拟合误差作为输出 function sse=myfit(params,Input,Actural_Output)A=params(1);lamda=params(2);Fitted_Curve=A.*exp(-lamda*Input);Error_Vector=Fitted_Curve-Actural_Output;%当曲线拟合的时候,一个典型的质量评价标准就是误差平方和sse=sum(Error_Vector.^2);%当然,也可以将sse写作:sse=Error_Vector(:)*Error_Vector(:);3. 调用FMINSEARCH》》 Strarting=rand(1,2);》》 options=optimset(’Display’,’iter’);》》 Estimates=fiminsearch(@myfit,Strarting,options,t,Data);》》 plot(t,Data,’*’);》》 hold on》》 plot(t,Estimates(1)*exp(-Estimates(2)*t),’r’); Estimates将是一个包含了对原数据集进行估计的参数值的向量。 附图见后面:FMINSEARCH通常能够用来解决不连续情况,特别是如果他们不出现在解的附近的时候。它得到的通常也是局部解。FMINSEARCH只能够最小化实数值(也就是说,解的域必须只能包括实数,函数的输出只能够为实数值)。当感兴趣的是复数变量的域的时候,他们必须被分割为实部与虚部。※2.MATLAB的FIGURE窗口:最基本的拟合界面与数据统计工具MATLAB通过基本的拟合界面也支持基本曲线拟合。利用这个界面,你可以快速地在简单易用的环境中实现许多基本的曲线拟合。这个界面可以实现以下功能:a. 通过比样条插值(spline interpolant)、hermite 插值、或者是高达10阶的多项式插值实现数据的拟合;b. 对给定数据同时实现多样插值的绘制;c. 绘制残差图;d. 检查拟合结果的残差的数值;e. 通过内插值或者外推插值评价一个拟合结果;f. 对拟合结果和残差的模进行图形绘制;g. 将拟合结果保存入MATLAB工作空间。开发你的拟合应用的时候,你可以通过基本拟合(Basic Fitting)界面,也可以通过命令行函数,也可以同时作用。你可以通过基本拟合界面只能够实现2-D数据的拟合。然而,如果你用subplot绘制多个数据集,只要有至少一个数据集是2D的,那么就可以用基本拟合界面。可以通过如下步骤激活基本拟合界面:1. 绘制数据;2. 从figure窗口的 Tools 菜单条下面选择Basic Fitting 菜单项;有关Basic Fitting界面的更多信息,请查阅MATLAB帮助文档的相应部分。注意:对于HP,IBM以及SGI平台,MATLAB6.0(R12.0)以及MATLAB6.1(R12.1)的基本拟合界面不受支持。数据统计界面可以用来对图形中的每个数据集进行统计量的计算。可以通过如下步骤将数据统计界面激活:1. 制数据;2. 从figure窗口的 Tools 菜单条下面选择Data Statistics 菜单项; 关于采用matlab进行指定非线性方程拟合的问题(2) 一。优化工具箱函数LSQNONLIN 解决非线性最小二乘法问题,包括非线性数据拟合问题LSQCURVEFIT 解决非线性数据拟合问题下面给出利用这两个函数的例子:LSQNONLIN:利用这个函数最小化连续函数只能够找到句柄解。下面的例子说明利用LSQNONLIN函数用下面的函数进行拟合: f = A + B exp(C*x)+D*exp(E*x)对数据集x与y进行拟合,其中y是在给定x的情况下的期望输出(可以是方程给出数组,也可以是单独数据组成的数组)。为了解决这个问题,先建立下面的名为 fit_simp.m的函数,它利用数据x与y,将他们作为优化输入参数传递给LSQNONLIN。利用给定的数据x计算f的值,再与原始数据y进行比较。经验值与实际计算出的值之间的差异作为输出值返回。LSQNOLIN函数就是最小化这些差的平方和。function diff = fit_simp(x,X,Y)% 此函数被LSQNONLIN调用% x 是包含等式系数的向量% X 与 Y 是作为操作数传递给lsnonlinA = x(1);B = x(2);C = x(3);D = x(4);E = x(5);diff = A + B.*exp(C.*X)+D.*exp(E.*X)-Y;下面的脚本是利用上面定义的fit_simp.m函数的一个例子:% 定义你打算拟合的数据集合》》 X=0:.01:.5;》》 Y=2.0.*exp(5.0.*X)+3.0.*exp(2.5.*X)+1.5.*rand(size(X));% 初始化方程系数》》 X0=’;% 设置用中等模式(memdium-scale)算法》》 options=optimset(’Largescale’,’off’);% 通过调用LSQNONLIN重现计算新的系数》》 x=lsqnonlin(@fit_simp,X0,,options,X,Y);% 调用LSQNONLIN结果输出表明拟合是成功的Optimization terminated successfully:Gradient in the search direction less than tolFunGradient less than 10*(tolFun+tolX)% 绘制原始数据与新的计算的数据》》 Y_new=x(1)+x(2).*exp(x(3).*X)+x(4).*exp(x(5).*X);》》 plot(X,Y,’+r’,X,Y_new,’b’);※注意:LSQNONLIN 只可以处理实数变量。在处理包括复数变量的实例的拟合的时候,数据集应该被切分成实数与虚数部分。下面给出一个例子演示如何对复数参数进行最小二乘拟合。为了拟合复数变量,你需要将复数分解为实数部分与虚数部分,然后把他们传递到函数中去,这个函数被LEASTSQ作为单个输入调用。首先,将复数分解为实部与虚部两个向量。其次,将这两个向量理解成诸如第一部分是实部、第二部分是虚部。在MATLAB函数中,重新装配复数数据,并用你想拟合的复数方程计算。将输出向量分解实部与虚部,将这两部分连接为一个单一的输出向量传递回LEASTSQ。下面,给出一个例子演示如何根据两个复数指数拟合实数X与Y。建立方程:function zero = fit2(x,X,Y)% 根据输入x重建复数输入cmpx = x(1:4)+i.*x(5:8);% 利用复数计算函数zerocomp = cmpx(1).*exp(cmpx(2).*X) + cmpx(3).* exp(cmpx(4).*X)-Y;% 将结果转换成一个列向量% 其中第一部分是实部,第二部分是虚部numx = length(X); % 实部长度zero=real(zerocomp); %实部zero(numx+1:2*numx)=imag(zerocomp); % 虚部 为了评价计算这个函数,需要X与Y数据集。LSQNONLIN将根据它拟合出下面方程中的参数a,b,c与d: Y = a*exp(b*X)+c*exp(d*X);其中,a,b,c与d是复数变量。》》 X=0:.1:5;》》 Y=sin(X);》》 Y=Y+.1*rand(size(Y))-.05;》》 cmpx0=;》》 x0(1:4)=real(cmpx0);》》 x0(5:8)=imag(cmpx0);》》 x=leastsq(@fit2,x0,,X,Y);》》 cmpx=x(1:4)+i.*x(5:8);》》 Y1=real(cmpx(1).*exp(cmpx(2).*X)+cmpx(3).*exp(cmpx(4).*X));》》 plot(X,Y1,’r’);》》 hold on》》 plot(X,Y,’+’);二。LSQCURVEFIT:利用此函数可以在最小二乘意义上解决非线性曲线拟合(数据拟合)问题。也就是说,给定输入数据xdata,以及观测的输出数据ydata,找到系数x,使得函数F(x,xdata)能够最好的拟合向量值。LSQCURVEFIT利用与LSQNONLIN相同的算法。它的目的在于专门为数据拟合问题提供一个接口。在拟合的时候,2维、3维或者N维参数拟合是没有什么差别的。下面给出一个3维参数拟合的例子。待拟合函数是: z = a1*y.*x..^2+a2*sin(x)+a3*y.^3;建立的myfun.m的函数如下:function F = myfun(a, data);x = data(1,:);y = data(2,:);F= a(1)*y.*x.^2+a(2)*sin(x)+a(3)*y.^3;下面的脚本展示了这么利用上面的函数: 》》 xdata= ;》》 ydata= ;》》 zdata= ;》》 data=;》》 a0= ; % 初识揣测》》 = lsqcurvefit(@myfun,a0,data,zdata)Maximum number of function evaluations exceeded;increase options.MaxFunEvalsa = 0.0088 -34.2886 -0.0000resnorm = 2.2636e+004》》 format long》》 aa = 0.00881645527493 -34.28862491919983 -0.00000655131499》》 option=optimset(’MaxFunEvals’,800);》》 , option)Optimization terminated successfully:Relative function value changing by less than OPTIONS.TolFuna = 0.00740965259653 -20.21201417111138 -0.00000502014964resnorm = 2.195886958305428e+004
matlab求非线性拟合
在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有离散参数非线性拟合的方法第一步:得到散点数据根据你的实际问题得到一系列的散点例如:x=’;%加上一撇表示对矩阵的转置y=’;第二步:确定函数模型根据上述的实际散点确定应该使用什么样的曲线,或者说是想要模拟的曲线t=’;tt=’; plot(t,tt,’.’);%得到散点图散点图如下所示:我们已知现存的几种典型的(也是绝大多数情况下的函数模型)选定一个与散点图像相匹配的函数模型,在此例中我们选择典型的S型曲线模型y= 1/(a+b*e^(-x)),其实此处的函数模型可以任意。第三步:确定选用函数模型中的未知参数 首先了解一下matlab中的inline函数,inline是用来定义内联函数的比如说:y=inline(’sin(x)’,’x’) %第一个参数是表达式,第二个参数是函数变量y(0) %计算sin(0)的值y(pi) %计算sin(pi)的值q=quad(y,0,1); %计算sin(x) 在0到1上的积分 之后,我们在代码中进行函数的定义x=’;y=’; my
matlab非线性拟合
x^a+y^b=1的最小二乘法拟合,可以用matlab的nlinfit函数来拟合。实现代码clcx=; %已知数据n=length(x);X=;y=ones(1,n);func=@(a,x)1-x(1)^a(1)-x(2)^a(2);X0=;a= nlinfit(X,y,func,X0);b=a(2),a=a(1)
如何用matlab对四维数据进行非线性拟合
如你有数据和数据模型函数y=f(x1,x2,x3),可以用lsqcurvefit()或nlinfit()等拟合函数来求解其模型函数的系数。实现方法如下:x1=x2=x3=x=y=func=@(a,x)数据模型函数表达式,如y=a1x1^2+a2x2^2+a3x3^2+a4b= %初值,自己定值a=lsqcurvefit(func,b,x,y) %a——模型函数的系数,a可以是a1,a2,a3,...或a = nlinfit(x,y,func,b)y1=func(a,x) %计算拟合后函数的y值 %比较原始数据y与拟合数据y1的 对比
matlab拟合非线性函数
线性模型、非线性模型是以待优化参数W为参考(而不是看X)。y = w’ * x (’表示转置)描述的是线性模型。题目中要拟合的函数是:y = w0 + w1 cos a + ... + wn cosna,它同样符合y = w’ * x,其中x = (1 cosa ... cosna)’。设x构成的集合是X,y构成的集合是Y,可依据最小二乘法求出W = (XX’)^-1 *X*Y。所以程序是:n=3;%拟合到cos3xx=linspace(0,2*pi,100);%数据集y=1+2*cos(x)-3*cos(3*x)+rand(1,length(x));%加噪声X=cos((0:n)’*x);Y=y’;W=(X*X’)^-1*X*Y; %求解系数plot(x,y,’o’,x,W’*cos((0:n)’*x)); %画图查看PS:MATLAB问题提问请设置问题分类为编程。
matlab二元非线性拟合
直接把下面的代码复制到M文件器中保存运行即可。需要说明的是,拟合问题和初值关系很大,我这里给的初值是经过多次调整得到的。目前得到的结果是结果应该还有可能进一步提高,例如可以修改优化算法设置的TolFun参数为更小的值。function zd499535361% x0 = ;x0 = ;opt = optimset(’MaxFunEvals’, 1E4, ’MaxIter’, 5E4);x = lsqcurvefit(@f,x0,,opt);a = x(1)b = x(2)c = x(3)d = x(4)% 绘图比较拟合结果和原始数据z = a*X.^b + c*Y.^d;plot(Z, ’.-’)hold onplot(z, ’ro’)function F = f(x, xdata)a = x(1);b = x(2);c = x(3);d = x(4);x = xdata(1, :);y = xdata(2, :);F = a*x.^b + c*y.^d;
本文相关文章:
cesium的datasource(Cesium快速上手9-Camera和Scene中的其他函数使用)
2024年9月9日 18:01
day函数是什么意思(函数DAY($A$3)*4-4 代表什么意思)
2024年9月8日 10:45
递归算法解决八皇后问题(用递归函数设计八皇后问题的回溯算法C++代码)
2024年9月8日 09:01
c语言lseek函数的用法(问一个关于lseek函数的效率问题)
2024年9月7日 14:45
python递归函数考试题(python题目:要求用递归、递推和Lambda三种方式编写power(n,x)函数)
2024年9月6日 03:40
c语言中函数abs 和 fabs有什么区别?C语言中fabs表示什么意思
2024年9月4日 08:10
matlablength函数用法(如何使用MATLAB作出如下函数ns关于x变化的函数,x的取值范围为0到10)
2024年9月1日 04:40
php截取字符串以特定的字符分割(PHP怎么用substr函数截取字符串中的某部分)
2024年9月1日 03:45
small函数相反的函数(excel中small函数有什么作用)
2024年9月1日 01:40
easyx安装教程(【C语言】如何在VC++6.0中使用TC2.0特有的函数呢)
2024年8月31日 06:40
更多文章:
新笑傲江湖手游官网(新笑傲江湖应用商店下载的再去下载官网渠道号会变吗)
2024年7月24日 12:33
pscs6激活账户和序列号免费(如何激活photoshop cs6)
2024年8月18日 22:30
懂车帝汽车报价(为什么懂车帝里面的汽车价格那么低,有人真的能用它说的价格买到车吗)
2024年6月2日 06:37
微信怎么切换深色模式(微信怎么开启深色模式 微信开启深色模式的方法)
2024年7月24日 09:41
愤怒的小鸟手机版(安卓手机怎么把愤怒的小鸟2改成无限钻石版本)
2024年7月28日 04:40
微信小程序开发工具(微信小程序怎么开发,需要使用到什么开发工具)
2024年6月18日 16:16
极速11q和极速11d的区别?爱玛电动车极速-11换个后轮锁要多少钱
2024年7月24日 12:58
qq飞车新版本(QQ飞车出现你已登录过新版本客服端,请使用新版本登录,咋处理)
2024年6月5日 23:05
侠盗猎车手圣安地列斯作弊版下载(苹果手机版侠盗猎车手圣安地列斯有作弊器吗)
2024年8月5日 14:01