解一个微分方程的程序怎么改成解一个微分方程组!
function xEulerproclear all;clc
=eulerpro(@fun,0,1,1,0.1)
plot(x,y)
function f=fun(x,y)
f=y+x+1
%------------------------
function =eulerpro(fun,x0,xf,y0,h)
n=fix((xf-x0)/h);x(1)=x0;y(1)=y0
for i=1:(n-1)
x(i+1)=x0+i*h; a=y(i)+h*feval(fun,x(i),y(i))
b=y(i)+h*feval(fun,x(i+1),a);y(i+1)=(a+b)/2
end
以上是解一个微分方程的程序
请问怎么改动能将上面的程序变成能解一个微分方程组阿
新人,谢谢关心 自己顶一下
放假了,人气不足啊 请各位大虾帮帮忙
我要解的微分方程组有60个方程
由于不知道调整ode命令中的步长所以解起来比较费力
想自己编一个自己控制步长
看程序的运算效率是不是会高一些
当然能告诉我怎么改变ode命令中的步长也行
新人感激不尽阿
谢谢啦 你的方程是不是非线性的 我的是线性方程
谢谢关心 定步长rk法
http://forum.vibunion.com/forum/viewthread.php?tid=17615
[ 本帖最后由 eight 于 2007-3-3 14:34 编辑 ] 谢谢楼上的热心阿 我还是说说实际困难吧
就是我要解的微分方程组由60个常微分方程构成
用ode命令计算的时间还是较长
在调试过程中比较繁琐
希望其速度能够加快
所以想自己编写一个方程,自己调整步长
满足我所需要的步长就够了
希望大家提供好的建议
谢谢 原帖由 lc622503 于 2006-8-15 11:01 发表
我还是说说实际困难吧
就是我要解的微分方程组由60个常微分方程构成
用ode命令计算的时间还是较长
在调试过程中比较繁琐
希望其速度能够加快
所以想自己编写一个方程,自己调整步长
满足我所需 ...
最好的办法,换成fortran和c,matlab的计算效率让人不敢恭维 同意楼上的,我现在也很少用matlab做数值分析了 谢谢楼上的建议阿
我本来就是学环境的,原来没学过编程
现在要我模拟污水处理工艺
听人家说matlab有现成的命令解微分方程组
就用了他,确实还是比较简单,容易上手
如果用其他语言编的话,还要现学阿
不换语言还有其他办法吗
我还要做一个界面,将来! 原帖由 lc622503 于 2006-8-15 19:34 发表
谢谢楼上的建议阿
我本来就是学环境的,原来没学过编程
现在要我模拟污水处理工艺
听人家说matlab有现成的命令解微分方程组
就用了他,确实还是比较简单,容易上手
如果用其他语言编的话,还要现学 ...
其实这些常规的算法不管什么语言基本都有现成 我的想法也和楼上的一样啊
但是要到哪里去找阿
如果教授有的话
给我发一份
lc622503@163.com
谢谢了 原帖由 lc622503 于 2006-8-18 16:12 发表
我的想法也和楼上的一样啊
但是要到哪里去找阿
如果教授有的话
给我发一份
lc622503@163.com
谢谢了
什么语言的?如果是fortran就免了
fortran自己的库里就带了好多
c的话可以参考C语言程序集 就是matlab的程序阿
就是自己编写的比ode命令效率高就行
谢谢阿
现在要我去学习其它的语言编写也没时间
还有很多其它的工作要做
页:
[1]
2