亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? unitlinearregressfunction.pas

?? 一個(gè)多元非線性回歸分析源碼以及其中的公式列表
?? PAS
字號:
unit UnitLinearRegressFunction;

interface
  uses Valedit, SysUtils, ExtCtrls, Types, Graphics, windows, Forms;

  type TXX=record
      n      :integer;         {數(shù)據(jù)組數(shù)n        }
      A      :double;          {線性回歸方程系數(shù)A}
      B      :double;          {線性回歸方程系數(shù)B}
      r      :double;          {相關(guān)系數(shù)r        }
      Sr     :double;          {標(biāo)準(zhǔn)誤差Sr       }
      Sa     :double;          {A的誤差Sa        }
      Sb     :double;          {B的誤差Sb        }

      Px     :double;          {x的平均值        }
      Py     :double;          {y的平均值        }
      Hx     :double;          {x的和            }
      Hy     :double;          {y的和            }
      Hxy    :double;          {x*y的和          }
      Hxx    :double;          {x*x的和          }
      Hyy    :double;          {y*y的和          }

      xMin   :double;          {x的最小值xMin    }
      yMin   :double;          {x的最大值xMax    }
      xMax   :double;          {y的最小值yMin    }
      yMax   :double;          {y的最大值yMax    }
  end;
  var XX     :Txx;
  
  const Infinity:double=1.7e308; {無窮大}

  procedure getVLEData(const VLE :TValueListEditor;var Datax :array of double;var Datay :array of double);
  function  getDataMin(const Data:array of double;const n:integer):double;
  function  getDataMax(const Data:array of double;const n:integer):double;
  function  getDataSum(const Data:array of double;const n:integer):double;
  function  getDataProductSum(const Datax:array of double;const Datay:array of double;const n:integer):double;
  function  getDataSr(const Datax:array of double;const Datay:array of double;const n:integer;const A:double;const B:double):double;
  procedure Calculate(const Datax:array of double;const Datay:array of double;var xx:Txx);

  procedure DarwPic(var Img :TImage;const Datax:array of double;const Datay:array of double;const xx:Txx);
  procedure SetVLEData(var VLE :TValueListEditor;const xx :Txx);overload;
  procedure SetVLEData(var VLE :TValueListEditor);overload;
  procedure VLEInsertRow(var VLE:TValueListEditor;const str:string;const x:double);

  function  GetFileNamePath(const FileName:string):string;

implementation

procedure getVLEData(const VLE :TValueListEditor;var Datax :array of double;var Datay :array of double);
var i   :integer;
    n   :integer;
    s   :string;
begin
    n:=1;
  try
    for i:=1 to vle.RowCount-1 do
    begin
        n:=i;
        s:=vle.Cells[0,i];
        if  s='' then s:='0';
        Datax[i-1]:= strtofloat(s);
        s:=vle.Cells[1,i];
        if  s='' then s:='0';
        Datay[i-1]:= strtofloat(s);
    end;
  except
    application.MessageBox(Pchar('讀取數(shù)據(jù)在讀第'+inttostr(n)+'行數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤。'),'出錯(cuò):',MB_ICONERROR);
  end;
end;

function  getDataMin(const Data:array of double;const n:integer):double;
var i       :integer;
    xTemp   :double;
begin
    xTemp:=Data[0];
    for i:=1 to n-1 do
    begin
        if xTemp>Data[i] then
            xTemp:=Data[i];
    end;  
    result:=xTemp;
end;

function  getDataMax(const Data:array of double;const n:integer):double;
var i       :integer;
    xTemp   :double;
begin
    xTemp:=Data[0];
    for i:=1 to n-1 do
    begin
        if xTemp<Data[i] then
            xTemp:=Data[i];
    end;
    result:=xTemp;
end;

function  getDataSum(const Data:array of double;const n:integer):double;
var i       :integer;
    xTemp   :double;
begin
    xTemp:=0;
    for i:=0 to n-1 do
    begin
        xTemp:=xTemp+Data[i];
    end;
    result:=xTemp;
end;

function  getDataProductSum(const Datax:array of double;const Datay:array of double;const n:integer):double;
var i       :integer;
    xTemp   :double;
