非线性方程求解实验报告.docx

上传人:b****1 文档编号:2316253 上传时间:2023-05-03 格式:DOCX 页数:18 大小:98.41KB
下载 相关 举报
非线性方程求解实验报告.docx_第1页
第1页 / 共18页
非线性方程求解实验报告.docx_第2页
第2页 / 共18页
非线性方程求解实验报告.docx_第3页
第3页 / 共18页
非线性方程求解实验报告.docx_第4页
第4页 / 共18页
非线性方程求解实验报告.docx_第5页
第5页 / 共18页
非线性方程求解实验报告.docx_第6页
第6页 / 共18页
非线性方程求解实验报告.docx_第7页
第7页 / 共18页
非线性方程求解实验报告.docx_第8页
第8页 / 共18页
非线性方程求解实验报告.docx_第9页
第9页 / 共18页
非线性方程求解实验报告.docx_第10页
第10页 / 共18页
非线性方程求解实验报告.docx_第11页
第11页 / 共18页
非线性方程求解实验报告.docx_第12页
第12页 / 共18页
非线性方程求解实验报告.docx_第13页
第13页 / 共18页
非线性方程求解实验报告.docx_第14页
第14页 / 共18页
非线性方程求解实验报告.docx_第15页
第15页 / 共18页
非线性方程求解实验报告.docx_第16页
第16页 / 共18页
非线性方程求解实验报告.docx_第17页
第17页 / 共18页
非线性方程求解实验报告.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

非线性方程求解实验报告.docx

《非线性方程求解实验报告.docx》由会员分享,可在线阅读,更多相关《非线性方程求解实验报告.docx(18页珍藏版)》请在冰点文库上搜索。

非线性方程求解实验报告.docx

非线性方程求解实验报告

数学实验报告

非线性方程求解

一、实验目的

1.掌握用MATLAB软件求解非线性方程和方程组的基本用法,并对结果作初步分析;

2.练习用非线性方程和方程组建立实际问题的模型并进行求解。

二、实验内容

题目1

【问题描述】

(Q1)小张夫妇以按揭方式贷款买了1套价值20万元的房子,首付了5万元,每月还款1000元,15年还清。

问贷款利率是多少?

(Q2)某人欲贷款50万元购房,他咨询了两家银行,第一家银行开出的条件是每月还4500元,15年还清;第二家银行开出的条件是每年还45000元,20年还清。

从利率方面看,哪家银行较优惠(简单假设:

年利率=月利率×12)?

【分析与解】

假设初始贷款金额为x0,贷款利率为p,每月还款金额为x,第i个月还完当月贷款后所欠银行的金额为xi,(i=1,2,3,......,n)。

由题意可知:

 

……

因而有:

则可以根据上述方程描述的函数关系求解相应的变量。

(Q1)

根据公式

(1),可以得到以下方程:

设,通过计算机程序绘制f(p)的图像以判断解p的大致区间,在Matlab中编程如下:

fori=1:

25

t=0.0001*i;

p(i)=t;

f(i)=150*t*(1+t).^180-(1+t).^180+1;

end;

plot(p,f),holdon,gridon;

 

运行以上代码得到如下图像:

f(p)~p关系曲线图

通过观察上图可知。

Solution1:

对于,采用二分法求解,在Matlab中编程如下:

clear;

clc;

x0=150000;

n=180;

x=1000;

p0=0.002;

p1=0.0022;

while(abs(p1-p0)>1e-8)

f0=x0*(1+p0).^n+x*(1-(1+p0).^n)/p0;

f1=x0*(1+p1).^n+x*(1-(1+p1).^n)/p1;

p2=(p0+p1)/2;

f2=x0*(1+p2).^n+x*(1-(1+p2).^n)/p2;

if(f0*f2>0&&f1*f2<0)

p0=p2;

else

p1=p2;

end;

end;

p0

结果得到p0=0.00208116455078125=0.2081%.

所以贷款利率是0.2081%。

Solution2:

对于,采用牛顿法求解,为观测p{k}是否收敛,在Matlab中编程如下:

clear

clc

n=5;

fori=1:

n

p(i)=0.0001*(i+18);

t=p(i);

f(i)=t-(150*t*(1+t).^180-(1+t).^180+1)/(27000*t*(1+t).^179+150*(1+t).^180-180*(1+t).^179);

g(i)=t;

end;

plot(p,f,p,g),holdon,gridon;

 

运行以上代码得到如下图像:

由图像可知蓝色曲线在两线交点处斜率绝对值小于1,故p{k}收敛。

取初始值,采用牛顿法求解,在Matlab中编程如下:

p=0.0019;

fori=1:

100

a=p-(150*p*(1+p).^180-(1+p).^180+1)/(27000*p*(1+p).^179+150*(1+p).^180-180*(1+p).^179);

p=a;

end

p

结果得到p0=0.00208116388945915=0.2081%.

所以贷款利率是0.2081%。

Solution3:

