经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » MATLAB » 查看文章
MATLAB实例:非线性曲线拟合
来源:cnblogs  作者:凯鲁嘎吉  时间:2019/11/12 8:46:06  对本文有异议

MATLAB实例:非线性曲线拟合

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

最小二乘法拟合非线性曲线,给出两种方法:(1)指定非线性函数,(2)用傅里叶函数拟合曲线

1. MATLAB程序

  1. clear
  2. clc
  3. xdata=[0.1732;0.1775;0.1819;0.1862;0.1905;0.1949;0.1992;0.2035;0.2079;0.2122;0.2165;0.2208;0.2252;0.2295;0.2338;0.2384];
  4. ydata=[-3.41709;-4.90887;-6.09424;-6.95362;-7.63729;-8.12466;-8.37153;-8.55049;-8.61958;-8.65326;-8.60021;-8.52824;-8.43502;-8.32234;-8.20419;-8.04472];
  5. %% 指定非线性函数拟合曲线
  6. X0=[1 1];
  7. [parameter,resnorm]=lsqcurvefit(@fun,X0,xdata,ydata); %指定拟合曲线
  8. A=parameter(1);
  9. B=parameter(2);
  10. fprintf('拟合曲线Lennard-Jones势函数的参数A为:%.8f,B为:%.8f', A, B);
  11. fit_y=fun(parameter,xdata);
  12. figure(1)
  13. plot(xdata,ydata,'r.')
  14. hold on
  15. plot(xdata,fit_y,'b-')
  16. xlabel('r/nm');
  17. ylabel('Fe-C Ec/eV');
  18. xlim([0.17 0.24]);
  19. legend('观测数据点','拟合曲线')
  20. % legend('boxoff')
  21. saveas(gcf,sprintf('Lennard-Jones.jpg'),'bmp');
  22. % print(gcf,'-dpng','Lennard-Jones.png');
  23. %% 用傅里叶函数拟合曲线
  24. figure(2)
  25. [fit_fourier,gof]=fit(xdata,ydata,'Fourier2')
  26. plot(fit_fourier,xdata,ydata)
  27. xlabel('r/nm');
  28. ylabel('Fe-C Ec/eV');
  29. xlim([0.17 0.24]);
  30. saveas(gcf,sprintf('demo_Fourier.jpg'),'bmp');
  31. % print(gcf,'-dpng','demo_Fourier.png');
  1. function f=fun(X,r)
  2. f=X(1)./(r.^12)-X(2)./(r.^6);

2. 结果

  1. 拟合曲线Lennard-Jones势函数的参数A为:0.00000003B为:0.00103726
  2. fit_fourier =
  3.  
  4. General model Fourier2:
  5. fit_fourier(x) = a0 + a1*cos(x*w) + b1*sin(x*w) +
  6. a2*cos(2*x*w) + b2*sin(2*x*w)
  7. Coefficients (with 95% confidence bounds):
  8. a0 = 79.74 (-155, 314.5)
  9. a1 = 112.9 (-262.1, 487.9)
  10. b1 = 28.32 (-187.9, 244.6)
  11. a2 = 24.5 (-114.9, 163.9)
  12. b2 = 13.99 (-75.89, 103.9)
  13. w = 15.05 (3.19, 26.9)
  14.  
  15. gof =
  16.  
  17. 包含以下字段的 struct:
  18.  
  19. sse: 0.0024
  20. rsquare: 0.9999
  21. dfe: 10
  22. adjrsquare: 0.9999
  23. rmse: 0.0154

Fig 1. Lennard-Jones势函数拟合曲线

Fig 2. 傅里叶函数拟合曲线

原文链接:http://www.cnblogs.com/kailugaji/p/11839581.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号