begin
    xTemp:=0;
    for i:=0 to n-1 do
    begin
        xTemp:=xTemp+Datax[i]*Datay[i];
    end;
    result:=xTemp;
end;

function  getDataSr(const Datax:array of double;
                    const Datay:array of double;
                    const n:integer;
                    const A:double;
                    const B:double):double;
var i       :integer;
    xTemp   :double;
begin
    result:=0;
    xTemp:=0;
    try
        for i:=0 to n-1 do
        begin
            xTemp:=xTemp+sqr(Datay[i]-B*Datax[i]-A);
        end;
    except
        result:=Infinity;
        exit;
    end;

    if n<=2 then
    begin
        if xTemp=0 then
            result:=1
        else if xTemp>0 then
            result:=+Infinity
        else if xTemp<0 then
            result:=-Infinity;
    end
    else
    begin
        result:=sqrt(xTemp/(n-2));
    end;
end;

procedure Calculate(const Datax:array of double;const Datay:array of double;var xx:Txx);
var xTemp   :double;
    yTemp   :double;
begin
    xx.xMin:=getDataMin(Datax,xx.n);
    xx.yMin:=getDataMin(Datay,xx.n);
    xx.xMax:=getDataMax(Datax,xx.n);
    xx.yMax:=getDataMax(Datay,xx.n);
    xx.Hx:=getDataSum(Datax,xx.n);
    xx.Hy:=getDataSum(Datay,xx.n);
    xx.Hxy:=getDataProductSum(Datax,Datay,xx.n);
    xx.Hxx:=getDataProductSum(Datax,Datax,xx.n);
    xx.Hyy:=getDataProductSum(Datay,Datay,xx.n);
    xx.Px:=xx.Hx/xx.n;
    xx.Py:=xx.Hy/xx.n;
    // A
    xTemp:=xx.Hxx*xx.Hy-xx.Hx*xx.Hxy;
    yTemp:=xx.n*xx.Hxx-sqr(xx.Hx);
    if yTemp=0 then
    begin
        if xTemp=0 then
            xx.A:=Infinity
        else if xTemp>0 then
            xx.A:=+Infinity
        else if xTemp<0 then  
            xx.A:=-Infinity;
    end
    else
    begin
        xx.A:=xTemp/yTemp;
    end;

    // B
    xTemp:=xx.n*xx.Hxy-xx.Hx*xx.Hy;
    yTemp:=xx.n*xx.Hxx-sqr(xx.Hx);
    if yTemp=0 then
    begin
        if xTemp=0 then
            xx.B:=Infinity
        else if xTemp>0 then
            xx.B:=+Infinity
        else if xTemp<0 then  
            xx.B:=-Infinity;
    end
    else
    begin
        xx.B:=xTemp/yTemp;
    end;
    
    // r
    xTemp:=xx.Hxy-xx.Hx*xx.Hy/xx.n;
    yTemp:=sqrt((xx.Hxx-sqr(xx.Hx)/xx.n)*(xx.Hyy-sqr(xx.Hy)/xx.n));
    if yTemp=0 then
    begin
        if xTemp=0 then
            xx.r:=Infinity
        else if xTemp>0 then
            xx.r:=+Infinity
        else if xTemp<0 then
            xx.r:=-Infinity;
    end
    else
    begin
        xx.r:=xTemp/yTemp;
    end;
    xx.r:=abs(xx.r);//?


    //Sr
    xx.Sr:=getDataSr(Datax,Datay,xx.n,xx.A,xx.B);
    if abs(xx.Sr)=Infinity then
    begin
        xx.Sa:=Infinity;
        xx.Sb:=Infinity;
    end
    else
    begin
        // Sa
        yTemp:=xx.n*xx.Hxx-sqr(xx.Hx);
        if yTemp=0 then
            xx.Sa:=Infinity
        else
            xx.Sa:=sqrt(xx.Hxx/yTemp)*xx.Sr;
        // Sb
        yTemp:=xx.n*xx.Hxx-sqr(xx.Hx);
        if yTemp=0 then
            xx.Sb:=Infinity
        else
            xx.Sb:=sqrt(xx.n/yTemp)*xx.Sr;
    end;
