MATLAB利用全局优化曲线拟合
来源:互联网 发布:铁幕演说知乎 编辑:程序博客网 时间:2024/06/06 00:27
最近在处理多b值MRI曲线拟合的数据,每组的数据结构如下
b:[0 20 50 80 100 150 200 400 600 800 1000];
S:[297 283.8 265.2 257.2 256.1 225.8 215.2 169.9 138.5 109.8 101.5];
DWI-MRI成像中b值和信号强度的比值关系如下:
- 单指数模型:S(b)/S(0) = exp(-b*ADC);
- 双指数模型:
- 拉伸指数:
- DKI
- ……….
有了b值和S值,怎么拟合得到这些参数呢?利用MATLAB的曲线拟合工具箱可以很好的解决这些问题;
举个例子DKI拟合,对应的Matlab函数
ft = fittype( 'exp(-a*x+x^2*a^2*b/6)', 'independent', 'x', 'dependent', 'y' );opts = fitoptions( ft );opts.Algorithm = 'Levenberg-Marquardt';opts.Display = 'Off';opts.Lower = [-Inf -Inf];opts.StartPoint = DKI_start;opts.Upper = [Inf Inf];[fitresult, gof] = fit( xData, yData, ft, opts );
[fitresult, gof]存储拟合的结果参数!但是曲线拟合工具箱对参数的初始值非常敏感,有没有一种拟合方法可以全局搜索出全局最优值?
http://cn.mathworks.com/help/gads/globaloptimsolution-class.html
其实题主也在试探性的研究这个问题,根据网上搜索的资料,初步可以认定Matlab最优化工具箱具有解决这个问题的潜在可能:
Matlab中有两个全局最优化函数:Multistart和GlobalSearch
fun = @(a,x) exp(-a*x);problem = createOptimProblem('lsqcurvefit','objective', fun,'xdata',xdata,'ydata',ydata, 'x0',0.001);ms = MultiStart; % ms = GlobalSearch;[a,fval,exitflag,output,solutions] = run(ms, problem,50);
0 0
- MATLAB利用全局优化曲线拟合
- MATLAB利用散点进行函数曲线拟合
- matlab曲线拟合
- Matlab曲线拟合
- matlab曲线拟合
- Matlab曲线拟合
- Matlab 曲线拟合
- Matlab曲线拟合
- matlab曲线拟合
- MATLAB-曲线拟合
- matlab曲线拟合
- matlab 曲线拟合
- matlab曲线拟合
- matlab曲线拟合
- matlab曲线拟合
- matlab 曲线拟合
- Matlab:非线性曲线拟合
- Matlab曲线拟合函数
- HTML表单学习3——输入类型
- Data Visualization - Dot Lang & Graphviz
- ajax
- AndRoid XmlPullParser
- liunx常用命令-界面切换
- MATLAB利用全局优化曲线拟合
- [笔记]《Linux内核设计与实现》第一章Linux内核简介
- echarts x轴显示不全 换行显示
- 封装一个属于自己的mvc框架(3)
- iOS之CALayer与核心动画(一)
- Qt5.7连接MYSQL
- MYSQL 合并查询
- 阶乘之和——第28届ACM/ICPC亚洲预赛
- 23种设计模式(3):抽象工厂模式