找回密码
 注册
Simdroid-非首页
查看: 179|回复: 5

积分限以及被积函数中含有未知数的二重积分方程组求解

[复制链接]
发表于 2009-11-27 19:04:16 | 显示全部楼层 |阅读模式 来自 山东淄博
本帖最后由 messenger 于 2009-11-28 00:42 编辑

以下网友lorna233在Matlab中文论坛的帖子:

地址:http://www.ilovematlab.cn/thread-57006-1-2.html

具体见附件,主要问题就是方程组中含有二重积分,并且积分的上下限中含有变量,所以我现在是无从下手,望高手指点。



我用OpenFC(Forcal程序)求解,代码为:

  1. (::p,q,m,C1,C2,C3,C4,k,g,Txing,T2)=
  2. {
  3.   p=0.020,q=0.219,m=10369.6,C1=800,C2=2,C3=6,C4=8,k=3,g=4,Txing=8,T2=12
  4. };
  5. t_T2(u:a:p,q,m)= a=exp[-(p+q)*u],m*p*(p+q)^2*a/(p+q*a)^2;
  6. t2_T2(t::h_t_T2,T2,p,q,g)= if[t==T2,return(0)], XSLSF::fpqg[h_t_T2,t,T2,1e-6]/[g*(p+q)];
  7. f(t2,T1,y1,y2:a,b:h_t_T2,h_t2_T2,p,q,m,C1,C2,C3,C4,k,g,Txing,T2)=    //函数定义
  8. {
  9.   a=exp[-(p+q)*Txing], b=m*p*(p+q)^2*a/(p+q*a)^2,
  10.   y1=-C2*XSLSF::fpqg[h_t2_T2,t2,T2,1e-6]+C4*b*[1-k*(p+q)]
  11.     +C3*{k*(p+q)*XSLSF::fpqg[h_t_T2,T1,Txing,1e-6]+b*k*(p+q)*t2-k*(p+q)*Txing},
  12.   y2=C2*T1*T1/[2*g*(p+q)]-k*(p+q)*C3*(t2-T1)-C4*[1-k*(p+q)]
  13. };
  14. main(:x,i,t2,T1:h_t_T2,h_t2_T2)=
  15. {
  16.   h_t_T2=HFor("t_T2"),h_t2_T2=HFor("t2_T2"),
  17.   x=new[rtoi(real_s),rtoi(4),rtoi(EndType),1.0,1.0],
  18.   i=XSLSF::netn[HFor("f"),1e-6,0.1,0.1,x,100],
  19.   x.XSLSF::getra[0,&t2,&T1],
  20.   printff{"\r\n实际迭代次数={1,i}, t2={2,r}, T1={3,r}\r\n",i,t2,T1},
  21.   delete[x]
  22. };
复制代码
结果:

  1. 实际迭代次数=4, t2=5.6891908532692748, T1=3.4017560817759569
复制代码
OpenFC下载:http://xiazai.zol.com.cn/detail/27/262791.shtml

后来据lorna233说,似乎Matlab无法求解此方程。我有所怀疑,特来麻烦这里的高手试一下?不一定是Matlab,其他软件高手也可一试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2009-11-27 21:17:31 | 显示全部楼层 来自 黑龙江哈尔滨
Simdroid开发平台
本帖最后由 TBE_Legend 于 2009-11-27 21:32 编辑
以下网友lorna233在Matlab中文论坛的帖子:

地址:http://www.ilovematlab.cn/thread-57006-1-2.html

具体见附件,主要问题就是方程组中含有二重积分,并且积分的上下限中含有变量,所以我现在是无从下手,望高 ...
wanglu 发表于 2009-11-27 19:04


用mmtc做了下

t2=5.689190853226876  T1=3.401756081213834

耗时1.313s
回复 不支持

使用道具 举报

发表于 2009-11-27 23:05:09 | 显示全部楼层 来自 浙江杭州
这种方程组Matlab可以解,rocwoods以前就这种问题还专门写过贴子,http://forum.simwe.com/thread-768389-1-1.html
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-28 09:49:16 | 显示全部楼层 来自 山东淄博
谢谢 TBE_Legend 的mmtc结果,有代码就更好了。

mmtc是不是Mathematica的简写?我几年前测试过Mathematica的速度,当时是比较慢的,现在看来速度也大大提升了。看到mmtc耗时1.313s,我测了一下Forcal的时间,约0.156秒。当然这种比较很粗糙,计算机不一样,初值不一样,算法不一样。哪位如有兴趣可下载OpenFC测试一下,OpenFC中有一些速度测试例子。OpenFC只有1.2M,绿色免安装,只要按“readme.txt”中的说明设置一下即可。OpenFC还有一些用鼠标控制动态观察三维函数图像的例子,各位看看用其他软件容易实现吗?忍不住说多了,呵呵。

谢谢 messenger 的说明。

本例比rocwoods 的例子复杂,二重积分加上是方程组。在lorna233给我的邮件中这样说道“matlab能给出解,但是我将解代进去有一个方程远远大于0,说明他给出来的解是错误的”。因此,还是麻烦Matlab高手抽空能试一下,给出代码和结果,这样也方便大家学习。

另外,我还有个微分方程参数拟合问题需要大家帮忙验证讨论一下,为了方便,我另开一贴。
回复 不支持

使用道具 举报

发表于 2009-11-28 10:05:38 | 显示全部楼层 来自 黑龙江哈尔滨
谢谢 TBE_Legend 的mmtc结果,有代码就更好了。

mmtc是不是Mathematica的简写?我几年前测试过Mathematica的速度,当时是比较慢的,现在看来速度也大大提升了。看到mmtc耗时1.313s,我测了一下Forcal的时间,约0. ...
wanglu 发表于 2009-11-28 09:49


是的,我管mathematica叫mmtc。

看过你博客上的介绍,但总感觉Forcal的特点有点模糊,它到底有什么优势和劣势?我为什么要用它?希望有时间的话,能给详细地说下。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-11-28 11:15:58 | 显示全部楼层 来自 山东淄博
Forcal的优势和劣势,我是这样认为的:

优势:
(1)Forcal核心库就一个200k左右的dll文件,适合嵌入式开发。
(2)Forcal速度与Matlab最新版相比:纯表达式计算速度比Matlab矢量化后的速度略慢;循环速度比Matlab稍快;在有大量函数调用时,Forcal速度远远快于Matlab最新版的速度。
(3)Forcal有5种变量:自变量、动态变量、静态变量、模块变量和全局变量,可以描述复杂的应用。
(4)Forcal功能很容易扩展。Forcal用Win32标准函数调用方式(stdcall调用协议)输出了动态库函数,与各种高级语言是无缝链接的,特别是C/C++。
(5)Forcal各种扩展动态库功能是无缝链接的,协作能力强。
(6)由于Forcal功能很容易扩展,故C/C++、Fortran可实现的功能,Forcal都可实现。对数值计算来讲,封装了C/C++数值计算函数,然后使用Forcal编程调用这些函数,速度约为C/C++的1/3左右。像我刚刚发的帖子中微分方程参数优化例子的速度即是如此。
  先简单列举这样一些。

劣势:
(1)用户少,不熟悉Forcal。
(2)各类工具箱缺乏。数值计算方面,仅仅封装了徐士良算法库。
(3)不能进行符号运算。
还有其他一些,大家给补充吧。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 05:31 , Processed in 0.058667 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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