zoukankan      html  css  js  c++  java
  • 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

    %% 关于拟合小列子,以logistic曲线模型
    % 读入人口数据(1971-2000)
    Y=[33815 33981 34004 34165 34212 34327 34344 34458 34498 34476 34483 34488 34513 ...
    34497 34511 34520 34507 34509 34521 34513 34515 34517 34519 34519 34521 34521 ...
    34523 34525 34525 34527];
    % 读入时间变量数据(t=年份-1970)
    T=[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...
    27 28 29 30];
    % 线性化处理
    for i = 1:length(T)
    y(i) = 1/Y(i);
    x(i) = exp(-T(i));
    end
    %计算并输出回归系数B
    for i = 1:length(T)
    c = ones(30,1);
    X = [c,x'];
    b = inv(X'*X)*X'*y';
    end
    for i = 1: length(T)
    z(i) = b(1) + b(2)*x(i); %计算拟合值;
    s(i) = z(i) - sum(y)/30; %计算离差值;
    w(i) = z(i) - y(i) %计算误差;
    end
    %计算计算离差平方和
    S = s*s';
    %计算计误差差平方和
    Q = w * w';
    % 计算回归平方和U
    U=S-Q;
    % 计算,并输出F检验值
    F=28*U/Q;
    % 计算非线性回归模型的拟合值
    for j=1:30,
    Y(j)=1/(b(1,1)+b(2,1)*exp(-j));
    end
    % 输出非线性回归模型的拟合曲线(Logisic曲线)
    plot(T,Y)

  • 相关阅读:
    清除浮动的原理剖析
    修正IE6不支持position:fixed的bug(转)
    Callbacks vs Events
    垂直属性
    jQuery的事件模型
    Dean-Edward的事件系统实现
    简单的导航栏实现
    弹窗层效果的实现(非jQuery实现)
    rmdir
    mkdir
  • 原文地址:https://www.cnblogs.com/Kermit-Li/p/4325614.html
Copyright © 2011-2022 走看看