end;

procedure DarwPic(var Img :TImage;const Datax:array of double;const Datay:array of double;const xx:Txx);
var X1,X2,Y1,Y2 :double;
    W,H         :integer;
    i           :integer;
    xt,yt       :integer;
    function getX(x:double):integer;
    begin
        result:=trunc((W-30)*(x-X1)/(X2-X1)+10);
    end;
    function getY(y:double):integer;
    begin
        result:=trunc((30-H)*(y-Y2)/(Y2-Y1)+10);
    end;
begin
    W:=img.Width;
    H:=img.Height;
    if xx.xMin=xx.xMax then
    begin
        X1:=xx.xMin-1;
        X2:=xx.xMax+1;
    end
    else
    begin
        X1:=xx.xMin;
        X2:=xx.xMax;
    end;
    if xx.yMin=xx.yMax then
    begin
        y1:=xx.yMin-1;
        y2:=xx.yMax+1;
    end
    else
    begin
        y1:=xx.yMin;
        y2:=xx.yMax;
    end;

    // 畫線
    Img.Canvas.Pen.Color:=clLime; 
    img.Canvas.Pen.Width:=2;
    if abs(xx.B)=Infinity then
    begin
        img.Canvas.MoveTo(getX(xx.xMin),0);
        img.Canvas.LineTo(getX(xx.xMin),H);
    end
    else
    begin
        img.Canvas.MoveTo(getX(X1),getY(xx.A+xx.B*X1));
        img.Canvas.LineTo(getX(X2),getY(xx.A+xx.B*X2));
    end;
    
    // 畫點(diǎn)
    Img.Canvas.Pen.Color:=clRed;
    img.Canvas.Pen.Width:=3;
    for i:=0 to xx.n-1 do
    begin
        xt:=getX(Datax[i]);
        yt:=getY(Datay[i]);
        img.Canvas.MoveTo(xt,yt);
        img.Canvas.LineTo(xt+1,yt);
    end;

end;

procedure SetVLEData(var VLE :TValueListEditor;const xx :Txx);overload;
begin
    Vle.Strings.Text:='';
    VleInsertRow(Vle,'數(shù)據(jù)組數(shù)n',xx.n);
    VleInsertRow(Vle,'線性回歸方程系數(shù)A',xx.A);
    VleInsertRow(Vle,'線性回歸方程系數(shù)B',xx.B);
    VleInsertRow(Vle,'相關(guān)系數(shù)r',xx.r);
    VleInsertRow(Vle,'標(biāo)準(zhǔn)誤差Sr',xx.Sr);
    VleInsertRow(Vle,'A的標(biāo)準(zhǔn)誤差Sa',xx.Sa);
    VleInsertRow(Vle,'B的標(biāo)準(zhǔn)誤差Sb',xx.Sb);
    VleInsertRow(Vle,'x的平均值',xx.Px);
    VleInsertRow(Vle,'y的平均值',xx.Py);
    VleInsertRow(Vle,'x的和',xx.Hx);
    VleInsertRow(Vle,'y的和',xx.Hy);
    VleInsertRow(Vle,'x*y的和',xx.Hxy);
    VleInsertRow(Vle,'x*x的和',xx.Hxx);
    VleInsertRow(Vle,'y*y的和',xx.Hyy);
    VleInsertRow(Vle,'x的最小值xMin',xx.xMin);
    VleInsertRow(Vle,'x的最大值xMax',xx.xMax);
    VleInsertRow(Vle,'y的最小值yMin',xx.yMin);
    VleInsertRow(Vle,'y的最大值yMax',xx.yMax);
end;

