tianyaxiaoke 发表于 2011-9-1 16:17:33

一个微--积分方程的求解

本帖最后由 tianyaxiaoke 于 2011-9-9 17:10 编辑

各位大侠:
       我是工科学生,在求解一个板料成形问题时遇到下面一个微积分方程需要求解。方程中n,p均为常数,可设n=0.2,p=-3.0。自变量为e2,因变量为u,请问各位高手,这个方程如何用matlab求解呢?不胜感激!


zccbest 发表于 2011-9-1 18:05:58

有两个未知数,只给了一个方程啊

d245062 发表于 2011-9-3 09:42:41

估计得用迭代的方法求数值解

tianyaxiaoke 发表于 2011-9-7 10:24:04

本帖最后由 tianyaxiaoke 于 2011-9-7 10:26 编辑

嗯,有本书上说用了迭代方法求方程解,说是先给e2取个初值,然后迭代值u=1.其中u的初值可取0.9。但是怎么个迭代法呢。谁能帮我贴个程序上来,主要是里面同时有微分和积分,我实在不会呀

tianyaxiaoke 发表于 2011-9-7 10:28:01

d245062 发表于 2011-9-3 09:42 static/image/common/back.gif
估计得用迭代的方法求数值解

嗯,有本书上说用了迭代方法求方程解,说是先给e2取个初值,然后迭代值u=1.其中u的初值可取0.9。但是怎么个迭代法呢。谁能帮我贴个程序上来,主要是里面同时有微分和积分,我实在不会呀!
大侠,可否说得更加明白些。

d245062 发表于 2011-9-7 18:22:48

本帖最后由 d245062 于 2011-9-7 18:27 编辑

tianyaxiaoke 发表于 2011-9-7 10:28 static/image/common/back.gif
嗯,有本书上说用了迭代方法求方程解,说是先给e2取个初值,然后迭代值u=1.其中u的初值可取0.9。但是怎么 ...
我只能提供一种思路,自己也刚学matlab,编程不熟悉。
大致的步骤就是使用欧拉(Euler)迭代公式,e2取一个初值e20,,算出第一步的u0,然后根据
u1=u0+h*f(e20,u0),其中函数f(,)为u对e2的一次倒数(把原公式中右边的de2移到公式左边,左边的u移到右边就是了),h为步长(可自己设定),这是第二步,第三步参照第二步,知道精度达到要求为止
如果使用其他的迭代公式,比如改进的欧拉公式,或者梯形公式等等,建议看看数值分析中有关常微分方程的数值求解章节。

Ro0o0o0okie 发表于 2011-9-8 01:09:24

我算了下,对于不同的e2和u的初值,结果e2~u曲线变化很大。你这公式里e2,u有什么物理意义么

tianyaxiaoke 发表于 2011-9-8 16:11:20

本帖最后由 tianyaxiaoke 于 2011-9-8 16:15 编辑

Ro0o0o0okie 发表于 2011-9-8 01:09 http://forum.simwe.com/static/image/common/back.gif
我算了下,对于不同的e2和u的初值,结果e2~u曲线变化很大。你这公式里e2,u有什么物理意义么 ...

这是板料成形中M-K理论的公式。e2是最小主应变,对于一般金属材料,一般不超过[-1.0,1.0]这个范围。u是一个参考量,范围应该为.请问您是怎么算的呀?可不可以仔细说一下,是自己编程,还是用matlab自带计算命令。感激不尽!
我用自带dsolve命令计算时,好像微分-积分不能放在同一式中。我没学过matlab,不知道到底哪里错误!

tianyaxiaoke 发表于 2011-9-8 16:12:32

d245062 发表于 2011-9-7 18:22 static/image/common/back.gif
我只能提供一种思路,自己也刚学matlab,编程不熟悉。
大致的步骤就是使用欧拉(Euler)迭代公式,e2取一 ...

十分感谢!我会认真按你的思路考虑的

Ro0o0o0okie 发表于 2011-9-8 18:44:15

tianyaxiaoke 发表于 2011-9-8 16:11 static/image/common/back.gif
这是板料成形中M-K理论的公式。e2是最小主应变,对于一般金属材料,一般不超过[-1.0,1.0]这个范围。u是一 ...

求解思路和6楼说的一样,就是迭代求解常微分初值问题,求解器用的ode45(4、5阶龙格库塔公式)。如果迭代时间步长很小,我感觉公式里的积分就可以当作求和来处理,但是这点我并不确定。以下是代码和计算结果,不知道是不是合理,似乎u的初值设置影响很大,你可以参考下。




tianyaxiaoke 发表于 2011-9-8 20:30:09

Ro0o0o0okie 发表于 2011-9-8 18:44 static/image/common/back.gif
求解思路和6楼说的一样,就是迭代求解常微分初值问题,求解器用的ode45(4、5阶龙格库塔公式)。如果迭代 ...

非常感谢,我先下载下来看看

TBE_Legend 发表于 2011-9-9 09:24:58

tianyaxiaoke 发表于 2011-9-8 20:30 static/image/common/back.gif
非常感谢,我先下载下来看看


TBE_Legend 发表于 2011-9-9 10:00:16

本帖最后由 TBE_Legend 于 2011-9-9 10:04 编辑

真是不好搞, 也不知道 Ro 是怎么处理的不定积分,那可是不定积分啊, 怎么转换成求和???

其实我认为正确的做法应该是: 把积分-微分方程 转换成 微分方程。

转换后,要求接的方程为附件所示, 但次方程的初始值总是找不对,因为提示有无穷大项。

tianyaxiaoke 发表于 2011-9-9 17:02:34

本帖最后由 tianyaxiaoke 于 2011-9-9 17:03 编辑

TBE_Legend 发表于 2011-9-9 10:00 http://forum.simwe.com/static/image/common/back.gif
真是不好搞, 也不知道 Ro 是怎么处理的不定积分,那可是不定积分啊, 怎么转换成求和???

其实我认为正 ...

真心感谢这么多热心的朋友!我昨天将大侠Ro的程序看了一下,坦白说,我不是很懂,因为很少搞微积分方面的计算。但是结果好像和预期的不太一致。还有即便把u-e2的图画出来啦,那如何准确求出u无限接近于1时所对应的e2呢?
另外,前面对u的初值我估计的可能也有些问题,取某一负值(比如-3)可能更合理,此时计算出的e2应该在【0,1】之间。
u的初始可设为0.9。书上说取e2为某一初值迭代计算,直至u无限接近1为止(比如u=1-10e-4).

tianyaxiaoke 发表于 2011-9-9 17:46:44

TBE_Legend 发表于 2011-9-9 09:24 static/image/common/back.gif


请问您这幅图中的
Out=0.226514是解得的e2的值吗?如果是的话,这个值还比较合理。可是你图中的命令比如First,Module是matlab命令吗?我可能问得很愚蠢,不过我真地不懂,可否想大侠Ro那样直接把代码以附件形式上传,感激不尽!

Ro0o0o0okie 发表于 2011-9-9 22:06:16

TBE_Legend 发表于 2011-9-9 10:00 static/image/common/back.gif
真是不好搞, 也不知道 Ro 是怎么处理的不定积分,那可是不定积分啊, 怎么转换成求和???

其实我认为正 ...

你说的对,我之前对那不定积分拿来求和的处理方法确实是不对和不负责任的。是该先把积分项求导化成微分再来求解。

Ro0o0o0okie 发表于 2011-9-9 22:07:45

tianyaxiaoke 发表于 2011-9-9 17:46 static/image/common/back.gif
请问您这幅图中的
Out=0.226514是解得的e2的值吗?如果是的话,这个值还比较合理。可是你图中的命令 ...

他用的Mathematica

hjdwg 发表于 2011-9-13 16:22:38

我觉得这个题目本身像是不完备,那个积分应该有个上下限才对。

要是想用matlab的ode45之类处理这个,做个变量代换就可以变成matlab的ode标准格式,见附图。写了个程序,结果不一定对,算是个思路吧。

function dyde=func1(e,y)

n=0.2;p=-3.0;

y1=y(1); u=y(2);

tt=sqrt(1-u.^2);
dy1=1./tt;    %这个位置可能要修改

du=(2*n+(2*p+1)*e)/2 + e./tt.*(sqrt(3)/2*u-n/y1);
du=du.*u./e;

dyde=;

>> =ode45(@func1,[-1 1],);
>> plot(t,y(:,2))








tianyaxiaoke 发表于 2011-9-14 11:30:43

hjdwg 发表于 2011-9-13 16:22 static/image/common/back.gif
我觉得这个题目本身像是不完备,那个积分应该有个上下限才对。

要是想用matlab的ode45之类处理这个,做个 ...

非常感谢您的详细解答。方程是板料成形中最有名的M-K理论,原文作者推出的确实是不定积分。对于金属薄板,e一般取值在[-1,1]之间,要是非要作为定积分,就取这个范围作为上下限吧。不知道如何由您给出的上图得出u无穷接近于1时相应的e2值?感谢解答!

TBE_Legend 发表于 2011-9-14 13:04:06

本帖最后由 TBE_Legend 于 2011-9-14 13:08 编辑

tianyaxiaoke 发表于 2011-9-14 11:30 static/image/common/back.gif
非常感谢您的详细解答。方程是板料成形中最有名的M-K理论,原文作者推出的确实是不定积分。对于金属薄板 ...
那个定不定积分不无所谓,你这个积分微分方程可以化成微分方程。关键是:

要想求得u,你必须告诉大家:

[*]e的初始值e0是多少,好像不能是0
[*]u(e0)的值
[*]u'(e0)的值



附件是 e0 =1/100000 时, 不同u(e0)和u'(e0)下的u(1),程序已经发给你了,你自己改改就行了。

页: [1] 2
查看完整版本: 一个微--积分方程的求解