如何用MATLAB求导

作者&投稿:程会 (若有异议请与网页底部的电邮联系)
Matlab中如何求导?~

操作方法如下:
1、打开matlab软件;

2、输入指令clear;clc;清空工作空间;

3、输入指令sysm x定义一个符号变量,如图所示;

4、输入指令f1=atan(x),定义一个函数;

5、输入指令df1=diff(f1,x)求解导函数的符号解;

6、输入以下指令查看求导的结果,如图所示;
subplot(1,2,1);ezplot(f1),grid on;subplot(1,2,2);ezplot(df1),grid on;

7、查看求导结果如下。

扩展资料:
利用MATLAB解一元方程:
1、解一元方程:首先打开MATLAB R2017b(如下图);

2、在“command Window”下直接输入需要解决的方程的公式如:x=solve('x^2+2*x+1=0','x'),该公式是用于求方程“x^2+2*x+1=0”的解(如下图);

3、接着点击回车键后即可查看该方程的解(如下图)。

MATLAB中没有直接提供求数值导数的函数,只能通过差分估算。
DX=diff(X) 计算向量X的向前差分,DX(i)=X(i+1)-X(i),0<i<n。
t=[0:0.04:1.48];
y=[7.86 7.84 7.82 7.77 7.72 7.68 7.61 7.51 7.42 7.33 7.21 7.07 6.94 6.79 6.64 6.48 6.29 6.11
5.92 5.72 5.50 5.27 5.03 4.78 4.53 4.25 3.98 3.69 3.40 3.10 2.78 2.43 2.09 1.77 1.42 1.09 0.68
0.30];
Dy=diff(y)/.04;
Dt=[0.04:0.04:1.48];
p=polyfit(t,y,2);
Y=polyval(p,t);
DY=diff(Y)/.04;
plot(t,y,'b*',t,Y,'r-',Dt,Dy,'bs',Dt,DY,'g-')
xlabel('t')
ylabel('y&y''')
legend('y值','y拟合2阶多项式','y''差分值','y''拟合值')

扩展资料
clc;clear all
h=0.01;
%x属于【a,b】
a=-5;b=5
x=a:h:b;
n=length(x);
%定义y
y=sin(0.3*x).*cos(3*x);
hold on
grid on
yx=zeros(1,n);
yxx=zeros(1,n);
for i=2:n-1
yx(i-1)=(y(i+1)-y(i-1))/(2*h);
yxx(i-1)=(y(i+1)+y(i-1)-2*y(i))/h^2;
end
plot(x,y,'r','linewidth',2)
plot(x(2:n-1),yx(1:n-2),'g','linewidth',2);
plot(x(2:n-1),yxx(1:n-2),'b','linewidth',2);
legend('原函数','差分一阶导数','差分二阶导数')
xlabel('x','Interpreter','latex','color','r','fontsize',28);
ylabel('y','Interpreter','latex','color','r','fontsize',28);
参考资料:百度百科 差分法
百度百科 MATLAB

操作方法如下:

1、打开matlab软件;

2、输入指令clear;clc;清空工作空间;

3、输入指令sysm x定义一个符号变量,如图所示;

4、输入指令f1=atan(x),定义一个函数;

5、输入指令df1=diff(f1,x)求解导函数的符号解;

6、输入以下指令查看求导的结果,如图所示;

subplot(1,2,1);
ezplot(f1),grid on;
subplot(1,2,2);
ezplot(df1),grid on;

7、查看求导结果如下。

扩展资料:

利用MATLAB解一元方程:

1、解一元方程:首先打开MATLAB R2017b(如下图);

2、在“command Window”下直接输入需要解决的方程的公式如:x=solve('x^2+2*x+1=0','x'),该公式是用于求方程“x^2+2*x+1=0”的解(如下图);

3、接着点击回车键后即可查看该方程的解(如下图)。



matlab求导命令diff调用格式:
diff(函数)

求的一阶导数;
diff(函数,
n)

求的n阶导数(n是具体整数);
diff(函数,变量名),
求对的偏导数;
diff(函数,
变量名,n)
,求对的n阶偏导数;
matlab求
雅可比矩阵
命令jacobian,调用格式:
jacobian([函数;函数;
函数],
[])给出矩阵:
另外
解微分方程可以用desolve

>>
x=solve('x^2=y','x')
x
=
y^(1/2)
-y^(1/2)

在matlab中,可以利用diff函数对隐函数求导。其调用格式如下:
diff(函数)

%
求一阶导数;
diff(函数,
n)

%
求n阶导数(n是具体整数);
diff(函数,变量名)

%
求偏导数;
diff(函数,
变量名,n)

