2017.7.2

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)]

你可能感兴趣的:(2017.7.2)