matlab微分方程应用题,MATLAB17:若锂出的作业题3求解常微分方程

一、若锂出的作业题3

求解常微分方程,并给特定值x,算出结果。

二、dsolve()函数

用法:y=dsolve('eqn1','eqn2',...,'cond1','cond2',...,'var')

eqni表示方程,condi表示初值,var表示微分方程中的自变量,系统默认为t。

D为微分符号,D2表示二阶微分,D3表示三阶微分。

三、subs()函数

subs能够在符号表达是和符号矩阵中进行置换操作。

R = subs(S,old,new) %用new置换表达式中的old,然后将置换完成的表达式附值给R

四、eval()函数

eval的功能简单来说就是可以把字符串当做命令来执行

五、sym函数

在MATLAB中,sym函数用于创建符号数字、符号变量、符号对象。

符号对象的类型是sym,可以通过class(S)来验证,这里S是一个符号对象。

符号变量的优点是,使用符号变量运算得到的只是一个解析解。

六、sym类型转换为字符类型

z=subs(y,x,0.1); 得出的结果存在sym类型中

k=char(z); 强制将sym类型转换为字符型

result=eval(k); 执行字符串命令,得到最后结果

七、MATLAB程序1

clear ;

syms y x R d a0 a1 a2 a3 a4 a5 a6 a7 b1 b2 b3 b4 b5 b6 b7 w ;

[y]=dsolve('D2y+y= -134.4*(a0 + a1*cos(x*w) + b1*sin(x*w)+a2*cos(2*x*w) + b2*sin(2*x*w) + a3*cos(3*x*w) + b3*sin(3*x*w) +a4*cos(4*x*w) + b4*sin(4*x*w) + a5*cos(5*x*w) + b5*sin(5*x*w) +a6*cos(6*x*w) + b6*sin(6*x*w) + a7*cos(7*x*w) + b7*sin(7*x*w))' ,'y(3.14)=0','Dy(20.55)=0','x') ;

a0 = -15.5;

a1 = 172.6 ;

b1 = 22.52 ;

a2 = 28.28 ;

b2 = -67.42 ;

a3 = 27.05 ;

b3 = -38.29 ;

a4 = -100.1 ;

b4 = -16.67 ;

a5 = -52.05 ;

b5 = -29.36 ;

a6 = -61.18 ;

b6 = 6.185 ;

a7 = -39.73 ;

b7 = -32.74 ;

w = 0.02822;

sym_y= subs(y,{'a0','a1','a2','a3','a4','a5','a6','a7','b1','b2','b3','b4','b5','b6','b7','w'},{a0,a1,a2,a3,a4,a5,a6,a7,b1,b2,b3,b4,b5,b6,b7,w});

sym_y

% 把x=0.5代入,求解

z=subs(sym_y,x, 0.5 );

k=char(z);

result=eval(k)

八、MATLAB程序2

clear all

syms y x R d ;

a0 = -15.5;

a1 = 172.6 ;

b1 = 22.52 ;

a2 = 28.28 ;

b2 = -67.42 ;

a3 = 27.05 ;

b3 = -38.29 ;

a4 = -100.1 ;

b4 = -16.67 ;

a5 = -52.05 ;

b5 = -29.36 ;

a6 = -61.18 ;

b6 = 6.185 ;

a7 = -39.73 ;

b7 = -32.74 ;

w = 0.02822;

rr=['D2y+y= -134.4*(',num2str(a0), '+', num2str(a1),'*cos(x*',num2str(w),') +', num2str(b1),'*sin(x*',num2str(w),')+',num2str(a2),'*cos(2*x*',num2str(w),') +', num2str(b2),'*sin(2*x*',num2str(w),') + ',num2str(a3),'*cos(3*x*',num2str(w),') +', num2str(b3),'*sin(3*x*',num2str(w),') +',num2str(a4),'*cos(4*x*',num2str(w),') +', num2str(b4),'*sin(4*x*',num2str(w),') +', num2str(a5),'*cos(5*x*',num2str(w),') +', num2str(b5),'*sin(5*x*',num2str(w),') +',num2str(a6),'*cos(6*x*',num2str(w),') +', num2str(b6),'*sin(6*x*',num2str(w),') +', num2str(a7),'*cos(7*x*',num2str(w),') +', num2str(b7),'*sin(7*x*',num2str(w)];

rr=[rr,'))'];

rr

[y]=dsolve(rr,'y(3.14)=0','Dy(20.55)=0','x');

y

z=subs(y,x,0.1);

k=char(z);

result=eval(k);

result

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值