如图所示的串联弹簧,F=100,弹簧刚度为k1 = 50 + 500u ,k2 = 100+ 200u ,u是弹簧伸长量,则平衡方程为


k1,k2带入得


Newton–Raphson方法就是一种线性迭代方法,其算法如下:
1 设置初值tol=0.001,迭代步i=0,最大迭代数max_iter=20以及初始位移u; 2 计算不平衡力 R=f–P(u);

3 计算误差conv,如果conv<tol,则停止迭代

4 计算切线刚度矩阵KT;

5 计算位移增量Δu;

6 计算当前位移u=u+Δu;

7 迭代步数i=i+1,若i>max_iter,则停止迭代; 8 返回第二步。
MATLAB代码如下

输出结果

荷载位移曲线
