matlab 函数:matlab如何对函数求导?

1判断函数的性质

matlab 函数:matlab如何对函数求导?

下面我们就以带绝对值的正选函数f(x)=sin|x|为例来求导。先来判断一下一下该函数的性质。我们先用matlab画一下该函数的图形matlab 函数,具体代码如下:%画出f(x)=sin|x|图形clearx=-2*pi:pi/20:2*pi;y=sin(abs(x));plot(x,y,\'r\',\'LineWidth\',1.5)title(\'函数f(x)=sin|x|图形\'),xlabel(\'x\'),ylabel(\'y\') 函数图形为:

matlab 函数:matlab如何对函数求导?

2x≥0matlab 函数,有导数的定义求右导数

matlab 函数:matlab如何对函数求导?

当x≥0时matlab 函数,我们可以去掉函数中的绝对值,这时候函数f就变为:f(x)=sinx,这时候求右导数就简单多了,不过还是得用定义发求右导数。具体代码以及计算结果请看下图:

matlab 函数:matlab如何对函数求导?

3x≤0,由导数的定义求左导数

matlab 函数:matlab如何对函数求导?

同理,当x≤0时,去掉函数中的绝对值,f就变为:f(x)=sin(-x).。用定义发求左导数。具体代码以及计算结果请看下图,有图上的结果再结合上一部结论可以得出,f(x)在x=0点的导数不存在,而且在小于0的区间和大于0的区间导数不一致。

matlab 函数:matlab如何对函数求导?

4直接利用diff求导

matlab提供了一个直接求函数导数的指令diff,然而当函数含有绝对值时候是否还有效呢?我们来探索一下。有下图中可以看出,当x=0时,函数的导数出现了错误的结果。

5画出图形代码

下面我们画出函数f(x)、两个区间分别的导数图形。具体代码如下图所示:

6画出的图形如下图所示:

matlab中怎样输入函数表达式?

如何在matlab中输入如下函数方法/步骤1、自然数对数 log(x)我们在MATLAB主窗口中输入a1=log(2.7183),回车,我们可以看到a1近似为1,e约等于2.7183,2、以2为底数的对数 log2(x)我们在MATLAB主窗口中输入a2=log2(4) ,回车,可以看到结果a2=23、以10为底数的对数 log10(x)我们在MATLAB主窗口中输入a3=log10(10) ,回车,可以看到结果a3=1

什么是matlabsubs函数?

matlab中subs()是符号计算函数,详细用法可以在Matlab的Command Windows输入:help subs。subs()函数表示将符号表达式中的某些符号变量替换为指定的新的变量,常用调用方式为:R = subs(S, new) 利用new的值代替符号表达式S中的默认符号。R = subs(S) 用由调用函数或Matlab工作空间中获取的值替代了在符号表达式S中的所有当前的变量。R = subs(S, old, new) 利用new的值代替符号表达式中old的值。old为符号变量或是字符串变量名。new是一个符号货数值变量或表达式。也就是说R = subs(S,old,new)在old=new的条件下重新计算了表达式S。这种替换第一次作为Matlab表达式被尝试,如果所有在new中的数值是双精度的,计算是以双精度算术运算进行的。讲new值转化为符号可以验证符号货变量的运算精度。如果old和new是大小和类型相同的向量或是元包数组,每一个old的元素都将被相应新的元素替换。如果S和old是标量,new是数组或元包数组,则扩展标量去计算一个数组结果。如果new是个数值矩阵元包数组,替换讲运行为/智能元素/(i.e., subs(x*y,{x,y},{A,B}) returns A.*B when A and B are numeric)。如果subs(s,old,new) 没有改变S,则将会试行subs(s,new,old)。这将为前面的版本提供向前的兼容性,消除记忆参数顺序。subs(s,old,new,0)不改变参数,如果S没有改变。首先是调用格式:R = subs(S)R = subs(S, new)R = subs(S, old, new)其中S为符号表达式,默认的是变量x!例1:>> syms x;>> f=x^2;>> subs(f,2)ans = 4例2:将表达式x^2+y^2中x取值为2>> syms x y;>> f=x^2+y^2;>> subs(f,x,2)ans =y^2 + 4例3:>> syms x y;>> f=x^2+y^2;>> subs(f,findsym(f),2)ans =y^2 + 4其中findsym(f)为查找f中所有的符号变量例4:同时对两个或多个变量取值求解>> syms a b;subs(cos(a) + sin(b), {a, b}, {sym(\'alpha\'), 2})ans =sin(2) + cos(alpha)例5:带入数据的值也可以是数组形式>> syms t a;>> subs(exp(a*t), \'a\', -magic(2))ans =[ 1/exp(t), 1/exp(3*t)][ 1/exp(4*t), 1/exp(2*t)]