采用fzero求解,在Matlab中编程如下:

p=fzero(inline('150*x*(1+x).^180+1-(1+x).^180'),[0.00200,0.00225]);

结果得到p0=0.00208116388945920=0.2081%.

所以贷款利率是0.2081%。

【结论】贷款利率是0.2081%。

(Q2)

根据公式

(1),对于第一家银行提供的条件可以得到关于月利率p1的方程:

对于第二家银行提供的条件可以得到关于年利率p2的方程:

设,。

通过计算机程序绘制f(p1)和f(p2)的图像以判断解p1和p2的大致区间,在Matlab中编程如下:

clear

clc

fori=1:

100

p(i)=0.0001*i;

t=p(i);

f1(i)=1000*t*(1+t).^180-9*(1+t).^180+9;

end;

plot(p,f1),holdon,gridon;

fori=1:

1000

p(i)=0.0001*i;

t=p(i);

f2(i)=100*t*(1+t).^20-9*(1+t).^20+9;

end;

plot(p,f2),holdon,gridon;

 

运行以上代码得到如下图像:

f(p1)~p1关系曲线图

 

f(p2)~p2关系曲线图

通过观察以上图像可知,

Solution1:

采用二分法求解相应的利率值,在Matlab中编程如下:

clear

clc

p10=0.0055;

p11=0.0060;

while(abs(p10-p11)>1e-8)

f0=1000*p10*(1+p10).^180-9*(1+p10).^180+9;

f1=1000*p11*(1+p11).^180-9*(1+p11).^180+9;

p22=(p10+p11)/2;

f2=1000*p22*(1+p22).^180-9*(1+p22).^180+9;

if(f0*f2>0&&f1*f2<0)

p10=p22;

else

p11=p22;

end;

end;

p10

clear

clc

p20=0.060;

p21=0.065;

while(abs(p20-p21)>1e-8)

f0=100*p20*(1+p20).^20-9*(1+p20).^20+9;

f1=100*p21*(1+p21).^20-9*(1+p21).^20+9;

p22=(p20+p21)/2;

f2=100*p22*(1+p22).^20-9*(1+p22).^20+9;

if(f0*f2>0&&f1*f2<0)

p20=p22;

else

p21=p22;

end;

end;

p20

结果得到p1=0.00585079193115234=0.5851%,相应的年利率为p1n=12*p1=7.021%;p2=0.0639487743377685=6.395%。

所以第一家银行的贷款年利率是7.021%,第二家银行的贷款年利率是6.395%。

Solution2:

采用牛顿法求解相应的利率值,为观察p1{k}和p2{k}是否收敛,在Matlab中编程如下:

clear

clc

n=6;

fori=1:

n

p(i)=0.0001*(i+55);

t=p(i);

f1(i)=t-(1000*t*(1+t).^180-9*(1+t).^180+9)/(180000*t*(1+t).^179+1000*(1+t).^180-1620*(1+t).^179);

g(i)=t;

end;

plot(p,f1,p,g),holdon,gridon;

 

clear

clc

n=10;

fori=1:

n

p(i)=0.001*(i+60);

t=p(i);

f2(i)=t-(100*t*(1+t).^20-9*(1+t).^20+9)/(2000*t*(1+t).^19+100*(1+t).^20-180*(1+t).^19);

g(i)=t;

end;

plot(p,f2,p,g),holdon,gridon;

运行以上代码得到如下图像:

由图像可知两条蓝色曲线在两线交点处斜率绝对值均小于1,故p1{k}和p2{k}均收敛。

对于p1{k},取初始值,对于p2{k},取初始值,采用牛顿法求解,在Matlab中编程如下:

clear

clc

p=0.0056;

fori=1:

100

t=p;

pp=t-(1000*t*(1+t).^180-9*(1+t).^180+9)/(180000*t*(1+t).^179+1000*(1+t).^180-1620*(1+t).^179);

p=pp;

end

p

clear

clc

p=0.061;

fori=1:

100

t=p;

pp=t-(100*t*(1+t).^20-9*(1+t).^20+9)/(2000*t*(1+t).^19+100*(1+t).^20-180*(1+t).^19);

p=pp;

end

p

结果得到p1=0.00585079258284539=0.5851%,相应的年利率为p1n=12*p1=7.021%;p2=0.0639487770923863=6.395%。

所以第一家银行的贷款年利率是7.021%,第二家银行的贷款年利率是6.395%。

Solution3:

采用fzero求解,在Matlab中编程如下:

clear

clc

p1=fzero(inline('1000*x*(1+x).^180+9-9*(1+x).^180'),[0.0056,0.0066]);

p2=fzero(inline('100*x*(1+x).^20+9-9*(1+x).^20'),[0.061,0.071]);

p1

p2

结果得到p1=0.00585079258284532=0.5851%,相应的年利率为p1n=12*p1=7.021%;p2=0.0639487770923863=6.395%。

所以第一家银行的贷款年利率是7.021%,第二家银行的贷款年利率是6.395%。

