首先新建一个m文件,然后在里边写如下代码(具体的函数体,代码会不同):
function y=fff(x,z1,z2) %fff为函数名,当你保存m文件的时候最好也用这个名,这样不会在运行时出错,否则的话可能会出错,其中y为输出参数,即函数值,x,z1,z2为输入参数,x为自变量,z1,z2为函数中的参数,当k1,k2不随x的变化而变化的时候,可以只写为“function y=fff(x)”,但是参数k1k2要在m文件中声明。
for i=1:length(x)
p(i)=sqrt(x(i)^2+10)+z1(i)-z2(i); %x(i),z1(i),z2(i)分别为向量的第i的元素
y=p2-5; %注意函数体中一定要要给y赋值,因为y是输出参数,否则会出现错误。
end
到此为止,m文件编写结束,要保存。
然后在matlab的command窗口输入以下内容:
x=1:5;
z1=1:-01:06;
z2=0:05:2; %注意x,z1,z2的大小要一致,如果z1,z2已经在函数中声明,这里就不用输入了。
pp=fff(x,z1,z2) %注意输入参数的顺序要和函数的一样
之后会出现以下结果:
pp =
36332 32833 33178 35980 40322
得知自变量x和因变量y的值后,就可以拟合了,但是你要做拟合的话最好用spss
matlab的曲线拟合并不是很好,但是给你介绍一下在命令窗口下输入以下命令:
plot(x,y,'r:o') % 会出现一个figure,在菜单栏上的tools选择basic fitting,以下你自己弄就可以了,可以看见图像,又可以看见曲线的表达式,但据我所知matlab只能拟合幂函数。
你的程序太乱,没看懂,不知我写的是否对你有帮助x=[1 2 3 4 5 6 667 75 857 10 15 20 25 2857 3333 40 50 6667 100];
y=[5065 4057 3479 3125 2862 2667 2568 2453 2295 212 1619 1321 1135 1027 904 768 623 473 32];
n=4; %这里进行四次幂函数,一般用二次的,可以改成2
p=polyfit(x, y, n);
xi=linspace(0, 100, 10000);
z=polyval(p, xi);
plot(x, y, ' +b ' , x, y,'r', xi, z, ' :g ' )
代码
x=[200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000];
y=[01 025 049 065 07 091 115 126 137 146 152 160 165 167 168 168 169 169 171];
cftool(x,y);
拟合方式一:指数拟合
General model Power2:
f(x) = ax^b+c
Coefficients (with 95% confidence bounds):
a = -4495 (-570, 4801)
b = -002049 (-0297, 02561)
c = 403 (-490, 5706)
Goodness of fit:
SSE: 01527
R-square: 09708
Adjusted R-square: 09672
RMSE: 00977
拟合方式二:最高三次多项式
Linear model Poly3:
f(x) = p1x^3 + p2x^2 + p3x + p4
Coefficients (with 95% confidence bounds):
p1 = -1208e-011 (-1778e-010, 1536e-010)
p2 = -6613e-007 (-1214e-006, -1088e-007)
p3 = 0002397 (0001855, 000294)
p4 = -0388 (-05376, -02384)
Goodness of fit:
SSE: 002784
R-square: 09947
Adjusted R-square: 09936
RMSE: 004308
拟合方式三:最高四次多项式
Linear model Poly4:
f(x) = p1x^4 + p2x^3 + p3x^2 + p4x + p5
Coefficients (with 95% confidence bounds):
p1 = 4099e-013 (1256e-013, 6942e-013)
p2 = -1815e-009 (-3073e-009, -5575e-010)
p3 = 2001e-006 (1018e-007, 39e-006)
p4 = 00009045 (-00002188, 0002028)
p5 = -01391 (-03494, 007117)
Goodness of fit:
SSE: 001654
R-square: 09968
Adjusted R-square: 09959
RMSE: 003437
小结
实际上多项式拟合经度(SSE,RMSE)四次高于三次,因为四次包含了三次,需要根据物理模型来确定选择多项式最高次数。
指数模型精度低于三次多项式。
本文希望你能认识一个新的有用的函数,曲线拟合工具箱
希望你学习进步。
使用plot()绘图函数,得到 λ (t)——t 曲线图。
syms t
t=0:01:6;
y=043434233t^(-03432423);
plot(t,y),ylabel('λ(t)'),xlabel('t')
换个函数吧,另外你的函数表达式不因该那样些,最好不要写成等式表达:k=4;
%定义一个匿名函数
f=@(x)((x5)^(2(k-1))-((1+3xx/2)/(1+3/2))^(k+1));%把式子全移到左边
x=fzero(f,20);
得x=211328;
有什么问题再说吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)