悬臂梁MATLAB程序求自由端挠度的程序。

悬臂梁MATLAB程序求自由端挠度的程序。,第1张

MATLAB求悬返枯友臂梁自由端挠度主要用数值分析的原理

梁模型有Euler-Bernoulli, Timoshiko等

数值方法有很多,FDM,FEM,打靶等等,不同模型不同方法都有不同的程序,建议先搞清楚需要用什么模型和方法

当然也可以用带符号变量的办法来用MATLAB直接败顷解微分方程,求的相对的一个解析解,不过这样手算漏槐部分会比较多

你对问题核心的判断基本上是正确的,NSum并不支持对列表的求和。(属性里没有Listable,自带帮助的用例里也找不到列表求和的例子),不过,除此之外,你的代码还有三个问题。

1 xrange后的分号掉了。(我没猜错吧。)

2 某处用了一对中文括号。

3 局部化做的不彻底。(虽然在这里不会引发错误。)逗数

要修改你的代码,方法有很多,Total@Table,Map,Sum(嗯,Sum支持对任何表达式的求和,包括列表),都可以:

w[ratio_, y_] := 

 Module[{k, a, h, q, c, Ec, Et, uc, 山旦首ut, h0, D1, am, bm, cm, xrange},

  k = 1.4 10^8

  a = 10.5

  h = 0.26

  q = 2 10^6

  c = 6.25

  Ec = 10^9

  Et = Ec ratio

 迟激 uc = 0.5/(ratio + 1)

  ut = (ratio 0.5)/(ratio + 1)

  h0 = (h Sqrt[Ec (1 - ut)])/(Sqrt[Ec (1 - ut)] + Sqrt[Et (1 - uc)])

  D1 = (Ec (h0 - h)^3)/(3 (1 - uc^2)) - (Et h0^3)/(3 (1 - ut^2))

  am[m_] := m Pi/a

  bm[m_] := Sqrt[(Sqrt[((m Pi)/a)^4 - k/D1] - ((m Pi)/a)^2)/2]

  cm[m_] := Sqrt[(Sqrt[((m Pi)/a)^4 - k/D1] + ((m Pi)/a)^2)/2]

  xrange = Range[0, 10.5, 0.5] 

  -q/(a D1) Sum[E^(-cm[m] y) (bm[m] Cos[bm[m] y] + cm[m] Sin[bm[m] y]) Sin[am[m] c] Sin[am[m] xrange]/(2 bm[m] cm[m] (bm[m]^2 + cm[m]^2)), {m, 1, 10}]]


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12310428.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存