数学实验报告方程求解实验.docx

上传人:b****7 文档编号:10006251 上传时间:2023-02-07 格式:DOCX 页数:14 大小:205.10KB
下载 相关 举报
数学实验报告方程求解实验.docx_第1页
第1页 / 共14页
数学实验报告方程求解实验.docx_第2页
第2页 / 共14页
数学实验报告方程求解实验.docx_第3页
第3页 / 共14页
数学实验报告方程求解实验.docx_第4页
第4页 / 共14页
数学实验报告方程求解实验.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数学实验报告方程求解实验.docx

《数学实验报告方程求解实验.docx》由会员分享,可在线阅读,更多相关《数学实验报告方程求解实验.docx(14页珍藏版)》请在冰豆网上搜索。

数学实验报告方程求解实验.docx

数学实验报告方程求解实验

重庆大学

学生实验报告

 

实验课程名称数学实验

开课实验室DS1421

学院年级专业班

学生姓名学号

开课时间至学年第学期

 

总成绩

教师签名

 

数学与统计学院制

开课学院、实验室:

数学与统计学院DS142实验时间:

2013年4月10日

课程

名称

数学实验

实验项目

名称

方程求解实验

实验项目类型

验证

演示

综合

设计

其他

指导

教师

成绩

实验目的

[1]复习求解方程及方程组的基本原理和方法;

[2]掌握迭代算法;

[3]熟悉MATLAB软件编程环境;掌握MATLAB编程语句(特别是循环、条件、控制等语句);

[4]通过范例展现求解实际问题的初步建模过程;

通过该实验的学习,复习和归纳方程求解或方程组求解的各种数值解法(简单迭代法、二分法、牛顿法、割线法等),初步了解数学建模过程。

这对于学生深入理解数学概念,掌握数学的思维方法,熟悉处理大量的工程计算问题的方法具有十分重要的意义。

基础实验

一、实验内容

1.方程求解和方程组的各种数值解法练习

2.直接使用MATLAB命令对方程和方程组进行求解练习

3.针对实际问题,试建立数学模型,并求解。

二、实验过程(一般应包括实验原理或问题分析,算法设计、程序、计算、图表等,实验结果及分析)

1.开启软件平台——MATLAB,开启MATLAB编辑窗口;

2.根据各种数值解法步骤编写M文件

3.保存文件并运行;

4.观察运行结果(数值或图形);

5.根据观察到的结果写出实验报告,并浅谈学习心得体会。

应用实验(或综合实验)

一、实验内容

基础实验

1.用图形放大法求解方程xsin(x)=1.并观察该方程有多少个根。

解:

函数y=x*sin(x)-1为偶函数,因此可以考虑其在[0,+∞]上的零点。

作出其在区间[0,20

]上的函数图像,程序如下:

x=0:

0.01:

20*pi;

y=x.*sin(x)-1;

plot(x,y),holdon,

line([0,20*pi],[0,0])

可以知道方程有无数组解。

求解其在区间[0,2

]上的解。

做出图象如下:

将图像放大:

所以2个解为x=1.1142和x=2.7726。

2.将方程x5+5x3-2x+1=0改写成各种等价的形式进行迭代,观察迭代是否收敛,并给出解释。

解:

成各种等价的形式为:

x=

/2+5

/2+1/2;

x=

x=

x=

x=

程序如下所示:

>>x

(1)=1;y

(1)=1;z

(1)=1;u

(1)=1;v

(1)=1;

fork=1:

20

x(k+1)=x(k)^5/2+2.5*x(k)^3+0.5;

y(k+1)=(y(k)*0.4-0.2-y(k)^5/5)^(1/3);

z(k+1)=(-5*z(k)^3+2*z(k)-1)^(1/5);

u(k+1)=-5/u(k)+2/u(k)^3-1/u(k)^4;

v(k+1)=0.4/v(k)-v(k)^3/5-0.2/v(k)^2;

end

>>x,y,z,u,v

结果:

x=

1.0e+62*

Columns1through10

0.00000.00000.00000.00002.5565InfInfInfInfInf

Columns11through20

InfInfInfInfInfInfInfInfInfInf

Column21

Inf

 

y=

Columns1through5

1.000000.2924+0.5065i0.4873+0.3750i0.4701+0.2548i

Columns6through10

0.3935+0.2364i0.3686+0.2837i0.3947+0.3044i0.4103+0.2922i0.4057+0.2811i

Columns11through15

0.3983+0.2821i0.3977+0.2867i0.4004+0.2877i0.4014+0.2863i0.4007+0.2854i

Columns16through20

