重庆大学数学实验实验报告

上传人:re****.1 文档编号:564835638 上传时间:2022-12-29 格式:DOC 页数:11 大小:154.50KB
返回 下载 相关 举报
重庆大学数学实验实验报告_第1页
第1页 / 共11页
重庆大学数学实验实验报告_第2页
第2页 / 共11页
重庆大学数学实验实验报告_第3页
第3页 / 共11页
重庆大学数学实验实验报告_第4页
第4页 / 共11页
重庆大学数学实验实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《重庆大学数学实验实验报告》由会员分享,可在线阅读,更多相关《重庆大学数学实验实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、.重 庆 大 学学 生 实 验 报 告实验课程名称 数 学 实 验 开课实验室 学 院 年级专业班学 生 姓 名 学 号开 课 时 间 至学年第学期总 成 绩教师签名数学与统计 学 院 制开课学院、实验室:数学与统计DS1421 实验时间:2010年3 月23日课程名称数学实验实验项目名称MATLAB方程求解实验项目类型验证演示综合设计其他指导教师肖剑成 绩实验目的1 复习求解方程及方程组的基本原理和方法;2 掌握迭代算法;3 熟悉MATLAB软件编程环境;掌握MATLAB编程语句(特别是循环、条件、控制等语句);4 通过范例展现求解实际问题的初步建模过程;通过该实验的学习,复习和归纳方程求解

