MATLAB曲线非线性拟合 1:给出五组数据 x=[100 200 400 600 800];y=[40 60 80 120 150];想要拟合的线性是 y=a+b*x^m,其中规定了m值的范围在1到2之间,用MATLAB里什么函数能求出系数a,b,2:在这个已经拟合出来
来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 00:54:26
MATLAB曲线非线性拟合 1:给出五组数据 x=[100 200 400 600 800];y=[40 60 80 120 150];想要拟合的线性是 y=a+b*x^m,其中规定了m值的范围在1到2之间,用MATLAB里什么函数能求出系数a,b,2:在这个已经拟合出来
MATLAB曲线非线性拟合
1:给出五组数据 x=[100 200 400 600 800];y=[40 60 80 120 150];想要拟合的线性是 y=a+b*x^m,其中规定了m值的范围在1到2之间,用MATLAB里什么函数能求出系数a,b,2:在这个已经拟合出来的曲线上用拉格朗日法进行插值,求x=150 250 300 500 700时的y值~各位能不能把程序写出来啊!最好有图有程序啊~截个图什么的啊,麻烦发到hanhanhan2406@sina.感激不尽!拜谢~主要是第一问啊~
MATLAB曲线非线性拟合 1:给出五组数据 x=[100 200 400 600 800];y=[40 60 80 120 150];想要拟合的线性是 y=a+b*x^m,其中规定了m值的范围在1到2之间,用MATLAB里什么函数能求出系数a,b,2:在这个已经拟合出来
% 1 非线性拟合warning offx=[100 200 400 600 800]';y=[40 60 80 120 150]';f = fittype('a+b*x^m');options = fitoptions('a+b*x^m');options.Lower = [-Inf -Inf 1 ]; options.Upper = [Inf Inf 2 ]; fresult = fit(x,y,f,options)x1=[100:0.1:800];plot( x1, fresult(x1), x, y, '* ') % 拟合图 原始数据title('拟合图 原始数据')% 2 用拉格朗日法进行插值x=[100 200 400 600 800];y=[40 60 80 120 150];x0=[150 250 300 500 700];syms tn=length(x);f=0.0;for(i=1:n) l=y(i); for(j=1:i-1) l=l*(t-x(j))/(x(i)-x(j)); end for(j=i+1:n) l = l * (t-x(j))/(x(i)-x(j)); end f = f+l; simplify(f);endf0=subs(f,'t',x0)figureplot( x1, fresult(x1), x, y, '* ', x0, f0, 'o ') % 拟合图 原始数据 插值title('拟合图 原始数据 插值')
fresult = General model: fresult(x) = a+b*x^m Coefficients (with 95% confidence bounds): a = 31.09 (-13.89, 76.07) b = 0.05458 (-0.3637, 0.4728) m = 1.151 (0.0421, 2.259)f0 = 52.2824 65.1797 69.4643 97.0714 141.9643