一类非线形差分方程的解法(中间增量的变化)

来源:互联网 发布:b站没有广告知乎 编辑:程序博客网 时间:2024/05/12 10:16

一类非线形差分方程的解法(中间增量的变化)

设(n+1)*a(n)=n*a(n-1)+4*n   {  a(1)=2  }

设置b(n)=(n+1)*a(n)  b(1)=2*a(1)=4

Go

b(n)=b(n-1)+4*n  

GO

注意这里是故意设置a(1)=2,从而让b(1)=4=4*1,而与形式符合的。

b(n)=2*n*(n+1)

Go

a(n)=b(n)/(n+1)=2*n

 

 

下面也可以写代码测试:

(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  expr (n)

(if  (eq  n  1)

        2

     (/   (+   (*  n

                   (expr  (1- n)))

               (*  4

                   n))

          (1+ n))))

 

 

 

 

(defun  test (n)

(if (> n 0)

  (progn 

       (print (expr   n))

       (print  'compare)

       (print (* 2  n))  

       (test (- n 1)))

  (print 'over)))

 

(test  30) 

注意这里将形式变化一下有a(n)=n/(n+1)*{ a(n-1)+4 } 它的表达形式与以前常见的a(n)=a(n-1)+2形式不一样,但结果却一样,从这可以看出其中初始值的巨大作用。

原创粉丝点击