文档详情

用c语言迭代法和matlab.docx

发布:2017-04-15约3.71千字共8页下载文档
文本预览下载声明
计算方法实验报告 实 验 名 称 用c语言迭代法和matlab求一个圆与椭圆及x、y轴在第一象限内相切 北京航空航天大学 机械工程及自动化学院 飞行器制造工程系 学号: 姓名: 杨新航 电话: _ Email: 163.com 指导教师:宁涛 闫光荣 胡毕富 陈甜甜 taoning@ 2016 年 11 月 17 日 目录 1 实验目的???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2 实验内容???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 软硬件条件介绍??????????????????????????????????????????????????????????????????????????????????????????????????? 4 实验步骤?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 4.1 问题分析?????????????????????????????????????????????????????????????????????????????????????????????????????? 4.2 算法设计???????????????????????????????????????????????????????????????????????????????????? 4.3 程序流程图????????????????????????????????????????????????????????????????????????????????????????? 4.4 测试规划??????????????????????????????????????????????????????????????????????????????????????????????????????????? 5 实验结果?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 6 实验总结?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 7 matlab求解…………………………………………………………………………. 1 实验目的 了解迭代法求非线性方程组的解 2 实验内容 用C语言以迭代法编程,求一个圆与椭圆及x、y轴在第一象限内相切,将此圆的圆心及半径输出。 3 软硬件条件介绍 软件:c语言开发软件,如vs 硬件:计算机 4 实验步骤 4.1问题分析 设相切点为(x,y),圆的半径为r,因为圆与x,y轴相切,所以设圆心为(r,r),圆的方程为。在切点上,圆与椭圆的切线斜率相同,先求椭圆及圆的斜率。 ,得到,圆的斜率为 则可列方程,与及形成非线性方程组 设, 求Jaccobi矩阵得 由牛顿迭代法=0 在程序中先给定初始值,代入上式即得线性方程组,用高斯消去法求解得,然后算出,这样迭代下去直到与真值间的误差达到事先给定的误差范围,停止迭代,输出。 4.2算法设计 主要是非线性方程组带入初值后变为线性方程组,用高斯消去法加上列主元素法要求解。该算法集中在Dx函数中。 主函数中是一个循环,多次判断迭代,最终求得符合精度要求的解。若初值有问题,则输出无效。 4.3程序流程图 开辟F(X),J(X),dx矩阵空间 开始 输入x,y,r,a,b 调用Fx函数计算出 结束 输出“无解,请改变初始值” dx是否 给x,y,r赋值为X+dx矩阵 是 Dx函数返回值是否为1 调用Dx函数计算出dx 调用Jx函数计算出jaccobi矩阵 输出x, y, fabs(r),r, r,循环次
显示全部
相似文档