注册地址 登录
数学建模社区-数学中国 返回首页

大智若愚的个人空间 http://www.madio.net/?588208 [收藏] [复制] [分享] [RSS]

日志

微分方程matlab教程

已有 799 次阅读2013-1-26 19:46 | 教程, matlab, simple, 表达式

【微分方程解析解】%常微分方程用这个
一维:
y=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')%根据表达式改变

多维:
[x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t');
x=simple(x)  % 将x化简
y=simple(y)
z=simple(z)

【微分方程数值解】%不是常微分方程用这个
%首先必须变为一阶微分方程
建立M文件:
function dy=vdp(t,y)
dy=zeros(n,1);   %有n个因变量
dy(1)=y(2);   %根据表达式改变
dy(2)=1000*(1-y(1)^2)*y(2)-y(1);   %根据表达式改变

主程序:
[t,y]=ode15s('vdp',[0 3000],[2 0]); 
%或者变成其它算法ode15s ode45
%[0 3000]自变量的范围t的变化范围
%[2 0]因变量的初始值y(1)=2 y(2)=0 ……
plot(t,y(:,1),'-')或者plot(y(:,1),y(:,2),'.')    %其中y(:,1)表示y(1);y(:,2)表示y(2);……
%plot(t,y(:,1),'-')表示画出t随y(1)变化的曲线
%plot(y(:,1),y(:,2),'.')表示画出y(1)随y(2)变化的曲线

【积分法求曲线弧长】
求y=f(t)在[a,b]上的弧长:
l=int('sqrt(1+[f’(t)])',a,b)
%[f’(t)]需要更改

表示y=f(t)在[a,b]上的弧长:
l=int('sqrt(1+Dy)',a,b)

【求积分】
int(P)           对表达式P进行不定积分.
int(P,v)          以v为积分变量对P进行不定积分.
int(P,v,a,b)       以v为积分变量,以a为下限,b为上限对P进行定积分.
int('x*log(1+x)',0,1)   得
ans = 1/4  


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-8-1 22:18 , Processed in 0.187306 second(s), 28 queries .

回顶部