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

本文探讨了一类非线性差分方程的解法,通过引入辅助变量和迭代公式,推导出方程的通解,并通过代码验证了解的正确性。文章还讨论了不同初值条件对解的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

Go

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

GO

b(n)=2*(n^2+3*n-2)

Go

a(n)=b(n)/(n+1)=2*(n^2+3*n-2)/(n+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  expr (n)

(if  (eq  n  1)

        2.0

     (/   (+   (*  n

                   (expr  (1- n)))

               (*  4

                   (1+ n)))

          (1+ n))))

 

(defun  formula  (n)

(*  2.0

    (/  (+  (* n  n)

            (* 3.0  n)

            -2)

        (1+ n))))

 

 

 

 

(defun  test (n)

(if (> n 0)

  (progn 

       (print (expr   n))

       (print  'compare)

       (print (formula  n))  

       (test (- n 1)))

  (print 'over)))

 

(test  30) 

在这种情况下,稍微改变了形式,将变为不是整数了,但其中算法时间复杂度总体还是线形的。

如果这里将初始值变为a(1)=4,将又会变为整形线形的,请问这是为什么?

(defun  expr (n)

(if  (eq  n  1)

        6.0

     (/   (+   (*  n

                   (expr  (1- n)))

               (*  4

                   (1+ n)))

          (1+ n))))

 

(defun  formula  (n)

(*  2.0

    (+ n 2)))

最终的奥秘在于解方程中,代数方程的特征;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值