procedure SetVLEData(var VLE :TValueListEditor);overload;
begin
    Vle.Strings.Text:='';
    Vle.InsertRow('數(shù)據(jù)組數(shù)n','',true);
    Vle.InsertRow('線性回歸方程系數(shù)A','',true);
    Vle.InsertRow('線性回歸方程系數(shù)B','',true);
    Vle.InsertRow('相關(guān)系數(shù)r','',true);
    Vle.InsertRow('標(biāo)準(zhǔn)誤差Sr','',true);
    Vle.InsertRow('A的標(biāo)準(zhǔn)誤差Sa','',true);
    Vle.InsertRow('B的標(biāo)準(zhǔn)誤差Sb','',true);
    Vle.InsertRow('x的平均值','',true);
    Vle.InsertRow('y的平均值','',true);
    Vle.InsertRow('x的和','',true);
    Vle.InsertRow('y的和','',true);
    Vle.InsertRow('x*y的和','',true);
    Vle.InsertRow('x*x的和','',true);
    Vle.InsertRow('y*y的和','',true);
    Vle.InsertRow('x的最小值xMin','',true);
    Vle.InsertRow('x的最大值xMax','',true);
    Vle.InsertRow('y的最小值yMin','',true);
    Vle.InsertRow('y的最大值yMax','',true);
end;

procedure VLEInsertRow(var VLE:TValueListEditor;const str:string;const x:double);
var sTemp   :string;
begin
    if x=Infinity then
        sTemp:='無窮大'
    else if x=-Infinity  then
        sTemp:='負(fù)無窮大'
    else
        sTemp:=floattostr(x);
    Vle.InsertRow(str,sTemp,true);
end;

function  GetFileNamePath(const FileName:string):string;
var n   :integer;
    i   :integer;
    L   :integer;
    s   :string;