%
求n阶偏导数;
下面通过示例来说明diff函数对隐函数求导的方法。
题目:隐函数y^3
-
x^3
-
1
=
0的导数。
syms x y % 定义变量
f = y^3 - x^3 - 1 % 隐函数 f = y^3 - x^3 - 1 = 0
dy1 = - diff(f,x)/diff(f,y) % 一阶导数
dy2 = diff(dy1,x) + diff(dy1,y)*dy1; % 二阶导数
dy2 = simplify(dy2);计算结果:
dy1
=
x^2/y^2
dy2
=
-2*x*(-y^3+x^3)/y^5

syms x
y=3*x^3+0.5*x^2+7*x-0.09;
dy=diff(y) ;
% ezplot(dy,[-1 1])
X=-5:0.1:5;
Dy=subs(dy,X);
plot(X,Dy,'.')

X和Dy分别是横纵坐标对应的点

X=-5:0.1:5表示画图时是从x=-5开始画,画到x=5完,你可以更改范围,0.1是精度,这个数越小画出来的图精度越大。

多项式求导还可以用p=polyder(f)进行.
而pp=poly2str(p,'x'),可以将p转化为多项式形式pp.
用plot(x,pp)可以画出[-5,5]的曲线.

x=-5:0.1:5
-5:代表初值;
5:代表终值;
0.1代表步长,即把-5到5分成50等份.

有时还会把0.1的0省掉.1也应该能知道它的意思!


如何用matlab求特征值?
求特征值的传统方法是令特征多项式| AE-A| = 0,求出A的特征值,对于A的任一特征值h,特征方程( aE- A)X= 0的所有非零解X即为矩阵A的属于特征值N的特征向量两者的计算是分割的,一个是计算行列式,另一个是解齐次线性方程组,且计算量都较大。使用matlab可以方便的计算任何复杂的方阵...

用Matlab怎么求反函数
1、我们首先需要知道在matlab中求反函数用到的是finverse函数,在命令行窗口中输入“help finverse”,可以看到函数的使用方法。2、g=finverse(f)格式,f符号函数表达式,变量x,求得的反函数g是满足g(f(x))=x的函数,输入如图代码。3、按回车键之后,可以看到求得的反函数g是asin(2\/x)。4、g=...

请问如何用MATLAB求这个方程的解,要求过程,谢谢
syms x x=solve('250=x*(246.8-((exp(1.5-0.34\/x)+0.86)\/0.34)^2)')x = -3542.6913453239844374478360256088 误差计算:subs(250-x*(246.8-((exp(1.5-0.34\/x)+0.86)\/0.34)^2))ans = 8.1741e-028

matlab如何求解微分方程并画图的呢?
如何用matlab求解微分方程并画图,可以先用dsolve()或ode()求出其微分方程(组)的解析解或数值解,然后用plot()绘制其图形。例如:解微分方程 y'=y-2t\/y,y(0)=1,0<t<4 1、用dsolve()求解,代码及结果如下 2、用ode45()求解,代码及结果如下 3、当然喽,使用dsolve()或ode(...

matlab已知自变量的取值范围求最大值
如何用matlab在已知自变量的取值范围下求最大值?题主的问题可以解决:1、根据函数表达式为f=QR(1-D),自定义其目标函数,fmincon_fun(x),即 f=-Q*R*(1-D); 这里负号表示最大值 2、根据约束条件,自定义其约束函数,fmincon_con(x),即 g(1)=Q-10; %Q>10;g(2)=R-0.04; %R>0....