【结论】由于第一家银行的贷款年利率是7.021%,第二家银行的贷款年利率是6.395%,所以第二家银行较优惠。

 

题目2

【问题描述】

由汽缸控制关闭的门,关闭状态的示意图如左图。

门宽a,门枢在H处,与H相距b处有一门销,通过活塞与圆柱形汽缸相连,活塞半径为r,汽缸长l0,汽缸内气体的压强为p0。

当用力F推门,使门打开一个角度α时,活塞下降的距离为c,门销与H的水平距离b保持不变,于是汽缸内气体被压缩,对活塞的压强增加。

已知在绝热条件下,气体的压强p与体积V满足:

pVγ=c,其中γ是绝热系数,c是常数。

试利用开门力矩和作用在活塞上的力矩相平衡的关系(对门枢而言),求在一定的力F的作用下,门打开的角度α。

(参数设置:

a=0.8m,b=0.25m,r=0.04m,l0=0.5m,p0=104N/m2,γ=1.4,F=25N。

α

c

F

b

a

a

b

F

r

l0

l

P0

P0

图1门的关闭状态图2门的关闭状态

【分析与解】

由题意,根据力矩的平衡关系,有:

 

将相应数据带入以上方程组得到:

 

其中P和c是未知量。

Solution:

用牛顿法求解,则原方程组可以表示为如下形式:

 

为使用牛顿迭代法,在Matlab中编程如下:

clear

clc

p0=10000;

c0=0.1;

p

(1)=p0;

c

(1)=c0;

fori=1:

100

A=[3.14159*(0.0625+(c(i)).^2).^0.5,p(i)*c(i)*3.14159*(0.0625+(c(i)).^2).^(-0.5);

(0.5-c(i)).^1.4,-1.4*p(i)*(0.5-c(i)).^0.4];

b=[-p(i)*3.14159*(0.0625+(c(i)).^2).^0.5+12500;

-p(i)*(0.5-c(i)).^1.4+10000*(0.5).^1.4];

t=A\b;

p(i+1)=p(i)+t

(1);

c(i+1)=c(i)+t

(2);

end

c=c(101);

a=atan(4*c)*180/3.14159

结果得到24.8060101524433。

由于该题目是实际物理应用问题,故只有唯一实解,而解α显然符合实际情况,所以该解是正确的。

【结论】门打开的角度α为24.81°

 

题目3

【问题描述】

用迭代公式计算序列{xk},分析其收敛性,其中a分别取5,11,15;b(>0)任意,初值x0=1。

观察是否有混沌现象出现,并找出前几个分岔点,观察分岔点的极限趋势是否符合Feigenbaum常数揭示的规律。

【分析与解】

为观测{xk}随迭代次数变化的情况,在Matlab中编程如下:

functionx=iter(a,b)

x0=1;

x

(1)=a*x0*exp(-b*x0);

fori=1:

49

x(i+1)=a*x(i)*exp(-b*x(i));

end

x=x';

取b=1,计算相应的xk随迭代次数变化的情况,在Matlab中编程如下:

clear

clc

x1=iter(5,1)

x2=iter(11,1)

x3=iter(15,1)

运行以上代码得到如下结果:

迭代次数k

xk(a=5)

xk(a=11)

xk(a=15)

1

1.8394

4.0467

5.5182

2

1.4615

0.7781

0.3322

3

1.6945

3.931

3.5743

4

1.5563

0.8486

1.503

5

1.6412

3.9953

5.0153

6

1.5899

0.8087

0.4992

7

1.6213

3.9625

4.5452

8

1.6022

0.8288

0.7239

9

1.6138

3.9802

5.2648

10

1.6067

0.8179

0.4083

11

1.6111

3.9709

4.0715

12

1.6084

0.8237

1.0414

13

1.61

3.9758

5.5136

14

1.6091

0.8206

0.3334

15

1.6097

3.9732

3.5833

16

1.6093

0.8222

1.4933

17

1.6095

3.9746

5.0316

18

1.6094

0.8214

0.4927

19

1.6095

3.9739

4.5156

20

1.6094

0.8218

0.7408

21

1.6094

3.9743

5.2975

22

1.6094

0.8216

0.3976

23

1.6094

3.9741

4.0076

24

1.6094

0.8217

1.0927

25

1.6094

3.9742

5.4959

26

1.6094

0.8216

0.3383

27

1.6094

3.9741

3.6179

28

1.6094

0.8217

1.4565

29

1.6094

3.9741

5.0916

30

1.6094

0.8217

0.4696

31

1.6094

3.9741

4.404

32

1.6094

0.8217

0.8078

33

1.6094

3.9741

5.4022

34

1.6094

0.8217

0.3652

35

1.6094

3.9741

3.802

36

1.6094

0.8217

1.2733

37

1.6094

3.9741

5.3461

38

1.6094

0.8217

0.3822

39

1.6094

3.9741

3.9122

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2