首页 > 其他分享 >Matlab数学基本使用

Matlab数学基本使用

时间:2024-10-18 18:22:10浏览次数:10  
标签:基本 log 函数 元素 矩阵 数学 Matlab 向量 乘法

文章目录


一、求一元多次方程

求解2x^5 -3x3+71x2-9x+13=0

在这里插入图片描述
第一行命令是建立多项式系数向量,第二行是调用roots函数求方程的全部根

二、求解线性方程组

2x+3y-z=2
8x+2y+3z=4
45x+3y+9z=23

在这里插入图片描述
前两条命令建立系数矩阵a和向量b,第三条命令求线性方程组的解,inv(a)用于求a的逆矩阵。第三条命令也可以用命令x=a\b等价表示。

三、求定积分

对xln(1+x)dx进行定积分0到1

在这里插入图片描述

f=@(x) x.*log(1+x);

这一行定义了一个匿名函数 f(x)

其中,x.*log(1+x) 表示对 x 进行逐元素操作,即对于输入的每一个 x 值,计算

@ 符号用于定义匿名函数,后面跟的是函数的变量(x),然后是函数体。
integral(f,0,1):

integral 是 MATLAB 用来计算数值积分的函数。
第一个参数 f 是要进行积分的函数,这里传入的是之前定义的匿名函数 f(x)。
第二个和第三个参数 0 和 1 分别表示积分的下限和上限

在 MATLAB 中,使用点运算符(如 .*./.^)是为了进行逐元素操作(element-wise operation)。也就是说,点运算符的作用是对向量或矩阵中的每个元素分别进行操作,而不是执行矩阵运算。

具体到你的代码中:

f = @(x) x.*log(1+x);

这里用到了 .*,表示对于输入的 x,我们逐元素地计算 xlog(1+x) 的乘积。如果你输入的是一个向量或矩阵,那么 x.*log(1+x) 会对向量或矩阵的每个元素进行逐元素计算。

为什么需要用点运算符:

  1. 向量化计算

    • MATLAB 中的很多操作都是基于矩阵和向量的。假如你输入的 x 是一个向量,像 x = [0.1, 0.2, 0.3],那么 x.*log(1+x) 就会分别计算每个元素的乘积, 这就是逐元素操作,而不是矩阵乘法。
  2. 避免错误

    • 如果你只使用 *(没有点),MATLAB 会尝试进行矩阵乘法。对于标量来说,这不会出问题,但对于向量或矩阵来说,这会导致错误,因为矩阵乘法要求矩阵的维度匹配,而逐元素乘法没有这个限制。

例子对比:

  • 逐元素乘法(正确方式):使用 .*

    A = [1, 2, 3];
    B = [4, 5, 6];
    C = A .* B;  % 对应元素相乘,结果为 [4, 10, 18]
    
  • 矩阵乘法(错误方式,如果维度不符合会报错):使用 *

    A = [1, 2, 3];
    B = [4, 5, 6];
    C = A * B;  % 这会报错,因为 A 和 B 不是合适的矩阵维度来进行矩阵乘法
    

总结:

f = @(x) x.*log(1+x); 中使用 .* 是为了确保当 x 是一个向量或矩阵时,计算会按逐元素操作进行,而不是进行矩阵乘法。

标签:基本,log,函数,元素,矩阵,数学,Matlab,向量,乘法
From: https://blog.csdn.net/2302_81456999/article/details/142967067

相关文章