matlab 求公式编写方法

matlab 求公式编写方法,第1张

给你举一个求函数值的例子:
首先新建一个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;
有什么问题再说吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10253082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存