如何用Matlab求线性方程组的通解
如何用Matlab求线性方程组的通解 这个是线性齐次方程组的 先写m文件 function [x,y]=line_solution(A,b)[m,n]=size(A);y=[];if norm(b)>0 if rank(A)==rank([A,b])if rank(A)==n disp('方程有唯一解x');x=A\\b;else disp('方程有无穷多解,特解为x,其齐次方程组的基础解...

如何用MATLAB对速度求导得加速度?
1、根据时间和速度的数据,用plo函数绘制其趋势图,判断是符合什么类型的数学模型(如:(v(t)=a0+b0t)2、根据数学模型,自定义其函数,func=@(a,t)a(1)+a(2)*t 3、根据时间和速度的数据,使用lsqcurvefit或nlinfit等拟合函数,求出其系数a0、b0 4、得到v(t)表达式后,可以用diff函数求导,...

使用matlab迭代法求E=M+e*sinE中的E,其中M和e是已经输入好的参数?_百 ...
已知M和e的具体数值,如何使用matlab用迭代法求方程E=M+e*sinE中的E?根据题型,建议题主使用拟牛顿法求解(隐函数方程)。拟牛顿法迭代格式为 x(k+1)=x(k)-A(k)^(-1)f(x(k))p(k)=x(k+1)-x(k),q(k)=f(x(k+1))-f(x(k))A(k+1)=A(k)+(q(k)-A(k)*p(k))*p(k...

用matlab怎么求正态分布概率?
用matlab求正态分布概率的函数是normpdf,使用格式为 Y = normpdf(X,mu,sigma)mu——均值μ sigma——标准偏差σ 使用MatLab画出正态分布的概率密度函数 x=[-10:0.01];y=normpdf(x,0,1);%正态分布函数 figure;axes1=axes('Pos',[0.1 0.1 0.85 0.85]);plot(x,y);set(axes1,'...

请问用matlab怎样求曲线斜率或切线啊?
用matlab求曲线的斜率或切线的方法,就是按照微积分的方法求解是一样的,则不过是matlab语言去描述。例如,求曲线y=x²在点(1,1)的切线方程。第一步:对方程y=x²求一次导数 >>syms x %声明变量 >>y=x^2; %函数表达式 >>dy=diff(y,1) %一次导数 y'=2*x 第二步...

肥东县18527938361: Matlab中如何求导? -
黎竖素 :[答案] matlab求导命令diff调用格式:diff(函数) ,求的一阶导数;diff(函数,n) ,求的n阶导数(n是具体整数);diff(函数,变量名),求对的偏导数;diff(函数,变量名,n) ,求对的n阶偏导数;matlab求雅可比矩阵命令jacobian,调用格...

肥东县18527938361: Matlab中如何求导? -
黎竖素 : matlab求导命令diff调用格式: diff(函数) , 求的一阶导数; diff(函数, n) , 求的n阶导数(n是具体整数); diff(函数,变量名), 求对的偏导数; diff(函数, 变量名,n) ,求对的n阶偏导数; matlab求雅可比矩阵命令jacobian,调用格式: jacobian([函数;函数; 函数], [])给出矩阵: 另外 解微分方程可以用desolve 例 >> x=solve('x^2=y','x') x = y^(1/2) -y^(1/2)

肥东县18527938361: matlab求导数 急急急 -
黎竖素 : 用matlab求导,可以diff()函数命令来完成.diff()函数使用格式 diff(fun(x),x,n) %对于单变量,x可以省略 fun(x)——函数,x——变量,n——求导阶数 题(4)>> y4=exp(x)*cos(x);>> diff(y4,4) 题(5)>> y5=x^2*sin(2*x);>> diff(y5,20) 运行结果

肥东县18527938361: 如何用Matlab求二阶导数 -
黎竖素 : 用MATLAB求导函数:diff如求函数f关于x的n阶导数可以写为:diff(f,x,n); 例如:求f=x^3=2*x^2+5的二阶导数,代码为: >> syms x; >> f = x^3 + 2*x^2 + 5; >> diff(f,x,2) 运行结果: 得到答案:6*x+4

肥东县18527938361: 如何matlab对变量数组求导 -
黎竖素 : 你看看:syms x1 x2 x3 f = x1^2+x2^2+x3^2; fx1 = diff(f,x1); fx2 = diff(f,x2); fx3 = diff(f,x3); x11 = input('请输入整数x1:'); x22 = input('请输入整数x2:'); x33 = input('请输入整数x3:'); subs(fx1,x1,x11) subs(fx2,x2,x22) subs(fx3,x3,x33) 输出的subs就是赋值之后的每一个偏导的结果,你可以试着运行一下.diff默认对x求导,如果有好几个x,则默认对x1求导,默认求一介导.

肥东县18527938361: matlab如何求导数 -
黎竖素 : 用diff 例求y=2x 输入:y=2x diff(y) 就行了

肥东县18527938361: matlab 求导数并画图 -
黎竖素 : 代码如下:syms x; f(x)=sin(x)/(x^2)+4*x+3;%一阶导数 f1=diff(f(x),1)%二阶导数 f2=diff(f(x),2)%三阶导数 f3=diff(f(x),3) figure(1) ezplot(f) figure(2) ezplot(f1)

肥东县18527938361: matlab 如何求自定义函数的导数 -
黎竖素 : matlab的求导命令与求导法 建立符号变量命令sym和syms调用格式:x=sym('x'), 建立符号变量x;syms x y z , 建立多个符号变量x,y,z;matlab求导命令diff调用格式:diff(函数) , 求的一阶导数;diff(函数, n) , 求的n阶导数(n是具体整数)...

肥东县18527938361: matlab怎么求参数方程的导数 -
黎竖素 : 如果是函数的形式,可以用diff求出对应的导数,按照dy/dx=dy/dt/(dx/dt) ...的形式求出来!

肥东县18527938361: MATLAB求函数导数..f(x)=(2x^2+1)/(x^2 - 2x) 利用MATLAB命令求出f(x)的一阶和二阶导数并利用其求出该函数曲线所有的关键点(极值,拐点等),渐近线,... -
黎竖素 :[答案] 一阶求导 syms x f=sym((2*x^2+1)/(x^2-2*x)) diff(f) 二阶求导 syms x f=sym((2*x^2+1)/(x^2-2*x)) diff(f,'x',2) 这个只是求导数, 如果要求关键点的画,需要fminzero函数 比如,将用这个函数求求出来的导数的零点,就是斜率为0的点的x值假如为x0,然后代...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网