用C++研究瞬变体系
一个几何可变体系发生微小位移后,成为几何不变体系,称为瞬变体系。如上图是最简单的瞬变体系。如果在中间的节点上加一个很小的力,就会在拉杆内产生很大的拉力,容易使拉杆破坏。那么当节点上的力为F 时,拉杆的内力为多大?下面用excel 和microsoft visual C++6.0来解决这个问题。
第一步要列方程。
根据力的平衡:2T sin θ=F 根据变形协调条件:cos θ=l l 11EA ====T T +EA T +EA ∆+l TL +l +1EA EA EA
根据sin θ+cos θ=1,可得: 22
E 2A 2F 2
+=1, T +EA 24T 2
化简得:
4T 4+8EAT 3-F 2T 2-2EAF 2T -E 2A 2F 2=0。
单位是:
T ——N A ——mm 2 E ——N/mm2
令a=4 b=8EA c=-F2 d=-2EAF2 e=-E2A 2F 2
可把方程简化为
aT 4+bT 3+cT 2+dT +e =0。
第二步就是把T 、E 、A 、F 的值输入到excel 里,给T 一个范围,求出f(T)来,f (T )=aT 4+bT 3+cT 2+dT +e ,并做f(T)—T 图。其目的是观察方程有个根,它在什么位置上。如图1所示。
通过观察发现这类问题虽然方程是一元四次方程,但只有一个根。我们可以非常容易地知道这个根在什么位置,然后用迭代法把根求出来。
图1 excel 截图
第三步是用microsoft visual C++6.0来计算拉杆的内力。
#include
#include
#define E 200000//弹性模量
#define A 100//截面积
#define F 4310//节点荷载
void main()
{
a=4; b=8*E*A; c=-(F*F); printf("d="); scanf("%lf",&d); printf("e="); scanf("%lf",&e); double x0,x1,f0,f1,stress;//x0,x1,f0,f1是迭代法工具,stress 是应力值。 long double a,b,c,d,e;//a,b,c,d,e是构成方程的系数 int n=0;//用n 来观察迭代次数,仅对编程有意思,对研究的问题没有实际意义
if(fabs((a*x1*x1*x1*x1+b*x1*x1*x1+c*x1*x1+d*x1+e)/(4*a*x1*x1*x1+3*b*x1*x1+printf("the tension of the rod is %.2fN\n",x1); printf("n=%d\n",n); do { x0=x1; f0=a*x0*x0*x0*x0+b*x0*x0*x0+c*x0*x0+d*x0+e; f1=4*a*x0*x0*x0+3*b*x0*x0+2*c*x0+d; x1=x0-f0/f1; n++; printf("input a number to start\n"); printf("x1="); scanf("%lf",&x1); printf("the function is\n"); printf("%.0f*x*x*x*x+%.0f*x*x*x+%.0f*x*x+%.0f*x+%.0f=0\n",a,b,c,d,e); printf("\n\n\n\n"); //导数=4*a*x*x*x+3*b*x*x+2*c*x+d printf("a=%.0f\nb=%.0f\nc=%.0f\nd=%.0f\ne=%.0f\n",a,b,c,d,e); }while(fabs(x0-x1)>1e-6); 2*c*x1+d))
else printf("sorry, you need to try again\n"); printf("congratulation! The answer is right!\n"); printf("\n\n\n\n");
}
按图1的数据所得的计算结果为
//输出应力值 stress=x1/A; printf("stress=%.2fMPa\n",stress); if(stress
图2 计算结果
用这种方程可以克服一元四次方程求解带来的困难,进一步研究我们发现,当材料的弹性模量为200000N/mm2,截面面积为100mm 2,荷载为4310N 时,拉杆里的应力达到
360N/mm2。而如果沿轴向拉同样一根杆的时候,需要36000N 时才能达到许用应力。为前者的8.35倍。考虑到瞬变体系是由两根杆组成,瞬变体系材料的利用效率仅为1/17。
相关文章
- 阅读经典__计算机科学与技术系推荐读物
- 09级计科专业毕业设计题目
- 为何要学编程
- 计算机世界最具影响力的20人
- 超市管理 总体设计说明书
- 人力资源管理系统HRMS_实践报告
- VisualC++程序设计与应用报告---小兔子走迷宫
- VC 的DLL应用(含Demo演示) - 一点一滴的Beer - 博客园
- 一个程序员应该具备的基础知识和概念
- [软件工程导论]考试夹带
推荐读物 推荐给计算机科学与技术专业本科生阅读的部分读物 1. <如何才能停止焦虑开始新生活> 2. The Art of Computer Programming,Donald.E.Knuth Web site: http:/ ...
09级计算机科学与技术专业毕业设计题目指南 说明:1. 每个题目的选择人数最多不能超过2名同学,否则将退回重选.(如题目要求可多 人合作,则以题目要求为准),请各班级同学自行协调解决选题冲突问题. 2.学习委员上报题目请用EXCEL 表格, ...
一.为何要学编程? 每个人的动机不一样.大致有: 1.为了找个好工作:或为了有更好的机会和更好的发展. 2.看到别人超厉害,所以也想学. 3.实际工作中很多场合需要. 4.从小就立志做个程序员,做软件工程师. 5.振兴中国的软件事业. .. ...
转自: 计算机世界最具影响力的20人 1.约翰•冯•诺依曼 (John Von Neuman, 1903- 1957) 被誉为"电子计算机之父".他对人类的最大贡献是对计算机科学.计算机技术和数值分析的开拓性工作,194 ...
[超市管理系统] 总体设计说明书 2013 年 10 月 28 日 1.引言 1.1编写目的 本系统的基本功能是帮助超市的工作人员处理日常的基本工作,包括一般的进货工作,价格管理等多方面的工作,可以减少工作人员的工作量,以及工作成本,主要的 ...
软件工程项目实践报告 课题名称 (副标题) 学院(系) 专 业 学 号 学生姓名 小组编号 完成时间 人力资源管理系统 HRMS 2011年6 月 2 日 目录 1引言 ................................... ...
JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 本科毕业设计(论文) Visual C++程序设计与应用报告 --小兔子走迷宫游戏 学院名称: 计算机工程学院 专 业: 计算机技术与应用 班 级: 09计 ...
作者:一点一滴的Beer Email /Gtalk:[email protected] 出处:http://www.cnblogs.com/beer/ VC++的DLL应用(含Demo演示) 作者:一点一滴的Beer http://bee ...
一个程序员应该具备的基础知识和概念 1.计算机是有什么组成的,CPU是什么东西,其工作原理是什么.(对于这些以及下面将要提到的概念我不会告诉你什么答案,你可以看相应的教材,关于教材我会在下一部分详述,记住理解最重要!) 2.机器语言和微指令 ...
1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系 列严重的问题. 2.产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与 维护的方法不正确有关. 3.软件工程的定义:是指导计算机软件开发和维护的 ...