Matlab 线性拟合 非线性拟合
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
使用Matlab进行拟合是图像处理中线条变换的一个重点内容,本文将详解Matlab中的直线拟合和曲线拟合用法。
关键函数:
fittype
Fit type for curve and surface fitting
Syntax
/***********************************线性拟合***********************************/
线性拟合公式:
coeff1 * term1 + coeff2 * term2 + coeff3 * term3 + ...
其中,coefficient是系数,term都是x的一次项。
线性拟合Example:
Example1: y=kx+b;
法1:
x=[1,1.5,2,2.5,3];y=[0.9,1.7,2.2,2.6,3];p=polyfit(x,y,1);x1=linspace(min(x),max(x));y1=polyval(p,x1);plot(x,y,'*',x1,y1);
结果:p = 1.0200 0.0400
即y=1.0200 *x+ 0.0400
法2:
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];p=fittype('poly1')f=fit(x,y,p)plot(f,x,y);
运行结果:
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];p=fittype('poly1')f=fit(x,y,p)plot(f,x,y);p = Linear model Poly1: p(p1,p2,x) = p1*x + p2f = Linear model Poly1: f(x) = p1*x + p2 Coefficients (with 95% confidence bounds): p1 = 1.02 (0.7192, 1.321) p2 = 0.04 (-0.5981, 0.6781)
Example2:y=a*x + b*sin(x) + c
法1:
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];EXPR = {'x','sin(x)','1'};p=fittype(EXPR)f=fit(x,y,p)plot(f,x,y);
运行结果:
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];EXPR = {'x','sin(x)','1'};p=fittype(EXPR)f=fit(x,y,p)plot(f,x,y);p = Linear model: p(a,b,c,x) = a*x + b*sin(x) + cf = Linear model: f(x) = a*x + b*sin(x) + c Coefficients (with 95% confidence bounds): a = 1.249 (0.9856, 1.512) b = 0.6357 (0.03185, 1.24) c = -0.8611 (-1.773, 0.05094)
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3]; p=fittype('a*x+b*sin(x)+c','independent','x')f=fit(x,y,p)plot(f,x,y);
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3]; p=fittype('a*x+b*sin(x)+c','independent','x')f=fit(x,y,p)plot(f,x,y);p = General model: p(a,b,c,x) = a*x+b*sin(x)+cWarning: Start point not provided, choosing random startpoint. > In fit>iCreateWarningFunction/nThrowWarning at 738 In fit>iFit at 320 In fit at 109 f = General model: f(x) = a*x+b*sin(x)+c Coefficients (with 95% confidence bounds): a = 1.249 (0.9856, 1.512) b = 0.6357 (0.03185, 1.24) c = -0.8611 (-1.773, 0.05094)
/***********************************非线性拟合***********************************/
Example:y=a*x^2+b*x+c
法1:
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3]; p=fittype('a*x.^2+b*x+c','independent','x')f=fit(x,y,p)plot(f,x,y);
运行结果:
p = General model: p(a,b,c,x) = a*x.^2+b*x+cWarning: Start point not provided, choosing random startpoint. > In fit>iCreateWarningFunction/nThrowWarning at 738 In fit>iFit at 320 In fit at 109 f = General model: f(x) = a*x.^2+b*x+c Coefficients (with 95% confidence bounds): a = -0.2571 (-0.5681, 0.05386) b = 2.049 (0.791, 3.306) c = -0.86 (-2.016, 0.2964)
法2:
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];%use c=0;c=0;p1=fittype(@(a,b,x) a*x.^2+b*x+c)f1=fit(x,y,p1)%use c=1;c=1;p2=fittype(@(a,b,x) a*x.^2+b*x+c)f2=fit(x,y,p2)%predict cp3=fittype(@(a,b,c,x) a*x.^2+b*x+c)f3=fit(x,y,p3)%show resultsscatter(x,y);%scatter pointc1=plot(f1,'b:*');%bluehold onplot(f2,'g:+');%greenhold onplot(f3,'m:*');%purplehold off
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
Matlab 线性拟合 非线性拟合相关推荐
- matlab 线性最小二乘法,matlab_最小二乘法线性和非线性拟合.ppt
3.血液容积v, t=0注射剂量d, 血药浓度立即为d/v. 2.药物排除速率与血药浓度成正比,比例系数 k(>0) 模型假设 1. 机体看作一个房室,室内血药浓度均匀--一室模型 模型建立 在 ...
- matlab中三维非线性拟合,matlab非线性拟合与绘制三维曲面
建议用1stOpt,使用简单,不用猜初值,拟合效果非常强.下面是由1stOpt得出的结果,应该是唯一最优解.如果用其它软件,估计花费时间不少还不一定能得到最优解. 均方差(RMSE): 2.88773 ...
- Matlab学习手记——非线性拟合方法:压缩因子粒子群算法
目的:采用压缩因子粒子群算法实现双指数拟合. function x_opt = PSO_ExpFit2(t, Et) %{ 函数功能:压缩因子粒子群算法实现指数拟合:y = a1*exp(-x/b1) ...
- matlab的nlinfit函数,用matlab如何进行非线性拟合 nlinfit函数?
用非线性回归nlinfit,如果数据点多些,效果会更好. function nonlinefit clc;clear; t=[0 4 8 40]; y=[20.09 64.52 85.83 126.7 ...
- Java 使用 Apache commons-math3 线性拟合、非线性拟合实例(带效果图)
Java 使用 CommonsMath3 的线性和非线性拟合实例,带效果图 例子查看 GitHub Gitee 在线查看 运行src/main/java/org/wfw/chart/Main.java ...
- MATLAB 数据处理(二)非线性拟合——洛伦兹拟合(Lorentz fit)
文章目录 一.拟合示例 二.单峰洛伦兹 2.1 洛伦兹线型函数表达式与物理含义 2.2 lsqcurvefit非线性拟合 2.3 代码实现 三.双峰洛伦兹 3.1 洛伦兹线型函数表达式与物理含义 3. ...
- matlab 椭圆方程拟合,matlab中如何插值拟合求椭圆方程
[g_fitting.rar] 使用正交多项式完成数据拟合.程序对读入的gps采样点完成曲线拟合. (2007-08-01, matlab, 1KB, 26次) [曲面拟合.rar] 这是利用matl ...
- lsqcurvefit拟合结果为复数_非线性拟合怎么转化为线性拟合?
1. 前言 对于多项式函数,可以用最小二乘法求得精确的拟合结果,使得拟合函数具有全局最优的拟合误差:对于某些非线性函数,如指数函数 ,也可以对函数转化后,求得精确的拟合结果,如上述指数函数可转化为 , ...
- Matlab非线性拟合工具箱cftool
一. 单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性.非线性曲线拟合.下面结合我使用的 Matlab R2007b 来简单介绍如何使用这 ...
- 数据拟合---使用自定义函数进行非线性拟合 -在Origin。matlab拟合工具箱cftool
在Origin中使用自定义函数进行非线性拟合 http://blog.163.com/wuhen211@126/blog/static/7474635020105233269949/ matlab拟合 ...
最新文章
- 兰州谋定百合品牌-农业大健康·万祥军:功能性农业产业脱贫
- Zepto Click点透情况解决办法
- oracle读取表空间物理文件中数据,shell脚本读取oracle数据库数据写入到文件中
- C++字符串完全指南(2) - 各种字符串类- CRT类
- raid5 合适 多少块硬盘_分析Linux raid6同步成raid5导致数据丢失的情况
- eclipse修改工作的目录顺序
- AngularJS 之 ng-model
- excel处置4000行数据卡_Python自动获取当日所有股票数据
- java基于ssm医院病历管理系统
- 基金销售系统和TA系统
- 冷藏温度范围_食品冷藏的温度是多少
- 鸿蒙系统无限穿越,无限穿越之至尊无上
- outlook 2019 mac中如何设置邮件签名
- scanner练习:BMI计算
- 心电算法准确性评价总结
- Rockchip DRM RK628 Porting Guide
- 微型计算机电路软件,微机控制电路
- 一男的为媳妇写的、帅死了
- 学历学籍系统-Web服务开发实验(REST API)
- 联网技术架构讨论:Facebook 如何管理150亿张照片