1楼:匿名用户
你好,diff并不是求导的意思,而是求差分difference。
如果diff(x),x是一个矩阵,则对每一列求差分。
a=[1,2;2,1];
disp('matlab相约七点半 579164912');
diff(a)
运行结果为:
matlab相约七点半群 579164912ans =
1 -1
觉得有帮助就采纳吧。
matlab中用diff求导后的值为什么变成理论值的0.1倍了
2楼:匿名用户
因为导数的定义是dy/dx,你这里是df/dt你用diff(f),实际上只是求了df,还有除以自变量的微分你这里自变量t的间隔是0.1
所以d应该等于diff(t)/0.1也就是你计算的十倍那样就和ff一样了
为什么matlab中用diff求出的不是求导的结果。
3楼:匿名用户
^matlab中's'表示输入一个字符串,求导可以试试如下**:clc;clear;close all;
syms x b;
s1=6*x^3-4*x^2+b*x-5;
diff(s1)
显示结果:ans =
18*x^2 - 8*x + b
4楼:匿名用户
因为它将字符按数值处理了,可以试试:>> diff(s1, 'x')ans =
18*x^2 - 8*x + b
>> 或者使用符号函数clc; clear; close all;
syms x b;
s1 = 6*x^3 - 4*x^2 + b*x - 5;
diff(s1, x)
ans =
18*x^2 - 8*x + b
>>
matlab矩阵里对于时间变量t的导数应该如何表示?
5楼:我要那个妾
问题问的不清楚。什么类型的矩阵?符号矩阵?
如果a是符号矩阵
diff(a,t)
你的矩阵乘法是点乘还是叉乘?这个问题不难的。常数矩阵就按照正常定义就可以。c里的4个变量都是t的函数吧。假设它们分别是a=t,b=t^2,c=t-1,d=sin(t)
syms t;
a=t;
b=t^2;
c=t-1;
d=sin(t);
c=[a b ; c d];
a 是 c关于t的导数的话,那么 a = diff(c,t);
我就不明白你的等式a=b*c+d*e代表什么含义了。bcd都是常数矩阵,e a 是符号矩阵,这个式子怎么可能成立呢?
你最好把你的问题原原本本弄上来。
因为不知道你的原始数据,数据类型,数据结构,根本没法选择具体怎么编程。
matlab 如何规定常数,比如求求sin(w*t)的导数时,w是常数,t为变量,怎么定义w
6楼:宇逸
>> syms w t
>> f=sin(w*t)
f =sin(w*t)
>> f1=diff(f,'t')
f1 =
cos(w*t)*w
>>求导时候,指出来对谁求导就行了,剩下的会自动当做常量处理。
7楼:刘贺
只要指定变量就行了,如果不指定变量,matlab会自动确定自由变量有时会错误的。
clear all;
syms w t
y=sin(w*t);
df=diff(y,t)
matlab中对矩阵求导后为什么矩阵中数会少一个?
8楼:书宬
fa=(x.*st(2:end)-y.
*st1(2:end))./((st(2:
end)).^2+(st1(2:end):
1).^2); % 这样改就好了
matlab中diff函数求差分什么意思?课本上说是求导数。两者有什么区别?
9楼:
差分是针对离散情况如离散向量、数字图像等来讲的,而导数是针对连续函数来讲的,这两种情况都可以用diff函数来求
离散情况如:
a=[1 2 3], diff(a) = [1 1];
连续情况如:
syms x y
y=x^2;
diff(y,x)=2*x
望采纳,谢谢!
10楼:小小肖麒麟
题主你好,请问你追问中的的**,是出自哪一本书?可以告诉我一下吗?感激不尽
matlab 用diff求导的话 如果方程里面有cosd就会出错。。改成cos就行了
11楼:匿名用户
很遗憾diff函数中你用cosd,是无法解析的,>> diff('cos(x)')
ans =
-sin(x)
>> diff('cosd(x)')
ans =
diff(cosd(x),x)
这时你可以考虑cos和cosd的转换
cosd(x) = cos(x/180*pi)因此diff('cosd(x)') = pi/180*diff('cos(x)')
matlab中的diff函数
12楼:匿名用户
楼主,您好;
1、最高项是6*x^3,而非6*t^3吧?
2、我是这样运行的,可以得到你想要的结果:
>> syms x b
>> s1=6*x^3-4*x^2+b*x-5;
>> diff(s1,1);
>> diff(s1,1)
ans =
18*x^2-8*x+b
>> syms x b
>> s1=6*x^3-4*x^2+b*x-5;
>> diff(s1,1)
ans =
18*x^2-8*x+b
3、diff有2个用途:求向量相邻间元素的差 和 求导;
你得到的结果是误让系统执行了前者;
而且,注意到:
>> '*' - '6'
ans =
-12这就是第1个数为什么是-12,之后的就不用再讲了。
13楼:暗影之王
在matlab中,diff函数用于求导数或者向量和矩阵的比较。在matlab的命令窗口中输入doc diff或者help diff即可获得该函数的帮助信息。
调用格式及说明:
y = diff(x)
这里求函数x的一阶导数
y = diff(x,n)
求函数x的n阶导数
y = diff(x,dim)
求函数x关于变量dim的偏导数
y = diff(x,n,dim)
求函数x关于dim的n阶偏导数
若x为向量,
y = diff(x)= [x(2)-x(1),x(3)-x(2),...,x(n)-x(n-1)]
求前后两项之差
若x为矩阵,
y = diff(x)= [x(2:n,:) - x(1:n-1,:)]
求每列前后两项之差
14楼:晏漾漾达农
如果你的函数是解析表达式,可以借助于符号运算求导数,求出导数之后再转换回inline函数。
示例:>> fun=inline('sin(x^2)*cos(y^3)')
fun =
inline function:
fun(x,y) = sin(x^2)*cos(y^3)>> dfun=inline(char(diff(char(fun))))
dfun =
inline function:
dfun(x,y) = 2*cos(x^2)*x*cos(y^3)
matlab中单位矩阵用什么表示
1楼 告清竹洋画 查了一下matlab的help文档,里面也没有给出说明。 我思考了一下,可能是因为单位阵常常用 i 这个字母来代表。 而 i 的读音与 eye相同,所以就用eye 来命名生成单位矩阵的函数了。 你这个问题提得很有趣,很高兴能与你交流 2楼 匿名用户 a eye n 该函数产生n n...