本文用来记录使用matlab时出现的一些问题,内容主要是matlab中与其他编程语言(Java、C++、python)在使用上的细小区别以及matlab特有的一些用法。内容不全面,分类也不完整,如若哪里存在错误,欢迎批评指正:)
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=2∏∞1−k21
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=0∏5(t−i)
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=e−x2(lnx)2
fun = @(x) exp(-x.^2).*log(x).^2;
q = integral(fun,0,Inf)
q = 1.9475
本Matlab系列暂时停更一段时间。开始写博客是为了在进行课程实验的同时,把每次使用matlab的心得记录下来,这次是最后一个实验了
现在学期末课程结束了,要考试了T^T,江湖再见~
以后用到matlab的时候会继续更新的 : D