不动点迭代法非线性方程求解

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

不动点迭代法非线性方程求解

《MATLAB程序设计实践》课程考核

1、编程实现以下科学计算算法,并举一例应用之。(参考书籍《精通MATLAB 科学计算》,王正林等著,电子工业出版社,2009年)

“不动点迭代法非线性方程求解”

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

7.某工厂2005年度各季度产值(单位:万元)分别为:450.6、395.9、410.2、450.9,试绘制折线图和饼图,并说明图形的实际意义。

22xy 8.根据绘制平面曲线,并分析参数对其形状的影响。,,1a22a25,a

2.按要求对指定函数进行插值和拟合。

0 (1)按表6.4用3次样条方法插值计算范围内整数点的正弦值和0~90

0范围内整数点的正切值,然后用5次多项式拟合方法计算相同的函数值,0~75

并将两种计算结果进行比较。

表6.4 特殊角的正弦与正切值表

(度) 0 15 30 45 60 75 90 a

sina 0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000 tana 0 0.2679

0.5774 1.0000 1.7320 3.7320

(2)按表6.5用3次多项式方法插值计算1~100之间整数的平方根。

表6.5 1~100内特殊值的平方根表 N 1 4 9 16 25 36 49 64 81 100

1 2 3 4 5 6 7 8 9 10 N

1、不动点迭代非线性方程求解

解:

算法说明:

在Matlab中编程实现不动点迭代法的函数为StablePoint 功能:用不动点迭代法求函数的一个零点。调用格

式:[root,n]=StablePoint(f,x0,eps)。

其中,f为函数名;

x0为初始迭代向量;

eps为根的精度;

root为求出的函数零点;

n为迭代步数。

流程图:

输入参数f,x0,eps

迭代算根

比较精度是否符合要求

输出根值和迭代步数

不动点迭代法的MATLAB程序代码: function

[root,n]=StablePoint(f,x0,eps)

%用不动点迭代法求函数f的一个零点 %初始迭代量:x0

%根的精度:eps

%求出的函数零点:root

%迭代步数:n

if(nargin==2)

eps=1.0e-4;

end

tol=1;

root=x0;

n=0;

while(tol>eps)

n=n+1;

r1=root;

root=subs(sym(f),findsym(sym(f)),r1)+r1; %迭代的核心公式tol=abs(root-r1); end

实例:

1采用不动点迭代法求方程的一个根。,,,x20

x

流程图:

开始

确定函数和参数

代入公式

输出结果

解:在MATLAB命令窗口中输入程序代码:

>>[r,n]=StablePoint('1/sqrt(x)+x-2',0.5)

结果输出:

r =

0.3820

n =

4

从计算结果可以看出,经过四步迭代,得出方程的一个根为0.3820

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

7、某工厂2005年度各季度产值(单位:万元)分别为450.6, 395.9, 410.2,

450.9,试绘制折线图和饼图,并说明图像的实际意义。解:

流程图:

用subplot首先对对作图区域

分区

根据图线类型选择函数:

折线图用plot

饼状图用pie

输入数据;图像用title标注

输出图像

源程序代码:

%折线图

subplot(1,2,1)

plot([450.6,395.9,410.2,450.9]) title('2005年度各季度产值-折线图');

%饼状图

subplot(1,2,2)

pie([450.6,395.9,410.2,450.9],1:4,{'第一季度','第二季度','第三季度','第四季度'}) title('2005年度各季度产值-饼图')

从折线图可以看出该工厂效益变化趋势,效益在第二季度最低随后逐渐提高,并在第四季度恢复到第一季度的水平;从饼状图可以看出各个季度该工厂效益的比例关系。从这两个图可以合理安排工厂的生产计划。

22xy,,18.根据绘制平面曲线,并分析参数对其形状的影响。 a22a25,a 流程图:

定义符号变量a x y

和函数eq;设置变参量

aa(实数矩阵)

n为矩阵的列数;

for i=1:n

eq1=subs(eq,a,aa(i));

并用ezplot绘制隐函数

图形

设置图像坐标范围和间

隔时间

依次作图

syms a x y

eq=1/a^2*x^2 +y^2/(25-a^2)-1;

aa=[0.5:0.5:3.5,5/sqrt(2),3.6:0.5:6.6];

[m,n]=size(aa);

for i=1:n

eq1=subs(eq,a,aa(i)); ezplot(eq1,[-20 20]) drawnow axis([-20 20 -10 10]) pause(0.5)

end

相关文档
最新文档