begin
    s:= FileName ;
    L:=length(s);
    n:=1;
    for i:=L downto 1 do
    begin
        n:=i;
        if s[i]='\' then break;
    end;
    if n=1 then
        s:='\'
    else
        setlength(s,n);
    result:=s;
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美tickle裸体挠脚心vk| 欧美一级久久久| 亚洲国产精品精华液网站| 欧美一区二区三区思思人| 成人手机电影网| 亚洲成av人片在线观看| 在线一区二区三区四区| 黄页网站大全一区二区| 亚洲天堂中文字幕| 精品国产乱码久久久久久蜜臀| 成人av网址在线| 丝瓜av网站精品一区二区 | 久久久久综合网| 色呦呦国产精品| 精品制服美女丁香| 亚洲综合丝袜美腿| 中文字幕va一区二区三区| 在线不卡一区二区| 国产宾馆实践打屁股91| 丝袜美腿亚洲一区二区图片| 中文字幕在线不卡视频| 欧美亚洲动漫精品| 成人av电影观看| 精一区二区三区| 亚洲chinese男男1069| 国产精品久久久久影院亚瑟| 日韩视频在线永久播放| 欧美日韩国产一级| 91网站黄www| 国产精品911| 乱中年女人伦av一区二区| 亚洲.国产.中文慕字在线| 中文字幕一区二区三区四区不卡| 欧美一区二区免费| 欧美三级一区二区| 欧美日韩你懂得| 3d成人动漫网站| 制服.丝袜.亚洲.另类.中文| 欧美日本一区二区在线观看| 欧美性色欧美a在线播放| 91国产丝袜在线播放| 91官网在线免费观看| 91美女片黄在线观看| 在线观看国产精品网站| 欧美日韩高清一区二区三区| 欧美日韩aaaaaa| 91精品国模一区二区三区| 日韩精品一区二区三区在线播放| 日韩一区二区三区在线| 精品国产99国产精品| 精品999久久久| 中文在线一区二区| 亚洲柠檬福利资源导航| 亚洲亚洲人成综合网络| 日本不卡免费在线视频| 久久99国产精品麻豆| 国产a级毛片一区| 91视频观看视频| 欧美日韩在线综合| 日韩欧美三级在线| 国产欧美日韩激情| 亚洲视频一区二区在线观看| 亚洲制服欧美中文字幕中文字幕| 日日欢夜夜爽一区| 国产在线一区二区| 99国产精品国产精品毛片| 欧美日韩综合在线| 精品久久久久香蕉网| 中文字幕一区二区三区在线播放 | www.久久久久久久久| 亚洲综合久久av| 久久精品久久精品| 成人国产精品免费观看动漫| 欧美性受极品xxxx喷水| 日韩精品中午字幕| 中文字幕一区二区在线播放| 丝袜美腿亚洲综合| 风流少妇一区二区| 欧美日韩一级片在线观看| 久久综合久久99| 亚洲精品久久久久久国产精华液| 蜜桃一区二区三区在线| 播五月开心婷婷综合| 3d动漫精品啪啪一区二区竹菊| 国产精品无码永久免费888| 亚洲国产成人va在线观看天堂| 国产一区二区三区免费观看| 色一情一乱一乱一91av| 欧美r级电影在线观看| 亚洲女同一区二区| 国产精选一区二区三区| 欧美日韩一区三区四区| 久久久综合视频| 亚洲成人高清在线| 成人网页在线观看| 欧美va亚洲va在线观看蝴蝶网| 亚洲品质自拍视频| 国产精品88888| 欧美一区二区精美| 亚洲在线视频一区| 成人午夜激情在线| 精品国产免费人成在线观看| 一区二区三区影院| yourporn久久国产精品| 久久久久久久综合色一本| 日本欧美一区二区在线观看| 一道本成人在线| 国产精品国产三级国产三级人妇| 捆绑调教美女网站视频一区| 欧美性猛交xxxx黑人交| 国产精品传媒在线| 丁香另类激情小说| 国产日韩欧美在线一区| 久久电影国产免费久久电影| 3751色影院一区二区三区| 一区二区三区成人| 色婷婷狠狠综合| 国产精品美女www爽爽爽| 精品综合免费视频观看| 欧美一级xxx| 蜜桃久久久久久久| 欧美一区日韩一区| 丝瓜av网站精品一区二区 | 日韩午夜激情av| 亚洲国产wwwccc36天堂| 91福利资源站| 亚洲少妇30p| 一本一本久久a久久精品综合麻豆| 国产精品网站导航| 国产精品白丝av| 中文欧美字幕免费| 成人黄色a**站在线观看| 国产精品人成在线观看免费| 国产高清不卡一区| 国产无一区二区| 成人永久免费视频| 国产欧美日韩综合精品一区二区 | 欧美偷拍一区二区| 一区二区三区色| 欧美日韩视频第一区| 午夜精品免费在线观看| 国产喷白浆一区二区三区| 丰满少妇久久久久久久| 国产日韩欧美高清在线| 紧缚奴在线一区二区三区| 久久亚洲影视婷婷| 国产成人免费xxxxxxxx| 国产精品麻豆网站| 色噜噜狠狠色综合欧洲selulu| 亚洲综合免费观看高清完整版在线 | 国产精品自拍毛片| 国产日韩欧美不卡| gogo大胆日本视频一区| 亚洲亚洲人成综合网络| 日韩一区二区精品葵司在线| 国产一区二区三区久久悠悠色av| 久久精品综合网| 91色乱码一区二区三区| 亚洲一二三四区不卡| 欧美一区在线视频| 丁香六月久久综合狠狠色| 亚洲码国产岛国毛片在线| 欧美日韩成人在线| 国产美女精品人人做人人爽| 中文一区二区完整视频在线观看| 91国偷自产一区二区三区观看| 天堂在线亚洲视频| 久久九九国产精品| 欧美性一二三区| 国产乱码精品一区二区三区忘忧草 | 国产a精品视频| 亚洲精品少妇30p| 制服丝袜av成人在线看| 国产99久久久国产精品免费看| 亚洲天堂免费看| 精品三级在线看| 色哟哟日韩精品| 韩国欧美国产一区| 亚洲激情在线播放| 久久免费精品国产久精品久久久久| 99久久99久久精品免费观看| 日本午夜一区二区| 国产精品九色蝌蚪自拍| 日韩免费观看高清完整版在线观看 | 国产曰批免费观看久久久| 亚洲欧洲av另类| 日韩天堂在线观看| 91麻豆福利精品推荐| 久久99精品国产麻豆不卡| 亚洲欧美日韩成人高清在线一区| 精品国精品国产尤物美女| 91福利社在线观看| 国产精品综合二区| 视频一区欧美精品| 综合中文字幕亚洲| 国产清纯白嫩初高生在线观看91 | 亚洲欧美一区二区三区国产精品| 日韩三级视频在线看| 色婷婷亚洲婷婷| 成人手机在线视频|