matlab多项式拟合以及指定函数拟合

clc;
clear all;
close all;
%% 多项式拟合指令;
% X = [1 2 3 4 5 6 7 8 9 ];
% Y = [9 7 6 3 -1 2 5 7 20];
% P= polyfit (X,Y,3);
%
% x = 0:2:10;
% y = polyval(P,x);
% plot(x,y,X,Y,‘r*‘);
%% 指定函数拟合
x=[ 0;0.4;1.2; 2;2.8;3.6;4.4;5.2; 6;7.2; 8;9.2;10.4;11.6;12.4;13.6;14.4;15];
y=[ 1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059; 0.08;0.032;-0.015;-0.02];
plot(x,y,‘r*‘)
hold on
f = fittype(‘a*cos(k*t)*exp(w*t)‘,‘independent‘,‘t‘,‘coefficients‘,{‘a‘,‘k‘,‘w‘});
cfun = fit(x,y,f);
xi = 0:1:20;
yi = cfun(xi);
plot(xi,yi,‘b-‘)
%程序中,函数fittype是自定义拟合函数;cfun=fit( x, y, f)是根据自定义的拟合函数f 来拟合数据 x

时间: 2024-08-05 07:41:06

matlab多项式拟合以及指定函数拟合的相关文章

Matlab多项式拟合测试

x=0:0.2:4; %生成等差数列 rnd=rand(1,size(x,2))*5; %生成一组随机数 y=x.*x.*x+x.*x+6+rnd; %生成y=x^3+x^2+6函数在垂直方向5个尺度内的随机采样序列 b=polyfit(x,y,3); %计算多项式拟合参数 yy=polyval(b,x); %生成拟合后y函数的新值 hold on,plot(x,y,'o'),plot(x,yy); %hold开关打开用于画在同一张图上,前者画散点,后者话拟合曲线. [效果图]:

李航《统计学习方法》多项式函数拟合问题V2

最近在看李航的统计学习方法P11时发现一个多项式函数拟合问题觉得公式的推导有问题,于是看了一些资料发现这里的推倒是有错误的,用python编程验证后发现按书上的求导结果拟合后的函数图像完全不对,下面给出正确的推导结果和对应的python实现与拟合效果. (第一次写了一版这篇博客,公式自己敲的,但是从别人那里贴的代码,后面感觉那个代码思路没问题,但就是进行了很多次重复计算,数据量大的时候效率低,而且很多地方对python的语言特性利用不足,写的有点类似C语言风格,比较晦涩.于是乎,把代码重写了一次

Matlab多项式拟合測试

x=0:0.2:4; %生成等差数列 rnd=rand(1,size(x,2))*5; %生成一组随机数 y=x.*x.*x+x.*x+6+rnd; %生成y=x^3+x^2+6函数在垂直方向5个尺度内的随机採样序列 b=polyfit(x,y,3); %计算多项式拟合參数 yy=polyval(b,x); %生成拟合后y函数的新值 hold on,plot(x,y,'o'),plot(x,yy); %hold开关打开用于画在同一张图上,前者画散点,后者话拟合曲线. [效果图]:

关于函数拟合,线性,非线性的一些见解(转)

from: http://blog.sciencenet.cn/blog-1255140-1025724.html 函数拟合 现实中各种各样的问题都可以归结为函数问题.比如医生诊断疾病,他得到病人检查的各种参数,体温.血压.血检报告和CT扫描的各种数据等,然后判断他是否健康,还是得了什么病.这个例子里,各种参数就是函数的自变量,病人的健康情况是函数值,比如健康是0,有病是1,也可以更具体,肝病是1,胃病是2等.又比如识别物体,输入的是物体的像素数据,输出的是物体的类别,是猫是狗,还是苹果梨子等.

JS明确指定函数的接受者

由于方法和值为对象的属性值没什么区别,因此很容易提取对象的方法作为回调函数直接传递给高阶函数.但这也很容易忘记应明确指定方法的接受者.例如,一个字符串缓冲对象使用数组来存储字符串. var buffer = { entries: [], add: function(args) { this.entries.push(args); }, concat: function() { return this.entries.join(''); } }; var arr = ['alert', '-',

将log4j重定向到指定函数

测试程序源代码 [java] view plain copy import org.apache.log4j.Logger; /** * 使Log4j的log输出重定向到指定函数 * Last Update Date: 2014-01-23 * 依赖库 * [1]log4j-1.2.9.jar * [2]JDK 1.6.x * @author lijun * */ public class TestMain{ static Logger log = Logger.getLogger(TestMa

matlab的rem()和mod()函数

matlab的rem()和mod()函数 rem(x,y):求整除x/y的余数 mod(x,y):求模 rem(x,y)=x-y.*fix(x./y);  (fix()向0取整) mod(x,y)=x-y.*floor(x./y); (floor()向左取整) 如果x和y的符号相同(同为‘+’,同为‘-’),那么rem(x,y)=mod(x,y)(正数与正数,负数与负数,取整结果两个函数效果一样) 如果x和y的符号相反,那么mod(x,y)=rem(x,y)+y(正数与负数的取整,看你希望得到什

Matlab ones() & rgb2gray() & graythresh() & im2bw() 函数的使用

Matlab 图像处理 Day4: 1.ones( ) 函数; % ones 是生成一个单位矩阵的函数: % 其固定格式为 ones( r , c ) * A + B % 上述各参数表示:生成一个 r 行 , c列 , 每一个数为 1*A + B 的矩阵 2.rgb2gray()函数: % 将彩色图像转换成灰度图像 imgray = rgb2gray( imread( path ) ): 3.graythresh()函数: % 使用最大类间方差法找到图片的一个合适的阈值. V1=imread(A

Matlab近期用到的函数(持续更新)

最近任务用到matlab较多,第一版的代码大部分对于矩阵类的计算都是用for循环来完成的,主要是思维还没有适应matlab.看了同事的一份代码后,现在遇到需要循环的地方第一反应就是如何能够用矩阵的直接计算来替代.比如,统计一个矩阵中大于某值的所有元素的和.所以,就会经常要用到一些matlab已经写好的函数.在此整理出来,以备以后查用. 日期: tmpstr = '2015-05-08'; date = datestr(datenum(tmpstr),'yymmdd'); hourNum = ho