| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 2564 人关注过本帖
标题:求助:怎么用matlab解微分方程呢
收藏  订阅  推荐  打印 
bigspring
Rank: 1
等级:新手上路
帖子:4
积分:140
注册:2007-4-28
求助:怎么用matlab解微分方程呢

我刚接触这个软件,感觉无从下手,请各位提提见解,谢谢了!!!!
搜索更多相关主题的帖子: matlab  方程  解微分  软件  
2007-4-28 16:08
menglu
Rank: 2
等级:注册会员
威望:2
帖子:43
积分:538
注册:2007-4-21

可以用ode45这个函数

2007-4-28 16:33
menglu
Rank: 2
等级:注册会员
威望:2
帖子:43
积分:538
注册:2007-4-21

首先将微分方程化为一阶方程组,
并把它存在一个m文件中。
然后在另一个m文件中用ode45函数来解

给你个程序自己看吧,说不太清楚
%jswlx_8_4_3f.m 阻尼振动函数
function y=jswlx_8_4_3f(t,x)
y=[x(2);-0.2*x(2)-x(1)] %一阶方程组

%jswlx_8_4_3.m
Hf_1=figure;
set(Hf_1,'color','w')
tDelt=0.05;T=70.0;%变量t的间隔和最终T
x10=10;x20=0.0;x0=[x10,x20];%初始条件
ts=0:tDelt:T;
[t,x]=ode45('jswlx_8_4_3f',ts,x0)
plot(t,x(:,1)),%grid,
xlabel('T'),ylabel('X')

2007-4-28 16:39
bigspring
Rank: 1
等级:新手上路
帖子:4
积分:140
注册:2007-4-28

谢谢了
麻烦介绍一下ode45函数,
2007-5-2 09:43
menglu
Rank: 2
等级:注册会员
威望:2
帖子:43
积分:538
注册:2007-4-21

ode45的命令格式是
[x,y]=ode45('fun',xs,y0,option)
其中:fun为以.m文件写成的待解微分方程
xs=[x0,x1,...,xf],x0和xf是自变量的初值和终值
y0为初始条件
option为设定的误差,可缺省,绝对误差10的-6次方
[x,y]为xs对应解向量

2007-5-4 13:50
menglu
Rank: 2
等级:注册会员
威望:2
帖子:43
积分:538
注册:2007-4-21

像上面我举的例子
常微分方程为5x”+x’+5x=0 初速度v0=0,初位置x0=10
先将其化为一阶方程组
x'=v x0=10
v'=0.2v-x v0=0

在程序中x(1)相当于x,x(2)相当于v

%jswlx_8_4_3f.m 阻尼振动函数
function y=jswlx_8_4_3f(t,x)
y=[x(2);-0.2*x(2)-x(1)] %一阶方程组,列向量

%jswlx_8_4_3.m
Hf_1=figure;
set(Hf_1,'color','w')
tDelt=0.05;T=70.0;%变量t的间隔和最终T
x10=10;x20=0.0;x0=[x10,x20];%初始条件
ts=0:tDelt:T;
[t,x]=ode45('jswlx_8_4_3f',ts,x0)
plot(t,x(:,1)),%grid,
xlabel('T'),ylabel('X')


2007-5-4 14:00
menglu
Rank: 2
等级:注册会员
威望:2
帖子:43
积分:538
注册:2007-4-21

像上面我举的例子
常微分方程为5x”+x’+5x=0 初速度v0=0,初位置x0=10
先将其化为一阶方程组
x'=v x0=10
v'=0.2v-x v0=0

在程序中x(1)相当于x,x(2)相当于v

%jswlx_8_4_3f.m 阻尼振动函数
function y=jswlx_8_4_3f(t,x)
y=[x(2);-0.2*x(2)-x(1)] %一阶方程组,列向量

%jswlx_8_4_3.m
Hf_1=figure;
set(Hf_1,'color','w')
tDelt=0.05;T=70.0;%变量t的间隔和最终T
x10=10;x20=0.0;x0=[x10,x20];%初始条件
ts=0:tDelt:T;
[t,x]=ode45('jswlx_8_4_3f',ts,x0)
plot(t,x(:,1)),%grid,
xlabel('T'),ylabel('X')


2007-5-4 14:02
bigspring
Rank: 1
等级:新手上路
帖子:4
积分:140
注册:2007-4-28

谢谢了!!!!

2007-5-8 20:31
hsq51030203
Rank: 1
等级:新手上路
帖子:5
积分:150
注册:2008-8-30

找本这方面的书,有专门的求解命令,很简单的
2008-8-30 20:19
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.063760 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved