• Matlab--高等应用数学问题的MATLAB求解


    1.求解n阶导数

    1. %%
    2. %如何求解n阶导数,用到diff(f,n)
    3. syms x;
    4. f=sin(x)/(x^2+4*x+3);
    5. diff(f,4)
    6. %%
    7. %如何求解100阶导数
    8. tic,F=diff(f,100);toc

    2.Matlab语言的优越性

    1. %%
    2. %MATLAB的优点:
    3. %MATLAB 语言的简洁高效性
    4. %MATLAB 语言的科学运算功能
    5. %MATLAB 语言的绘图功能
    6. %MATLAB 庞大的工具箱与模块集
    7. %MATLAB 强大的动态系统仿真功能

    3.Matlab语言变量声明规则

    1. %%
    2. %MATLAB语言的变量与常量:变量定义和常见的编程语言类似
    3. %uint8,常用于图像表示和处理,8位
    4. %int8(),int16(),int32(),uint16(),uint32()
    5. %变量声明:syms/var_list/var_props
    6. %显示符号变量精度:vpa(A)
    7. %默认精度:32位小数

    对应的应用:vpa()函数求解pi的300有效数字: 

    1. %%
    2. %求出pi的300位有效数字
    3. vpa(pi,300)

    4.Matlab矩阵的使用规则

     4.1.矩阵的表示和输出

    1. %%
    2. %矩阵A的表示
    3. A=[1,2,3;4,5,6;7,8,9]
    4. A=[[A;[1 2 3]],[1;2;3;4]]
    5. %ans=[[1,2,3,1],[4,5,6,2],[7,8,9,3][1,2,3,4]]
    6. %%
    7. %冒号表达式:v=s1:s2:s3 s1起始 s3终止,s2步长
    8. v1=0:0.2:pi
    9. %v2=0:-0.1:pi
    10. v3=0:pi%默认步长为1
    11. v4=pi:-0.1:0
    12. %%
    13. %矩阵切片,和Python类似
    14. A=[1,2,3;4,5,6;7,8,0];
    15. B1=A(1:2:end,:)
    16. B2=A([3,2,1],[3,2,1])
    17. B3=A(:,end:-1:1)

    4.2.矩阵的代数运算

    1. %%
    2. %矩阵的代数运算
    3. %一般来说,矩阵的转置A^T=A'
    4. %矩阵乘法A*B
    5. %矩阵左除法AX=B=>X=A^(-1)B=A\B
    6. %矩阵右除法XA=B=>X=BA^(-1)=B/A
    7. %矩阵的左右翻转B=fliplr(A)
    8. %矩阵旋转90度:D=rot90(A)
    9. %矩阵旋转180度:D=rot90(rot90(A))
    10. %矩阵A的x次幂:F=A^x
    11. %矩阵的点运算C=A.*B

    矩阵代数运算例题:

    1. %%
    2. %求出矩阵A的全部三次方根,并检验结果
    3. A=[1,2,3;4,5,6;7,8,0]
    4. C=A^(1/3)

    4.3.矩阵的逻辑运算 

    1. %%
    2. %MATLAB的矩阵逻辑运算
    3. %与运算 A&B
    4. %或运算 A|B
    5. %非运算 B=~A
    6. %异或运算 xor(A,B)

    矩阵逻辑预算例题:

    1. %%
    2. %矩阵的比较运算
    3. A=[1,2,8; 4,5,2; 7,8,0];
    4. A
    5. B=find(A>5)%返回符合条件的矩阵下标,竖着看。
    6. %%
    7. A
    8. [i,j]=find(A>5)
    9. %%
    10. %all函数检测矩阵是否全为非零元素 是返回1 不是返回0
    11. %any函数检测矩阵是否存在非零元素 是返回1 不是返回0
    12. a1=all(A>=5),a2=any(A>=5)

    4.4.矩阵的化简与变换

    1. %%
    2. %MATLAB解析结果的化简与变换
    3. %collect()合并同类项
    4. %expand()展开多项式
    5. %factor()因式分解

     矩阵的化简与变换例题:

    1. %%
    2. syms s;
    3. P=(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64)
    4. P1=simplify(P)%simple函数不能使用
    5. P3=expand(P)
    6. %%
    7. %MATLAB变量替换语句
    8. syms x;
    9. syms x1;
    10. f=x+3;
    11. f1=subs(f,x,x1)
    12. f1=latex(f)

    5.部分例题代码

    5.1.Hilbert矩阵构造

    1. %%
    2. %例题:2.10假设3x3的Hilbert矩阵可以由定义A=hilb(3),试对其进行有理数变换
    3. A=hilb(3)
    4. [n,d]=rat(A)%返回n./d的值

    5.2.求解公约数和公倍数

    1. %%
    2. %例题2.11:试求1856120和1483720的最大公约数与最小公倍数,并求出所得出的最小公倍数的质因数分解。
    3. n=sym(1856120);
    4. m=sym(1483720)
    5. gcd(m,n)%最大公约数
    6. lcm(m,n)%最小公倍数
    7. factor(lcm(m,n))

    5.3.寻找1-1000的质数

    1. %%
    2. %例2.12:试求出1~1000间的全部质数
    3. A=1:1000;
    4. B=A(isprime(A))

    6.Matlab的循环结构例题

    6.1.求1-100之和

    1. %%
    2. %例2.13:循环结构for
    3. s1=0;
    4. for i=1:100
    5. s1=s1+i;
    6. end
    7. s1
    8. %%
    9. %循环结构:while
    10. s2=0;
    11. i=1;
    12. while(i<=100)
    13. s2=s2+i;
    14. i=i+1
    15. end
    16. s2
    17. %%
    18. %更加简单的sum函数
    19. sum(1:100)

    6.2.求解最小m值

    1. %%
    2. %例2.14:用循环求解求最小的 m,使下式成立
    3. sum=0;
    4. i=1
    5. while(sum<1000)
    6. sum=sum+i
    7. i=i+1
    8. end
    9. sum
    10. i

    6.3.循环求和

    1. %%
    2. %例2.15
    3. sum=0;
    4. for i=1:100000
    5. sum=sum+1/(2^i)+1/(3^i);
    6. end
    7. sum

     7.绘制隐函数

    1. %%
    2. %绘制隐函数
    3. ezplot('x^2*sin(x+y^2)+y^2*exp(x+y)+5*cos(x^2+y)',[-10,10])
    4. saveas(gcf,['C:\Users\Zeng Zhong Yan\Desktop\MATLAB\','隐函数','.png'])

     

  • 相关阅读:
    pandas 排序和排名
    Prometheus-2:blackbox_exporter黑盒监控
    C++类和对象【中】
    【云原生 三】 kubelet调用CRI的演进过程
    %md在printf语句和scanf语句中的区别
    Hadoop 3.X HA集群部署
    【ICer的脚本练习】通过perl脚本来检查仿真log的结果
    【C#】依赖注入及Autofac
    Windows 基于Visual Studio 开发Qt 6 注意事项
    关闭VS Code中的鼠标悬停时的提示框(MDN Reference)
  • 原文地址:https://blog.csdn.net/m0_71819746/article/details/132940307