微分方程解特殊差分模型

微分方程解特殊差分模型
由前面两种模型之间的联系,我们可以获得一些共同点;一部分的差分模型比较难解,我们可


以转化为微分方程的近似解来完成;
比如差分模型为:
n*{a(n)-a(n-1)}-0.0001*a(n-1)=0.0001*n^3
GO
n*a(n)-(n+0.0001)*a(n-1)=0.0001*n^3
如果是直接给出下面这个差分方程,要算出它的通项公式比较困难;因为它与上面一种等价,


我们对上面一种差分模型采用微分方法获得近似解答,然后再回代获得差分的解答;
对应的微分方程为x*y'-0.01*y=0.01*x^3  (100比1的关系)
采用标准解法有:
Go
y'-0.01/x*y=9*x^2
GO
可以解得u(x)=C/x^0.01
这样有{y*C/x^0.01}'=9*x^2*C/x^0.01
Go
{y*C/x^0.01}'=C*x^1.99
Go
y*C/x^0.01=A*x^2.99+B
Go
y=A*x^3+B*x^0.01
将这个值代入原始模型中可以得A=9/(3-0.01),现在假定y(1)=(12-0.01)/(3-0.01),这样就可


以得到B=1
通过原方程的形式还可以知道一条信息y(0)=0;
这对应于原来的a(0)=0,和a(100)=3/(3-0.01),




下面写程序来证明:
(setq  a  (/  9
              (- 3  0.01)))
(setq  b  1)


(defun pow (num count)
(if (or (> count 1) (eq  count  1) )
      (* num 
         (pow num 
              (- count 1) ) )
      1))


(defun slayer ( count)
(if (or (> count 1) (eq  count  1) )
      (* count 
         (slayer  
              (- count 1) ) )
      1))


(defun slayerex (num count)
(if (or (> count 1) (eq  count  1) )
      (* num 
         (slayerex 
              (-  num  1) 
              (- count 1) ) )
      1))






y'-0.01/x*y=0.01*x^2


(defun  expr (x1 y1 )
(+  y1
    (*  0.01
        (+  (*  9  
                (pow x1  2))
            (/  (*  0.01
                    y1)
                x1)))))




(defun  calc (n x)
(if  (eq  n  0)
       1.0
    (+ (calc (1- n)
             x)
       (*  (pow  x  
                 n)
           (/    1
                 (slayer n))))))


(setq  e  (calc 10  1))
     


(defun  formula  (x)
(if  (eq  x  0)
        0
(+   (*  a  
         (pow  x  3))
     (*  b  
         (calc 10  
               (* 0.01 
                      (log x)))))))




(defun  exprhelp (x1 )
(if (< (abs (-  x1  0))
       0.01)
        (formula  0)
    (expr  x1
           (exprhelp  (-  x1  
                          0.01)))))                           


(defun  test (n)
(if  (>  n  0)
  (progn 
       (print (exprhelp n))
       (print  'compare)
       (print (formula n))      
       (test (- n 1)))
  (print 'over)))


[200]> (test  20)


24097.682
COMPARE
24081.299
20661.563
COMPARE
20646.848
17568.674
COMPARE
17555.543
14800.9375
COMPARE
14789.322
12340.311
COMPARE
12330.125
10168.744
COMPARE
10159.89
8268.159
COMPARE
8260.558
6620.4917
COMPARE
6614.0693
5207.694
COMPARE
5202.3633
4011.7046
COMPARE
4007.3787
3014.4636
COMPARE
3011.0566
2197.9077
COMPARE
2195.3364
1543.9823
COMPARE
1542.1581
1034.6248
COMPARE
1033.461
651.7748
COMPARE
651.1853
377.37396
COMPARE
377.27042
193.36166
COMPARE
193.6561
81.67573
COMPARE
82.28195
24.260286
COMPARE
25.087223
3.0551095
COMPARE
4.0100336
OVER
OVER
从这个结果可以发现,两者的结果是相当类似,从这里我们可以得出一个结论,可能有的差分


方程没有解,不过采用微分的方法是可以获得近似解的;
另外关于求x^0.01次方的方法,这里采用以下方式获得:
(calc 10  
               (* 0.01 
                      (log x)))))))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值