1.matlab 中对于任意底的对数,可以使用换底公式转换为用以上任一种对数函数表示的式子。
自然对数函数ln()用log()表示;对于常用的如以2、10为底的对数,分别用log2()和log10()表示。
2.e^(n)在matlab中写成 exp(n)。
3.lambertw是朗伯W函数
W = lambertw(X)表示为we^w=x;
lambertw(x,k)表示多值函数的第K个分支,也就是说MATLAB把等式用这个表示函数表示了,并不算解出最终结果。
所以要在MATLAB窗口中继续输入:x=-lambertw(0, -5/22),得到的x=0.3098才是最终结果。
4.diff(f(x)),代表着对单变量函数求一阶导数。pretty(ans),将当前变量显示为我们常用的书面形式。
diff(函数),求的一阶导数;diff(函数,n),求的n阶导数(n是具体整数);diff(函数,变量名),求对的偏导数;
5.反三角函数在matlab中定义方式:
(1)弧度值反三角函数:asin()——反正弦;acos()——反余弦;
atan()——反正切;acot( )——反余切
(2)角度值反三角函数:asind()——反正弦;acosd()——反余弦;atand()——反正切;
acotd( )——反余切
6.隐函数求导:例如用matlab求隐函数y = tan(x+y)的导数。
syms x y
F = y - tan(x+y)% 隐函数F = y - tan(x+y) = 0
dy1 = - diff(F,x)/diff(F,y)%一阶导数
dy2 = diff(dy1,x) + diff(dy1,y)*dy1;%二阶导数
dy2 = simplify(dy2)
(1)simplify 函数对表达式进行化简;
(2)radsimp函数对含根式的表达式进行化简;
(3)combine 函数将表达式中以求和、乘积、幂运算等形式出现的项进行合并;
(4)collet合并同类项
(5)factor函数实现因式分解
(6)convert函数完成表达式形式的转换
7.求偏导数:
syms x t;
z = sin(x*t^2)
ddt = diff(z, t) % 对t偏导
ddx = diff(z, x) % 对x偏导
ddtx=diff(ddt,x) %先对t求偏导,再对x求偏导
ddnx=diff(z,t,4) %对t求4阶偏导
8.solve求解:
首先来求一个二元一次方程组
9x+8y=10 式1
13x+14y=12 式2
我们一般的解法是代入法,或者加减消去法。比较繁琐。
这里我们只需输入如下命令即可求出解:
[x,y]=solve('9*x+8*y=10','13*x+14*y=12','x','y')
9.fsolve求解:
用fsolve函数求解:
x1-0.7sinx1-0.2cosx2=0
x2-0.7cosx1+0.2sinx2=0
先编制函数文件fc.m如下:
%fc.m
function y=fc(x)
y(1)=x(1)-0.7*sin(x(1))-0.2*cos(x(2));
y(2)=x(2)-0.7*cos(x(1))+0.2*sin(x(2));
y=[y(1) y(2)];
在Matlab窗口中输入:
x0=[0.5 0.5];
fsolve('fc',x0)
ans = 0.5265 0.5079
10.符号微分方程求解
dsolve的用法:
Examples:
dsolve('Dx = -a*x') returns
ans = exp(-a*t)*C1
x = dsolve('Dx = -a*x','x(0) = 1','s') returns
x = exp(-a*s)
y = dsolve('(Dy)^2 + y^2 = 1','y(0) = 0') returns
y =
[ sin(t)]
[ -sin(t)]