声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3149|回复: 20

[编程技巧] 常微分方程组赋值问题

[复制链接]
发表于 2007-5-21 09:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
遇到这样一个问题

在解一组常微分方程组,模拟污水厂的时候

面对每天进水水质的变化(其实是时刻变化,假设一天一变)必须改变赋给方程组得进水水质值

就是一个反应器,进料每隔一段时间是变化的处理办法

现在我自己已经编出进料不变化的计算程序

请各位大虾指点上面的问题

就要毕业了,老师又来了一点新花样,艾,我也急啊!

谢谢

[ 本帖最后由 eight 于 2007-5-25 19:12 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-5-21 14:15 | 显示全部楼层
请把你的方程及处理先贴出.
 楼主| 发表于 2007-5-22 08:51 | 显示全部楼层
问题就是方程中的    %influent concentrations (进水水质)要随时间每天变化一次

[t,y]=ode45(@f,[0:1:45],y0)   这里表示计算45天

而现在程序只能完成进水水质不变的计算

谢谢各位的关心

dph2dmuctlf.m

16.84 KB, 下载次数: 18

发表于 2007-5-22 09:40 | 显示全部楼层
虽然你讲得还是不太清楚, 我猜测大概是指: %influent concentrations 下面的参数变化时,
如何求解方程?
方法: 1. 直接修改参数,多次求解---用在变化次数很少的情形;
        2. 作参数的循环, 且参数要作为function的传递参数---用在变化次数很多的情形.
由于你没有讲清楚参数如何变化,我只能提示到这里了.

评分

1

查看全部评分

 楼主| 发表于 2007-5-22 12:14 | 显示全部楼层
谢谢楼上一直得关注

我要达到的要求就是:

当用龙格库塔解微分方程组时,要不断用合适的步长一步一步的算

按照%influent concentrations 的第一天值,计算一天后,得到结果

我得把%influent concentrations 的值进行变化,也就是将%influent concentrations 赋上第二天的水质情况,并依此类推,直到45天

现在面对的问题就是,不知道什么时候赋值,也就是说一步一步的计算,当累计到一天时,influent concentrations 的值就要变化,怎么知道刚好计算了一天!

我现在做的实际问题就是一个反应器的模拟,现在是在进料不变的情况下的模拟程序已经完成
如果隔一段时间进料发生变化,产物会是什么样!一个是稳态的模拟,一个是动态的模拟!

由于是环境工程的学生,对matlab不熟,现在是赶鸭子上架把常微分方程组得基本解法搞清楚,面对进一步的要求还真是有心无力。
 楼主| 发表于 2007-5-22 12:16 | 显示全部楼层
参数的变化就是进水水质,是要输入的,45天得输入45组

一天一组,要求计算一天后参数赋的值是第二天的值
发表于 2007-5-22 15:46 | 显示全部楼层
45组------那就可以按照我说的第二种方法,作参数的循环.
 楼主| 发表于 2007-5-22 16:34 | 显示全部楼层
知道用循环

就是不知道怎么具体操作阿

主要问题就是计算完一天后换成第二天的进水水质

怎么实现自动的替换了,程序在满足精确的情况下是变步长计算的,不知道计算多少次才是一天

对ode45只知道基本的计算,不知道里面是不是能有这样的功能

谢谢

也请路过的各位关心关心
发表于 2007-5-22 16:39 | 显示全部楼层
原帖由 lc622503 于 2007-5-22 16:34 发表
知道用循环

就是不知道怎么具体操作阿

主要问题就是计算完一天后换成第二天的进水水质

怎么实现自动的替换了,程序在满足精确的情况下是变步长计算的,不知道计算多少次才是一天

对ode45只知道基本 ...



xjzuo 版主已经提示到这个地步了,建议自己动手试试,不要指望别人把你的问题完整解决
 楼主| 发表于 2007-5-22 17:05 | 显示全部楼层
正在努力中

谢谢关心
 楼主| 发表于 2007-5-25 08:53 | 显示全部楼层
可能是基础知识不够

没有搞定

还请楼上的继续帮助

谢谢
 楼主| 发表于 2007-5-25 19:08 | 显示全部楼层
反复试过
还是不知道怎么弄
请高手再指点
谢谢
发表于 2007-5-26 15:08 | 显示全部楼层
原帖由 lc622503 于 2007-5-22 16:34 发表
主要问题就是计算完一天后换成第二天的进水水质
怎么实现自动的替换了,程序在满足精确的情况下是变步长计算的,不知道计算多少次才是一天
对ode45只知道基本 ...


"进水水质" 是近似为一天一变? 还是时刻在变? -----你的描述似乎有矛盾.
请将"进水水质" ,  及其如何变化, 通过举一个例子说明你要达到的效果.
-------关于"变参数微分方程的求解", 参数如何传递, 等有时间,我会写一个示例贴来说明.
 楼主| 发表于 2007-5-27 12:19 | 显示全部楼层
污水厂的进水水质实际上是时刻在变化的

但是在对进水水质的实际描叙中,我们一般以一天一变的形式处理,这样精度较好,且省事不少

在模拟程序的处理中也是如此

具体说来,就是当程序运算一天后

%influent concentrations 的值变化,用第二天的值

而现在的程序是%influent concentrations 45天没有变化

与实际情况相差较大 。

当然随着精度要求的提高,将来可能是12小时一变,或是更短以无限逼近实际情况

谢谢楼上一直以来的关注

期待

-------关于"变参数微分方程的求解", 参数如何传递, 贴的早日贴出

其实在反应器的模拟过程中,这是很常用的!

也希望楼上的提高这部分知识的例子或是告诉我们得看哪部分书籍

谢谢

lc622503@163.com
发表于 2007-5-27 15:35 | 显示全部楼层
这么说------%influent concentrations 的值是你自己给定的? 它们如何变化,你还是没有讲...
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 11:00 , Processed in 0.077027 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表