zoukankan      html  css  js  c++  java
  • matlab小记(一)

    求解多元函数的Jacobi矩阵,可以采用matlab中自带的diff函数,来求解。

    diff函数在matlab中的调用格式:

    diff(函数) , 求函数一阶导数;

    diff(函数, n) , 求的n阶导数(n是具体整数);

    diff(函数,变量名), 求对“变量名”的偏导数;

    diff(函数, 变量名,n) ,求对“变量名”的n阶偏导数;

    即使在函数中有些字母变量对应的是常数,但是我们在对其函数进行求偏导操作是,仍可以看其为变量,这样就可以采用diff函数,也不会影响求解结果。
    %求解Jacobi矩阵
    syms h h1 h2 s110 s111 s1130 s130 s140 c1 c2 b1 h3;
    syms x1 x2 x3 x4;
    f1(x1,x2,x3,x4,h,h1,h2,s110,s111,s1130,s130,s140,c1,c2,b1,h3)=s110+s111*x1+2*c1*h*h3*x2+(s1130-2*h*h3*x2)*x3+(-2*c2*h+2*h*h3*x1)*x4;

    a11=diff(f1(x1,x2,x3,x4,h,h1,h2,s110,s111,s1130,s130,s140,c1,c2,b1,h3),x1);
    a12=diff(f1(x1,x2,x3,x4,h,h1,h2,s110,s111,s1130,s130,s140,c1,c2,b1,h3),x2);
    a13=diff(f1(x1,x2,x3,x4,h,h1,h2,s110,s111,s1130,s130,s140,c1,c2,b1,h3),x3);
    a14=diff(f1(x1,x2,x3,x4,h,h1,h2,s110,s111,s1130,s130,s140,c1,c2,b1,h3),x4);

    J=[a11 a12 a13 a14;a21 a22 a23 a24;a31 a32 a33 a34;a41 a42 a43 a44]

    后来发现matlab函数中有求解Jacobi矩阵的自带函数,来求解,例程如下:

           syms x1 x2 x3 
      f1=f1(x1,x2,x3);
      f2=f2(x1,x2,x3);
      f3=f3(x1,x2,x3)
      J=jacobian([f1;f2;f3],[x1 x2 x3])

  • 相关阅读:
    利用Github Actions自动保持 GitHub 提交状态常绿
    windows下搭建轻量级php代码审计环境
    jquery实现点击弹出对话框
    redis学习记录(1)Redis简介
    StatefulSet
    Pod
    Spark 写Hive指定动态分区
    我常用的git操作
    在C#中如何使用GetOpenFileName函数多选文件
    image matching challenge
  • 原文地址:https://www.cnblogs.com/Qiangcm/p/8709810.html
Copyright © 2011-2022 走看看