软件技术06算法.ppt

上传人:牧羊曲112 文档编号:5319410 上传时间:2023-06-25 格式:PPT 页数:21 大小:216.11KB
返回 下载 相关 举报
软件技术06算法.ppt_第1页
第1页 / 共21页
软件技术06算法.ppt_第2页
第2页 / 共21页
软件技术06算法.ppt_第3页
第3页 / 共21页
软件技术06算法.ppt_第4页
第4页 / 共21页
软件技术06算法.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《软件技术06算法.ppt》由会员分享,可在线阅读,更多相关《软件技术06算法.ppt(21页珍藏版)》请在三一办公上搜索。

1、机械工程软件技术基础,第六讲 算法2太原科技大学陶元芳 2010.8,软件技术,0 复习与讨论,1)什么是算法?,软件技术,非数值算法、数值算法 程序也是算法 软件是计算机的灵魂,而算法是软件的核心,复习与讨论,2)循环算法有什么特点?,软件技术,充分利用计算机高速运算的特点 简化程序 分层解决问题,复习与讨论,3)迭代算法有什么特点?,软件技术,运算的次数不定,根据精度决定是否停止 结果是一个极限值 初始点或中间误差不影响最终结果的精度,1 数值算法,1)数值算法的意义机械工程领域涉及较多的数值算法。用计算机解决具体问题的大致步骤:分析问题,抽象出数学模型;设计解此数学模型的算法;编出程序;

2、进行调试;调整直至得到最终解答。可见算法是编程的基础。(数值分析),软件技术,数值算法,2)数值积分 解决“积不出”函数的积分问题 用计算机求微分方程的数值解 用计算机进行复杂物理过程的仿真模拟,软件技术,2 数值积分,定积分就是计算y=f(x)从x=a到x=b这一段曲线下的面积。可以用求和近似代替定积分:,软件技术,数值积分,矩形法,取矩形右边的高(函数值)计算面积:,软件技术,数值积分,/对话框构造函数DLG:DLG(CWnd*pParent/*=NULL*/):CDialog(DLG:IDD,pParent)/AFX_DATA_INIT(DLG)m_a=0.0;/积分下限m_b=90.0

3、;/积分上限m_d=1e-3;/积分步长m_F=0.0;/积分结果/AFX_DATA_INIT,软件技术,数值积分,/被积函数double fx(double x)double y;y=cos(x*3.1415926/180.0);return y;/注意:角度转化为弧度,软件技术,数值积分,void DLG:OnOK()/“开始积分”消息响应函数/TODO:Add extra validation hereUpdateData(true);/取编辑框数据double x=m_a;/定义积分变量xm_F=0;/累加器清零while(x=m_b-m_d)/积分循环x=x+m_d;/前进一步m_F

4、=m_F+fx(x)*m_d*3.1415926/180.0;/累加微面积(角度转化为弧度)UpdateData(false);/刷新编辑框数据/CDialog:OnOK();,软件技术,数值积分,还可以有梯形法,抛物线法(辛普森法,141公式),软件技术,3 保护运算精度,采用列主元或全主元高斯消去法解线性方程组数值积分的分点不要过细,以免产生“下溢出”避免两个相近的值相减,以免损失有效数字。除法运算中,要尽量避免除数的绝对值远远小于被除数的绝对值。合理变换公式,避免特殊点造成计算异常。比如应避免出现“0/0”型的计算,而应该通过调整计算公式,直接给出该比值的极限。,软件技术,4 解一元二次

5、方程,要求考虑实根、虚根、a=0等各种情况。换言之:任何情况下都不许出现程序崩溃的情况,并要保护运算精度。x1=-b/(2a)+(b2-4ac)1/2/(2a)x2=-b/(2a)-(b2-4ac)1/2/(2a)先计算两项符号相同的根,另一根用维达定理。请大家自己编程。用TC2.0需要加输入提示,用VC+6.0需要用对话框。,软件技术,解一元二次方程,框图,软件技术,解一元二次方程,局部框图,软件技术,否(No),是(Yes),b0?,x2=-b-(b2-4ac)1/2/2/ax1=c/a/x2,x1=-b+(b2-4ac)1/2/2/ax2=c/a/x1,两个实根,解一元二次方程,程序界面,软件技术,解一元二次方程,参考程序,软件技术,解一元二次方程,参考程序续,软件技术,解一元二次方程,考核例题,软件技术,5 作业,1)数值算法的意义2)数值积分及方法3)如何保护运算精度?4)编程序解一元二次方程,软件技术,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号