用matlab求函数在指定点的数值导数

用matlab求函数在指定点的数值导数,第1张

用matlab求函数在指定点的数值导数代码如下:

clear;

clc;

syms x

f = sqrt(x^2+1);

diff_f = diff(f);

y1 = subs(diff_f,x,1)

y2 = subs(diff_f,x,2)

y3 = subs(diff_f,x,3)

结果:

y1 =07071

y2 =08944

y3 =09487

扩展资料:

matlab优点:

1高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

3功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

参考资料::matlab

1、对于简单的三角方程,可以用solve()来求解,得到解析解。如 其求解代码和结果为 2、对于复杂的三角方程,可以用Broyden(拟牛顿法)等方法来求解,得到数值解。如 其求解过程如下 ①建立自定义函数文件,funm。m function y = funm(x) %x=x(1,1),y=x(2,1) y(1,1) = x(1,1) - 07 sin(x(1,1)) - 02 cos(x(2,1)); y(2,1) = x(2,1) - 07 cos(x(1,1)) + 02 sin(x(2,1)); end ②编写Broyden文件,Broyden。m ③在命令窗口输入

[X1,X2,X3]=solve('Y1=(-124E-10)X1+(196E-10)X2+(-259E-14)X3+(346E-10)','Y2=(467E+5)X1+(-682E+5)X2+(-162E+4)X3+(-692E+5)',

'Y3=(537E+4)X1+(-837E+4)X2+(-322E+3)X3+(-428E+3)','X1','X2','X3')

X1 =

41762297261004497684085252244238Y1 + 0000031481436267392550837512647219088Y2 - 000015872077982323581989370269968396Y3 + 66560741070846396717202070444555

X2 =

31506896802790918500384755234375Y1 + 0000019917788723096534603994186177191Y2 - 00001004609335221602935943682550407Y3 + 24517507071422980882469553919484

X3 =

00000072777054148447309379241529919729Y2 - 12251301226014234560460433776446Y1 - 000034618811823072886783950684041052Y3 + 45943989243054285833883525459992

matlab中sin()函数的参数为弧度,所以如果参数 x 是角度,需要转换一下。例如,计算 sin60°的matlab代码:

>> sin(60/180pi) % 通过180°与π的关系转换

ans = 08660

>> sin(deg2rad(60)) % 直接使用角度转弧度的函数deg2rad()

ans = 08660

如果需要直接以角度作为参数,可以使用sind()函数,例如同样计算sin60°,可以直接在命令窗口输入:

>> sind(60) % sind()函数直接以角度作为参数

ans = 08660

如何用matlab求传递函数?今以多自由度振动系统的半正定系统求解可以按下列步骤进行:

已知系统质量矩阵{M}是正定矩阵,刚度矩阵{M}是半正定矩阵,求以m2的位移x2为输出,以作用在m2上的力f为输入的系统传递函数。

1建立系统动力学方程

m2dx2^2/dt^2=f-k2(x2-x1)-c1(dx2/dt-dx1/dt)

m1dx1^2/dt^2=k2(x2-x1)+c2(dx2/dt-dx1/dt)-k1(x1-x0)-c1(dx1/dt-dx0/dt)

m0dx0^2/dt^2=k1(x1-x0)+c1(dx1/dt-dx0/dt)

令z1=x0,z2=x1,z3=x2,z4=dx0/dt,z5=dx1/dt,z6=dx2/dt,y=x2,则Z=(z1,z2,z3,z4,z5,z6)^T。

由此,得到该系统的状态空间方程

dZ/dt=AZ+Bf

y=(0,0,1,0,0,0)Z

2求传递函数X2(s)/ F(s),为了方便求解,我们建立modelm()函数,其代码为

function sysm=modelm(sysp)

m0=sysp(1); %m0的质量

m1=sysp(2); %m1的质量

m2=sysp(3); %m3的质量

k1=sysp(4); %m1的刚度

k2=sysp(5); %m2的刚度

c1=sysp(6); %m1的阻尼

c2=sysp(7); %m2的阻尼

A=[。。。];

B=[。。。];

C=[。。。];

D=0;

sys1=ss(A,B,C,D); %得到状态空间模型

sysm=zpk(sys1);%得到零极点增益模型,即该系统的传递函数

3调用方式

symp=[21,9,15,1000,400,0,0] %[m0,m1,m2,k1,k2,c1,c2]

X2_F=modelm(sysp)

知识扩展:

(1)传递函数的概念

传递函数是指零初始条件下线性系统响应(即输出)量的拉普拉斯变换(或z变换)与激励(即输入)量的拉普拉斯变换之比。记作G(s)=Y(s)/U(s),其中Y(s)、U(s)分别为输出量和输入量的拉普拉斯变换。

(2)传递函数的主要应用

1、 确定系统的输出响应。对于传递函数G(s)已知的系统,在输入作用u(s)给定后,系统的输出响应y(s)可直接由G(s)U(s)运用拉普拉斯反变换方法来定出。

2、分析系统参数变化对输出响应的影响。对于闭环控制系统,运用根轨迹法可方便地分析系统开环增益的变化对闭环传递函数极点、零点位置的影响,从而可进一步估计对输出响应的影响。

3、用于控制系统的设计。直接由系统开环传递函数进行设计时,采用根轨迹法。根据频率响应来设计时,采用频率响应法。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12182347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存