| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3282 人关注过本帖
标题:求助:怎么用matlab解微分方程呢
只看楼主 加入收藏
bigspring
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-4-28
收藏
 问题点数:0 回复次数:8 
求助:怎么用matlab解微分方程呢
我刚接触这个软件,感觉无从下手,请各位提提见解,谢谢了!!!!
搜索更多相关主题的帖子: matlab 方程 解微分 软件 
2007-04-28 16:08
menglu
Rank: 1
等 级:新手上路
威 望:2
帖 子:43
专家分:0
注 册:2007-4-21
收藏
得分:0 
可以用ode45这个函数

2007-04-28 16:33
menglu
Rank: 1
等 级:新手上路
威 望:2
帖 子:43
专家分:0
注 册:2007-4-21
收藏
得分:0 
首先将微分方程化为一阶方程组,
并把它存在一个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-04-28 16:39
bigspring
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-4-28
收藏
得分:0 
谢谢了
麻烦介绍一下ode45函数,
2007-05-02 09:43
menglu
Rank: 1
等 级:新手上路
威 望:2
帖 子:43
专家分:0
注 册:2007-4-21
收藏
得分:0 
ode45的命令格式是
[x,y]=ode45('fun',xs,y0,option)
其中:fun为以.m文件写成的待解微分方程
xs=[x0,x1,...,xf],x0和xf是自变量的初值和终值
y0为初始条件
option为设定的误差,可缺省,绝对误差10的-6次方
[x,y]为xs对应解向量

2007-05-04 13:50
menglu
Rank: 1
等 级:新手上路
威 望:2
帖 子:43
专家分:0
注 册:2007-4-21
收藏
得分:0 

像上面我举的例子
常微分方程为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-05-04 14:00
menglu
Rank: 1
等 级:新手上路
威 望:2
帖 子:43
专家分:0
注 册:2007-4-21
收藏
得分:0 

像上面我举的例子
常微分方程为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-05-04 14:02
bigspring
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-4-28
收藏
得分:0 

谢谢了!!!!

2007-05-08 20:31
hsq51030203
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-8-30
收藏
得分:0 
找本这方面的书,有专门的求解命令,很简单的
2008-08-30 20:19
快速回复:求助:怎么用matlab解微分方程呢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012736 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved