积分方程的程序化解决方案

Posted pylblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了积分方程的程序化解决方案相关的知识,希望对你有一定的参考价值。

首先,解决一个数学问题,需要有一定的基础知识。

基础知识又分为:1. 安全变换 ;2. 启发式变换;3. 基本变换公式

其次,要程序化的解决一个数学问题,需要建立目标树:

*所谓树,到达最终的“解决果实”,可能有分叉,也就是说,可以若干条分支,最终摘到果实。

技术分享图片

AND NODE:就是必须将问题全部解决的节点

OR NODE:就是可以选择一条支解决,如果一条支解决不了,可以回到节点处选择另一条支。

例子:解 ∫ - (   5 *( ( X )4  / ( ( 1 - (X)2 ) )5 / 2 )) dx   *此公式其实没便要那么多括号,但为了方便程序化的优先级

准备知识:

一.  安全变换

1. ∫ -f(x) dx = - ∫ f(x) dx

2. ∫ C* f(x) dx = C * ∫ f(x) dx

3. ∫ Σ fi(x) dx = Σ ∫ fi(x) dx

4. ∫ (f(x) / g(x) )dx = f (q(x) + 1 / g(x) ) dx

……

*安全变换,其实有十多种,这是常用的几种

二. 启发变换

5. ∫ f(tan(x)) dx = ∫ f(y) / (1 + (y)2) dy

6. 若存在 1 - (x)2,那么令 x = sin(y);若存在1 + (x)2,那么令 x = tan(y)

……

*启发变换,其实有十多种,这是常用的几种

三. 基本变换公式:积分表

OK,然后开始解决:

1. 根据安全变换1,问题变为,解决:∫  5 * (( X )4 ) / ( ( 1 - (X)2 ) )5 / 2) dx

2. 根据安全变换2,问题变为,解决:∫  ( X )4  / ( ( 1 - (X)2 ) )5 / 2dx

3. 现在,有一个OR NODE,使用安全变换4,OR,使用启发变换。

3.1 

  先使用启发变换:

  令:x = sin(y) , dx / dy = cos(y) ,dx = cos(y) dy,  1 - X2 =  1 - (sin(y))2 = cos(y)2

  4. 问题变为,解决:∫ (sin(y))4 / (cos(y))4 dy

3.2

……

3.1.1

  现在,有一个OR NODE,∫ (sin(y))4 / (cos(y))4 dy 变为:  ∫ 1 / (cot(y))4 dy OR  ∫ (tan(y)) dy

3.1.1.1

  先使用 ∫ (tan(y)) dy

  5. 使用启发变换5,令z = tan(y),问题变为: ∫ z4 / (1 + z) 2  dz

  6. 使用安全变换4,问题变为:∫ z2 - 1 + 1 / (1 + z2) dz

  7. 使用安全变换3,问题变为:∫ z2 dz + ∫  - 1 dz + ∫  1 / (1 + z2) dz ,此处出现了一个AND NODE,NODE上有三个叶子, (前两个叶子好解决)

  8. 最后一个叶子,解决 ∫  1 / (1 + z2) dz ,使用启发变换6,令 z = tan(t) , dz / dt = 1 + tan(z)2  ,dz =  (1 + tan(z)2 ) dt, 问题变为,解决:∫ 1 dt

3.1.1.2

……

 

以上是关于积分方程的程序化解决方案的主要内容,如果未能解决你的问题,请参考以下文章

怎么用matlab解方程啊?

数值分析实验之数值积分法(java 代码)

数值分析实验之数值积分法(java 代码)

教你用神经网络求解高级数学方程!

用matlab或者mathematica求积分解微分方程

备战数学建模7-MATLAB数值微积分与方程求解