2、或方程组求解的各种数值解法(简单迭代法、二分法、牛顿法、割线法等),初步了解数学建模过程。这对于学生深入理解数学概念,掌握数学的思维方法,熟悉处理大量的工程计算问题的方法具有十分重要的意义。一、实验内容1方程求解和方程组的各种数值解法练习 2直接使用MATLAB命令对方程和方程组进行求解练习 3针对实际问题,试建立数学模型,并求解。二、实验过程(一般应包括实验原理或问题分析,算法设计、程序、计算、图表等, 实验结果及分析)基础实验1 用图形放大法求解方程 x sin(x) = 1. 并观察该方程有多少个根。程序:x=-50:0.01:50y=x.*sin(x)-1plot(x,y)line(-

3、50,50,0,0)结果:有无穷个根图像放大:x=-8:0.01:-6y=x.*sin(x)-1plot(x,y)line(-8,-6,0,0)求得一个解为6.44分析:2 将方程x5 +5x3- 2x + 1 = 0 改写成各种等价的形式进行迭代,观察迭代是否收敛,并给出解释。迭代函数为,算法设计为:x1=0;x2=(x15+5*x13+1)/2;while abs(x1-x2)10(-5) x1=x2; x2=(x15+5*x13+1)/2;endx1输出结果为:x1 = Inf因此x=j(x)迭代不收敛,则不直接使用j(x)迭代,用加速迭代函数,算法设计为:x1=0; x2=(-4*x1

4、5-10*x13+1)/(-5*x14-15*x12+2);while abs(x1-x2)10(-5) x1=x2; x2=(-4*x15-10*x13+1)/(-5*x14-15*x12+2);endx1输出结果为:x1 = -0.7685迭代函数为,算法设计为:x1=1;x2=(2*x1-x15-1)/5)(1/3);while abs(x1-x2)10(-5) x1=x2; x2=(2*x1-x15-1)/5)(1/3);endx1输出结果为:x1 = Inf - Infi因此x=j(x)迭代不收敛,则不直接使用j(x)迭代,用加速迭代函数,算法设计为:x1=0;x2=(0.4*x1-

5、0.2*x15-0.2)(1/3)-1/15*(0.4*x1-0.2*x15-0.2)(-2/3)*(2*x1-5*x15)/(1-(1/15*(0.4*x1-0.2*x15-0.2)(-2/3)*(2-5*x14);while abs(x1-x2)10(-5) x1=x2;x2=(0.4*x1-0.2*x15-0.2)(1/3)-1/15*(0.4*x1-0.2*x15-0.2)(-2/3)*(2*x1-5*x15)/(1-(1/15*(0.4*x1-0.2*x15-0.2)(-2/3)*(2-5*x14);endx1输出结果为:x1 = 0.4004 + 0.2860i迭代函数为,算法设计

6、为:x1=0;x2=(2*x1-5*x13-1)(1/5);for k=1:100 x1=x2; x2=(2*x1-5*x13-1)(1/5);endx1输出结果为:x1 = 2.0162 - 0.8223i若用加速迭代函数,算法设计为:x1=0;x2=(2*x1-5*x13-1)(1/5)-1/5*(2*x1-5*x13-1)(-4/5)*(2*x1-15*x13)/(1-1/5*(2*x1-5*x13-1)(-4/5)*(2-15*x12);for k=1:100 x1=x2; x2=(2*x1-5*x13-1)(1/5)-1/5*(2*x1-5*x13-1)(-4/5)*(2*x1-15

7、*x13)/(1-1/5*(2*x1-5*x13-1)(-4/5)*(2-15*x12);endx1输出结果为:x1 = -0.1483 + 0.7585i迭代函数为,算法设计为:x1=1;x2=0.2*(2/x1-1/x12-x13);for k=1:100 x1=x2; x2=0.2*(2/x1-1/x12-x13);endx1输出结果为x1 = NaN因此x=j(x)迭代不收敛,则不直接使用j(x)迭代,用加速迭代函数,算法设计为:x1=1;x2=(2/x1-1/x12-x13)-x*(-2/x12+2/x13-3*x12)/(5-(-2/x12+2/x13-3*x12);for k=1

8、:100 x1=x2; x2=(2/x1-1/x12-x13)-x*(-2/x12+2/x13-3*x12)/(5-(-2/x12+2/x13-3*x12);endx1输出结果为:x1 = 3.836迭代函数为,算法设计为:x1=1;x2=2/x13-5/x1-1/x14;for k=1:100 x1=x2; x2=2/x13-5/x1-1/x14;endx1输出结果为:x1= 1.8933若用加速迭代函数,算法设计为:x1=1;x2=(2/x13-5/x1-1/x14)-x*(-6/x4+5/x2+4/x5)/(1-(-6/x4+5/x2+4/x5);for k=1:100 x1=x2; x

9、2=(2/x13-5/x1-1/x14)-x*(-6/x4+5/x2+4/x5)/(1-(-6/x4+5/x2+4/x5);endx1输出结果为:x1 = 1.1133求解下列方程组(1)用solve()对方程组求解程序:x,y=solve(2*x-y-exp(-x),-x+2*y-exp(-y)结果:x =.1036y =.1036用fsolve()对方程组求解:建立M文件,程序:function f=qhs(x)f(1)=2*x(1)-x(2)-exp(-x(1);f(2)=-x(1)+2*x(2)-exp(-x(2); 输入fsolve(qhs,1,1) 结果:ans =0.5671 0

10、.5671(2)用solve()对方程组求解程序:x1,x2,x3=solve(x12-5*x22+7*x32+12,3*x1*x2+x1*x3-11*x1,2*x2*x3+40*x1)double(x1)double(x2)double(x3)结果:ans = 1.0e+02 * 0.0100 0 0 -0.0031 0 0 -3.8701 + 0.3270i -3.8701 - 0.3270ians = 5.0000 1.5492 -1.5492 2.9579 0 0 -0.3123 -50.8065i -0.3123 +50.8065ians = 1.0e+02 * -0.0400 0

11、0 0.0213 0 + 0.0131i 0 - 0.0131i 0.1194 + 1.5242i 0.1194 - 1.5242i用fsolve()对方程组求解:程序:function f=qhst(x)f(1)=x(1)2-5*x(2)2+7*x(3)2+12;f(2)=3*x(1)*x(2)+x(1)*x(3)-11*x(1);f(3)=2*x(2)*x(3)+40*x(1); 外部调用fsolve(qhst,1,1)结果:Optimization terminated: first-order optimality is less than options.TolFun.y =0.00

12、00 1.5492 0.0000直接使用MATLAB命令:solve()和fsolve()对方程组求解。4.编写用二分法求方程根的函数M文件。以以解方程x2-x-2=0为例function f=fc(x)f=x2-*x-2;function f=qiugen(x)m=x(1);n=x(2);while (n-m)10(-5)if fc(m)=0 f=m;break;elseif fc(n)=0 f=n;break;elseif fc(m+n)/2)=0 f=(m+n)/2;break;elseif fc(m)*fc(m+n)/2) x=0.5,2;root=qiugen(x)输出结果root

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号