• 线性代数模型—python求解


    差分方程模型

    1.斐波那契(Fibonacci)数列的通项

    菲波那切在13世纪提出,一对兔子出生一个月后开始繁殖,每个月出生一对新生兔子
    ,假定兔子只繁殖,没有死亡,问第k个月出会有多少对兔子:

    解:
    以对为单位,每个月繁殖兔子对数构成一个数列,这便是著名的斐波那契数列,
    1 , 1 , 2 , 3 , 5 , 8... 1,1,2,3,5,8... 1,1,2,3,5,8...,,此书列 F k F_k Fk,满足条件:
    F 0 = 1 , F 1 = 1 , F k + 2 = F k + 1 + F k F_0=1,F_1=1,F_{k+2}=F_{k+1}+F_k F0=1,F1=1,Fk+2=Fk+1+Fk
    **解法1:**差分方程的特征根解法
    差分方程的特征根为:
    λ 2 − λ − 1 = 0 \lambda^2-\lambda-1=0 λ2λ1=0
    特征根 λ 1 = \lambda_1= λ1= 1 − 5 2 , λ 2 = \frac{1-\sqrt{5}}{2},\lambda_2= 215 ,λ2= 1 + 5 2 \frac{1+\sqrt{5}}{2} 21+5 是互异的。所以通解为:
    F k = c 1 ( 1 − 5 2 ) k + c 2 ( 1 + 5 2 ) k F_k=c_1\left( \frac{1-\sqrt{5}}{2} \right) ^k+c_2\left( \frac{1+\sqrt{5}}{2} \right) ^k Fk=c1(215 )k+c2(21+5 )k
    利用初值条件: F 0 = 1 , F 1 = 1 F_0=1,F_1=1 F0=1,F1=1,得到方程组:

    { c 1 + c 2 = 1 c 1 ( 1 − 5 2 ) + c 2 ( 1 + 5 2 ) = 1

    {c1+c2=1c1(152)+c2(1+52)=1" role="presentation" style="position: relative;">{c1+c2=1c1(152)+c2(1+52)=1
    {c1+c2=1c1(215 )+c2(21+5 )=1

    解得: c 1 = 1 2 − 5 10 , c 2 = 1 2 + 5 10 c_1=\frac{1}{2}-\frac{\sqrt{5}}{10},c_2=\frac{1}{2}+\frac{\sqrt{5}}{10} c1=21105 ,c2=21+105
    于是:初值问题的解为:

    F k = ( 1 2 − 5 10 ) ( 1 − 5 2 ) k + ( 1 2 + 5 10 ) ( 1 + 5 2 ) k F_k=\left( \frac{1}{2}-\frac{\sqrt{5}}{10} \right) \left( \frac{1-\sqrt{5}}{2} \right) ^k+\left( \frac{1}{2}+\frac{\sqrt{5}}{10} \right) \left( \frac{1+\sqrt{5}}{2} \right) ^k Fk=(21105 )(215 )k+(21+105 )(21+5 )k
    代码:

    import sympy as sp
    sp.var("t,c1,c2")
    t0=sp.solve(t**2-t-1)#求解特征根方程,
    eq1=c1+c2-1
    eq2=c1*t0[0]+c2*t0[1]-1
    s=sp.solve([eq1,eq2])#求解线性方程组
    print("c1=",s[c1],"\n""c2=",s[c2])#输出线性方程组的解
    print("初值问题的解为:""\n",s[c1]*t0[0]+s[c2]*t0[1])#输出初始问题的解
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    解法二:直接利用python软件求解

    import sympy as sp
    sp.var("k")
    y=sp.Function("y")
    f=y(k+2)-y(k+1)-y(k)
    s=sp.rsolve(f,y(k),{y(0):1,y(1):1})#注意这里是rsolve
    print(s)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

  • 相关阅读:
    如何搭建“Docker Registry私有仓库,在CentOS7”?
    YB1205B 外置MOS异步升压恒流LED驱动控制器
    keras fit_generator 增加并行度问题 use_multiprocessing
    python+django固定资产管理系统项目源码
    Kubernetes(K8S) kubesphere 介绍
    1 基础知识
    三道MySQL联合索引面试题,淘汰80%的面试者,你能答对几道
    PyTorch合集2
    SpringBoot是什么?如何学习SpringBoot?
    【模型推理加速系列】06: 基于resnet18加速方案评测
  • 原文地址:https://blog.csdn.net/qq_54423921/article/details/126084017