Matlab使用成长日记(四)——连乘&阶乘&数值积分

本文用来记录使用matlab时出现的一些问题,内容主要是matlab中与其他编程语言(Java、C++、python)在使用上的细小区别以及matlab特有的一些用法。内容不全面,分类也不完整,如若哪里存在错误,欢迎批评指正:)


简单函数写法

例:
f ( x ) = 4 1 + x 2 f(x)=\frac{4}{1+x^2} f(x)=1+x24

f=@(x)4/(1+x^2);

括号内为函数自变量,括号后边为函数表达式

连乘

数值连乘——cumprod()

向量的累计乘积

A = 1:5;
B = cumprod(A)
B = 1×5

     1     2     6    24   120

B ( 2 ) = A ( 1 ) × A ( 2 ) B(2)=A(1)\times A(2) B(2)=A(1)×A(2)
B ( 3 ) = A ( 1 ) × A ( 2 ) × A ( 3 ) B(3)=A(1)\times A(2)\times A(3) B(3)=A(1)×A(2)×A(3)
B ( 4 ) = A ( 1 ) × A ( 2 ) × A ( 3 ) × A ( 4 ) B(4)=A(1)\times A(2)\times A(3)\times A(4) B(4)=A(1)×A(2)×A(3)×A(4)
B ( 5 ) = A ( 1 ) × A ( 2 ) × A ( 3 ) × A ( 4 ) × A ( 5 ) B(5)=A(1)\times A(2)\times A(3)\times A(4) \times A(5) B(5)=A(1)×A(2)×A(3)×A(4)×A(5)

矩阵中每列的累计乘积

A = [1 4 7; 2 5 8; 3 6 9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

计算 A 的列的累积乘积。

B = cumprod(A)
B = 3×3
     1     4     7
     2    20    56
     6   120   504

矩阵中每行的累计乘积

A = [1 3 5; 2 4 6]
A = 2×3

     1     3     5
     2     4     6

计算 A 的行的累积乘积。

B = cumprod(A,2)
B = 2×3

     1     3    15
     2     8    48

含变量的连乘——symprod()

含已知变量的连乘

例:
M = ∏ k = 2 ∞ 1 − 1 k 2 M=\prod_{k=2}^\infty1- \frac{1}{k^2} M=k=21k21

syms k
M = symprod(1 - 1/k^2, k, 2, Inf)
M=
   1/2

含有未知变量的连乘

N = ∏ i = 0 5 ( t − i )   N=\prod_{i=0}^{5}(t-i)\ N=i=05(ti) 

syms i t
y= symprod(t-i, i, 0, 5);
g = str2func(['@(t)',vectorize(y)]);
y =
  t *(t-1)*(t-2)*(t-3)*(t-4)*(t-5)
  
g =

  包含以下值的 function_handle:

    @(t)t.*(t-1).*(t-2).*(t-3).*(t-4).*(t-5)

其中,str2func()函数可将字符串转换为函数。

阶乘

f = n ! f=n! f=n!

f = factorial(n)

数值积分

q = integral(fun,xmin,xmax)
例:
f = e − x 2 ( l n x ) 2 f=e^{-x^{2}}(lnx)^{2} f=ex2(lnx)2

fun = @(x) exp(-x.^2).*log(x).^2;
q = integral(fun,0,Inf)
q = 1.9475

本Matlab系列暂时停更一段时间。开始写博客是为了在进行课程实验的同时,把每次使用matlab的心得记录下来,这次是最后一个实验了
现在学期末课程结束了,要考试了T^T,江湖再见~
以后用到matlab的时候会继续更新的 : D

  • 23
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB中,矩阵连乘可以使用乘法运算符(*)来实现。引用\[1\]中的代码展示了一个例子,其中A和B是两个矩阵,AxB_1表示使用MATLAB的乘法运算符进行矩阵相乘,而AxB_2是通过循环计算实现的矩阵相乘。然后通过计算两者之差的范数来验证结果的准确性。 然而,引用\[3\]中提到,MATLAB可能使用了某种等价方法来更高效地实现矩阵乘法,这可能导致与实际的矩阵乘法结果存在微小的差别。这种差异可能是由于有限字长效应引起的。因此,当使用MATLAB进行矩阵连乘时,可能会出现微小的差异。在引用\[3\]中的例子中,结果严格等于零,可能是因为在Octave中使用了不同的实现方法。 总之,MATLAB中的矩阵连乘可以使用乘法运算符(*)来实现,但由于有限字长效应等原因,可能会导致与实际矩阵乘法结果存在微小的差异。 #### 引用[.reference_title] - *1* *3* [MATLAB中的矩阵乘法与实际矩阵乘法的差异](https://blog.csdn.net/jbb0523/article/details/127881152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Matlab使用成长日记)——连乘&阶乘&数值积分](https://blog.csdn.net/weixin_43445661/article/details/106307942)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值