
梁模型有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}]]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)