zoukankan      html  css  js  c++  java
  • Mathematica/偏导数/最小二乘法(线性回归)

    a = 2/123
    a                          //输出的还是2/123
    N[a]                       //输出的就是小数点
    N[a,2]                     //保留三位小数点
    Clear[a] 
    Solve[2== x^2-7 , x]       //结果-3 和 3
    Plot[Sin[x], {x, 0, pi}]
    Integrate[1/(1 - x^3), x]
    Log[1] = 0
    积分中的积分d 一定适用esc dd 打出来的 或者[DifferentialD]. 
    
    求导:
        f = 1/(1+x)
        D[f,x]           也就是f'(x)
        D[f, {x, 2}]     二阶导
    ScientificForm[0.0000125] = 1.25 * (10^-5)  //这种是科学计数
    
    微分:
    DSolve[{y'[x] - 2*y[x] == 0}, y[x], x]             //不带初值
    DSolve[{y'[x] - 2*y[x] == 0, y[0] == 1}, y[x], x]  //初值微分方程y'-2y=0 y[0]=1

    绘图:

    1,one dim一元函数

    2,画带有积分的一元函数要注意:

     参数方程:

    x=(sin t) ^3

    y=(cos t) ^3

     

    同时绘制2个参数图:

     

    参数图并且求导:

    三维参数图:

    r(t ) = (cos t)i + (sin t)j + (sin2t)k

    z = x^2 + y^2

    ContourPlot3D[x^2 + y^2 == z, {x, -3, 3}, {y, -3, 3}, {z, -18, 18}, PlotLabel -> "x^2+y^2=z"] 

     

    2,:z^2 + x^2 -y^2=1

    3 二元函数:

    二元函数的图形是三维坐标空间的一个点集. 所以二元函数形式为f(x,y) ,f(x,y)= c ,就是等位线(等高线)方程。

    画 (a)二元函数给定的曲面,(b)并且画等高线(等位线),(c)并且画f 给定点的等高线(等位线)

     

     4,三元函数:

    三元函数的的图形是四维空间的一个点集. 所以画三元函数的一些等高线便于理解三元函数.

    例如:f(x,y,z) = 4Ln(x^2 + y^2 + z^2)

    可以画f(x,y,z) = 0 ,f(x,y,z)=1 .... 三维等位面图形。

    5,参数化表面:并画等位线

    x = u cosv,   y=u sinv,  z=u , 0<=u <=2,  0<=v<=2Pi

    ParametricPlot3D[{u*Cos[v], u Sin[v], u},  {u, 0, 2}, {v, 0, 
      2 Pi}    ]
    ParametricPlot[
     Evaluate[Table[{z Cos[v], z Sin[v]}, {z, 0, 2, 1/3}]], {v, 0, 2 Pi}, 
     AspectRatio -> Automatic]

     

     

    偏导数不存在的f(x,y) = sqrt(x^2 + y^2)

    最小二乘法,线性回归算法。

    自己在笔上求了一阶偏导数=0时的临界点。二阶偏导数太麻烦,还要判断Wxx*Fyy - (Wxy)^2 > 0 , Wxx>0 才满足求到最近距离。直接把上答案。

    一阶偏导数推到过程:

     

    二阶具体完整过程:

     

    分析二阶偏导数,才能确定是不是 w最小。

     

    最小二乘方平面拟合:

    画3d图形,绘制等高线,求二阶导数fxx,fyy,fxy,求fxx*fyy - fxy^2:

    Clear[x, y];
    f[x_, y_] = 2*x^4 + y^4 - 2*x^2 - 2*y^2 + 3;
    {xmin, xmax} = {-3/2 , 3/2};
    {ymin, ymax} = {-3/2, 3/2};
    Plot3D[f[x, y], {x, xmin, xmax}, {y, ymin, ymax}]  (* 绘制三维图形 *)
    ContourPlot[f[x, y], {x, xmin, xmax}, {y, ymin, ymax}] (* 绘制几条等高线 *)
    fx = D[f[x, y], x] ;       
    fy = D[f[x, y], y];
    
    (* 求critical points*)
    cirt = Solve[{fx == 0, fy == 0}];
    
    (*把临界点写成{x,y} {x,y} {x,y}... 形式*)
    critpts = {x, y} /. cirt
    
    (* 求二阶导数*)
    fxx = D[fx, x];
    fxy = D[fx, y];
    fyy = D[fy, y];
    
    (*二阶导数判别法 写成{{临界点},判别法的值,fxx的值}*)
    disc = fxx * fyy - fxy ^2 {{x, y}, disc, fxx} /. cirt

     输出:

     lagrange method:

    到一个点的极大距离,求球面x^2+y^2+z^2=4离点(1,-1,1)最远的点

    1, method 1 use the build-in function Select[] method... But i think the it is not fastest, The F function has run two times order to get variable d

    and Select[] method also run the f[x,y,z] two times. Select[] and Map[] should pay attention to these two functions.Big loop~......o(N) + o(N)

    Use fully programming method: o(N)

    as you can see, the d variable is not useable.

    RegionPlot/PolarPlot 区域图/极坐标图

  • 相关阅读:
    Ubuntu 12.10使用apt安装Oracle/Sun JDK
    织梦(dedecms)系统常用全局变量调用标签及路径
    Lighttpd虚拟主机和多域名的配置
    Ubuntu解压命令大全
    OFBiz终于起航了
    eclipse 安装gradle 插件的三种方式
    验证码
    session的使用
    实验二
    作业2(魔术)
  • 原文地址:https://www.cnblogs.com/gearslogy/p/9528969.html
Copyright © 2011-2022 走看看