我是靠谱客的博主 甜美裙子,最近开发中收集的这篇文章主要介绍matlab单自由度系统,【Matlab代码】外力单自由度阻尼系统的数值解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

d6685b450f6d02c62ed9a34114b1a128.png

function dx=odefun2(t,x)

dx=zeros(2,1);%存储x1,x2的导数

dx(1)=x(2);%第一个方程

dx(2)=-20*x(2)-100*x(1);%第二个方程

[t,x]=ode45('odefun2',[0,4],[1;0])

6a8b80d103cc6e340da8fec48adf3360.png

462ffbfa1b842977e4cfd120154a8f23.png

3f2c1fa286f7a7e643a859120af03849.png

注:数值解仅仅是解的一个数据点列;数值解只能作定量分析,它能处理几乎所有的方程。

028e6c5d2d4fd63a93ba9c309425eecf.png

xt=dsolve('D2x+20*Dx+100*x=0','x(0)=1','Dx(0)=0')

28228a81234cd45e25a473b1dbd29dc1.png

给出数值解与解析解的对比图:

f=inline(xt)

plot(t,x(:,1),'r.',t,f(t),'b');

legend('数值解','解析解')

77bb3253757603a26087b3bc77b97d24.png

变量名=inline(’函数表达式’,‘变量名1’,‘变量名2’,…,‘变量名n’)

6f283fa6afa5796b99289c7b73b75a6b.png

function dx=odefun3(t,x)

global c;

dx=zeros(2,1);%存储x1,x2的导数

dx(1)=x(2);%第一个方程

dx(2)=-20*c*x(2)-100*x(1)%第二个方程

注:通过全局变量c来接收外部阻尼系数的值。

function ode3(vc)

global c;%全局变量

hold on%hold住图形窗口

tspan=linspace(0,4,100);

for i=1:length(vc);

c=vc(i);

[t,x]=ode45('odefun3',tspan,[1,0]);

text(t(10),x(10,1),['leftarrow c',num2str(c)])

plot(t,x(:,1))

end

hold off

vc=[0.2,0.4,0.6,0.8,1]

ode3(vc);

2d2a9db57bb14ae740f8f6e6a3c02ee4.png

vc=[0.2,0.3,0.4,0.6,0.8,1,1.4,1.7];

ode3(vc);

35a82bfb42178da6f2a62ff7f969789c.png

微信“图像处理与模式识别研究所”关注我呦

最后

以上就是甜美裙子为你收集整理的matlab单自由度系统,【Matlab代码】外力单自由度阻尼系统的数值解的全部内容,希望文章能够帮你解决matlab单自由度系统,【Matlab代码】外力单自由度阻尼系统的数值解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部