精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx

上传人:b****4 文档编号:16453558 上传时间:2022-11-23 格式:DOCX 页数:16 大小:265.57KB
下载 相关 举报
精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx_第1页
第1页 / 共16页
精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx_第2页
第2页 / 共16页
精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx_第3页
第3页 / 共16页
精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx_第4页
第4页 / 共16页
精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx

《精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx》由会员分享,可在线阅读,更多相关《精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

精品word不动点迭代法和牛顿法非线性方程组求解文档格式.docx

(c).源程序代码:

function[r,n]=mulStablePoint(x0,eps)

%不动点迭代法求非线性方程组的一个解

%初始迭代向量:

x0

%迭代精度:

eps

%解向量:

r

%迭代步数:

n

ifnargin==1

eps=1。

0e-4;

end

r=myf(x0);

n=1;

tol=1;

whiletol>

x0=r;

r=myf(x0);

%迭代公式

tol=norm(r-x0);

%注意矩阵的误差求法,norm为矩阵的欧几里德范数

n=n+1;

if(n〉100000)%迭代步数控制

disp(’迭代步数太多,可能不收敛!

’);

return;

end

举例说明:

解:

首先建立myf.m函数文件,输入以下内容:

functionf=myf(x)

f

(1)=0.5*sin(x

(1))+0。

1*cos(x

(2)*x

(1))-x

(1);

f

(2)=0.5*cos(x

(1))-0.1*sin(x

(2))—x

(2);

在MATLAB命令窗口中输入:

(2)。

牛顿法非线性方程组求解

设非线性方程组为

,其中

牛顿迭代法的迭代公式为:

求解步骤为:

(1)给出初始值

(2)对n=1,2,3…计算F(xn)和F’(xn);

(3)求出xn+1,并进行精度控制。

更一般的牛顿法迭代公式为:

=F’(x0)时,就得到简化牛顿法.

在MATLAB中编程实现的非线性方程组的牛顿迭代法的函数为:

mulNewton。

功能:

用牛顿迭代法求非线性方程组的一个解。

[r,n]=mulNewton(x0,eps).

其中,x0为初始迭代向量;

eps为迭代精度;

(b).流程图:

(c)。

源程序代码:

function[r,n]=mulNewton(x0,eps)

%牛顿迭代法求非线性方程组的一个解

%初始迭代向量x0

%迭代精度eps

%解向量r

%迭代步数n

eps=1.0e—4;

r=x0—myf(x0)/dmyf(x0);

tol=1;

whiletol〉eps

r=x0—myf(x0)/dmyf(x0);

%核心迭代公式

tol=norm(r—x0);

if(n>

100000)%迭代步数控制

disp(’迭代步数太多,可能不收敛!

'

);

另一种方法为简化牛顿迭代法,如下:

在MATLAB中编程实现的非线性方程组的简化牛顿迭代法的函数为:

mulSimNewton。

用简化牛顿迭代法求非线性方程组的一个解。

[r,n]=mulSimNewton(x0,eps)。

源程序代码:

function[r,n]=mulSimNewton(x0,eps)

%简化牛顿迭代法求非线性方程组的一个解

%迭代精度eps

%解向量r

0e-4;

r=x0-myf(x0)/dmyf(x0);

c=dmyf(x0);

n=1;

x0=r;

r=x0—myf(x0)/c;

tol=norm(r-x0);

100000)

disp('

‘迭代步数太多,可能不收敛!

举例说明:

首先建立myf.m函数文件,输入以下内容:

f

(1)=0。

5*sin(x

(1))+0.1*cos(x

(2)*x

(1))—x

(1);

f

(2)=0.5*cos(x

(1))-0。

1*sin(x

(2))-x

(2);

f=[f

(1)f

(2)];

再建立dmyf。

m导数的雅可比矩阵,输入以下内容:

functiondf=dmyf(x)

df=[0.5*cos(x

(1))-0.1*x

(2)*sin(x

(2)*x

(1))-1-0.1*x

(1)*sin(x

(2)*x

(1))—0.5*sin(x

(1))—0。

1*cos(x

(2))—1];

然后在MATLAB命令窗口中输入:

 

2、编程解决以下科学计算问题

1)

5.有3个多项式

试进行下列操作:

(1)求

(2)求

的根

(3)当x取矩阵A的每一个元素,求

的值。

其中:

A=

(4)当以矩阵A为自变量时,求

其中A的值与第(3)题相同。

流程图

%求积函数conv(x,y)

%求平方根函数roots(p)

%逐一取用矩阵中的数值函数polyval(p,x)

%取用矩阵的函数polyvalm(p,A)是按照矩阵运算规则计算多项式的值

%多项式p2,p3

%矩阵A

p1=[12405];

p2=[12];

p3=[123];

p0=conv(p2,p3)%对p2和p3求积

p=p1+[0p0]%对p1和p0进行求和

x=roots(p)%对p进行求根

x=[—11。

2-1。

4;

0.7523.5;

052。

5];

x0=polyval(p,x)%将矩阵x中的每一个数值代入p中

A=[—11.2—1.4;

0。

7523.5;

x0=polyvalm(p,A)%将矩阵A代入p中

结果

2)

2.用三次多项式拟合下面数据,做出图形.

x=[00。

20。

40。

60.81]

y=[07。

7810。

688。

373。

970]

解:

【.m文件程序代码】

>

x=0:

2:

1;

〉〉y=[07。

7810.688.373。

970];

〉>

a=polyfit(x,y,3)

a=

41。

5625—101。

607160.0768-0.1179

x1=[0:

0.05:

1];

y1=a(4)+a(3)*x1+a

(2)*x1。

^2+a

(1)*x1.^3;

plot(x,y,’*'

〉holdon

〉〉plot(x1,y1,’-r’)

运行结果:

3.拟合函数有如下形式:

y=αexp(βx)

试确定系数,并分别用线性尺度和对数尺度做出拟合曲线的图形。

x=[0.01290。

02470。

05300。

15500.30100.47100。

80201。

27001。

43002.4600]

y=[9。

56008.18455.26122。

79172.26111.73401.23701.06741。

11710。

7620]

functionjisuan

x=[0。

01290.02470.0530。

1550。

3010。

4710.8021。

271.432。

46];

y=[9.568。

18455.26162.79172.26111.7341.2371。

06741。

762];

p=polyfit(x,log(y),1);

a=exp(p

(2))

b=p

(1)

x0=0.0129:

0001:

2。

46;

y0=4。

4717。

*exp(—0。

9238。

*x0);

subplot(2,1,1)

plot(x0,y0)

holdon

subplot(2,1,2)

loglog(x0,y0)

〉jisuan

a=

4。

4717

b=

-0.9238

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

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

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

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