0.4001+0.2857i0.4002+0.2862i0.4005+0.2862i0.4005+0.2860i0.4004+0.2860i

Column21

0.4004+0.2860i

 

z=

Columns1through5

1.00001.0675+0.7756i1.5607-0.3514i1.5818+0.8381i1.8323-0.6099i

Columns6through10

1.8377+0.8353i1.9443-0.7354i1.9458+0.8285i1.9884-0.7881i1.9889+0.8249i

Columns11through15

2.0055-0.8091i2.0057+0.8233i2.0121-0.8172i2.0122+0.8227i2.0147-0.8204i

Columns16through20

2.0147+0.8225i2.0156-0.8216i2.0156+0.8224i2.0160-0.8221i2.0160+0.8224i

Column21

2.0162-0.8222i

 

u=

Columns1through10

1.0000-4.00001.2148-3.45941.3901-3.12021.5261-2.89801.6290-2.7488

Columns11through20

1.7052-2.64711.7607-2.57751.8004-2.52961.8286-2.49671.8484-2.4740

Column21

1.8623

 

v=

Columns1through17

10NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN

Columns18through21

NaNNaNNaNNaN

>>可以看出:

迭代不收敛

迭代收敛。

因为

迭代结果为Inf,

迭代结果为交错的数,

迭代结果为:

NaN,所以都不收敛。

只有

迭代结果为一系列变化不大的数,所以收敛。

3.求解下列方程组

 

直接使用MATLAB命令:

solve()和fsolve()对方程组求解。

解:

(1)使用solve()求解,程序如下:

>>[x,y]=solve('2*x-y=exp(-x)','-x+2*y=exp(-y)')

结果为:

x=

0.56714329040978387299996866221036

y=

0.56714329040978387299996866221036

使用fsolve()求解

(1)建立方程组的M-函数文件(fun.m):

functionf=fun(x)

f

(1)=2*x

(1)-x

(2)-exp(-x

(1));

f

(2)=-x

(1)+2*x

(2)-exp(-x

(2));

(2)运行程序

y=fsolve('fun',[1,1],1)

(3)运行结果:

y=

0.56710.5671

(2)使用solve()求解,程序如下:

>>[x,y,z]=solve('x^2-5*y^2+7*z^2=12','3*x*y+x*z-11*x=0','2*y*z+40*x')

结果为:

x=

-0.3717109049617391088072542051407

1.1793977050241834037202635753232

-387.07051006669788881412317135176+32.695733726773593273053059636369*i

-387.07051006669788881412317135176-32.695733726773593273053059636369*i

0

0

0

0

y=

2.7730345684959693301011247878491

5.183********74086637641552216877

-0.31161149637002233026597333810172-50.8105278886440945140172273605*i

-0.31161149637002233026597333810172+50.8105278886440945140172273605*i

0

0

(15^(1/2)*2*i)/5

-(15^(1/2)*2*i)/5

z=

2.6808962945120920096966256364527

-4.550565272732225991292465665063

11.934834489110066990797920014305+152.4315836659322835420516820815*i

11.934834489110066990797920014305-152.4315836659322835420516820815*i

(2*21^(1/2))/7

-(2*21^(1/2))/7

0

0

>>

使用fsolve()求解

(1)建立方程组的M-函数文件(fun1.m):

functionf=fun1(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)

(2)运行程序

>>y=fsolve('fun1',[1,1,1],1)

(3)运行结果:

y=

0.00000.00001.3093

4.编写用二分法求方程根的函数M文件。

解:

函数M文件如下所示:

functiony=qj(fun,x)

fx0=fun((x

(1)+x

(2))/2);

while(abs(fx0)>=eps)

x0=(x

(1)+x

(2))/2;

fx0=fun(x0);

fx1=fun(x

(1));

if((fx0*fx1)<0)

x

(2)=x0;

fx2=fx0;

else

x

(1)=x0;

fx1=fx0;

end

end

y=x0;

检验:

(1)编写另一个人函数M文件fun.m

functioneq=fun(x)

eq=x^2-5*x+6;

运行,qj(@fun,[-1,2.5])

结果如下:

qj(@fun,[-1,2.5])

(2)编写另一个人函数M文件sfun.m

functioneq=sfun(x)

eq=tan(x)-sin(x);

运行qj(@sfun,[-1,0.1])

结果:

y=

-3.0518e-006

可见基本上满足要求,可以求方程的近似解。

总结与体会

1.了解了方程和方程根的求解,学会了使用一些函数,如:

fzero,fsolve和solve。

2.掌握迭代算法和一些求方程的思想,如二分法、图形放大法等。

3,编程还不熟练,需多加练习。

教师签名

年月日

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

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1