matlab求代数方程的近似艮 实验报告三

2025-10-05

《matlab与数学实验》实验报告

实验序号: 实验三 日期: 2015 年 5 月 22 日

x* ( x* ) , x* 是它的根, x0 是其近似根.牛顿法的基本思想: f ( x) 0 是非线性方程,一般较难解 决,多采用线性化方法. 附加题Eye() Diag(ones(7,1) ,1)

主要内容 (要点)4.分别用对分法、普通迭代法、松弛迭代法、Altken 迭代 法、牛顿切法线等 5 种方法,求方程 t x sin( x) 的正的近似 根, 0 t 1 .(建议取 t 0.5 ).时间许可的话,可进一步考虑 t 0.25 的情况.)

2 1 0 0 附加:思考:若 m 0 0 0 0

1 2 1 0 0 0 0 0

0 1 2 1 0 0 0 0

0 0 1 2 1 0 0 0

0 0 0 1 2 1 0 0

0 0 0 0 1 2 1 0

0 0 0 0 0 1 2 1

0 0 0 0 ,或 m 是类似的 0 0 1 2

但阶数更大的稀疏方阵,则 m 应如何得到?

实验过程 记录(含 基本步 骤、主要 程序清单 及异常情 况记录 等)

4、分别用对分法、普通迭代法、松弛迭代法、Altken 迭代 法、牛顿切法线等 5 种方法,求方程 t x sin( x) 的正的近似 根, 0 t 1 .(建议取 t 0.5 )

一、对分法

图像程序: f='sin(x)-0.5*x'; g='0'; ezplot(f, [-4, 4]); hold on; ezplot(g, [-4, 4]); grid on; axis([-4 4 -5 5]); hold off %目的是画出直线 y=0,即 x 轴

求解程序: clear

syms x fx; a=1.5;b=2; fx=sin(x)-0.5*x; x=(a+b

)/2;k=0; ffx=subs(fx,'x',x); if ffx==0; disp(['the root is:',num2str(x)]) else disp('k ak bk f(xk)')

while abs(ffx)>0.0001 & a<b; disp([num2str(k),' ',num2str(a),' fa=subs(fx,'x',a);ffx=subs(fx,'x',x); if fa*ffx<0 b=x; else a=x; end k=k+1;x=(a+b)/2; end disp([num2str(k),' ',num2str(a),' end 答案:k 0 1.5 1 1.75 2 1.875 3 1.875 4 1.875 5 1.8906 6 1.8906 7 1.8945 ak 2 2 2 1.9375 1.9063 1.9063 1.8984 1.8984 bk f(xk) ',num2str(b),' ',num2str(ffx)]) ',num2str(b),' ',num2str(ffx)])

0.10899 0.10899 0.016586 -0.035236 -0.0088639 0.0039768 -0.0024147 0.00078829

8 1.8945 9 1.8945

1.8965 1.8955

-0.00081139 -1.1094e-005

二、普通迭代法clear syms x fx gx; gx=2*sin(x);fx=sin(x)-0.5*x; disp('k x=1.9;k=0; ffx=subs(fx,'x',x); while abs(ffx)>0.0001; disp([num2str(k),' ',num2str(x),' ',num2str(ffx)]) x f(x)')

x=subs(gx,'x',x);ffx=subs(fx,'x',x);k=k+1; end disp([num2str(k),' ',num2str(x),' ',num2str(ffx)])

答案: k 0 1.9 1 1.8926 2 1.8973 3 1.8943 4 1.8962 5 1.895 6 1.8958 7 1.8953 8 1.8956 9 1.8954 x f(x) -0.0036999 0.0023664 -0.0015075 0.00096278 -0.00061391 0.00039186 -0.00024996 0.00015951 -0.00010176 6.4935e-005

三、松弛迭代法clear syms fx gx x dgx; gx=2*sin(x);fx=sin(x)-0.5*x;dgx=diff(gx, 'x'); x=1.9;k=0; ggx=subs(gx, 'x', x);ffx=subs(fx, 'x', x);dgxx=subs(dgx, 'x', x); disp('k x w') while abs(ffx)>0.0001; w=1/(1-dgxx); disp([num2str(k), ' num2str(w)]) x=(1-w)*x+w*ggx;k=k+1; ggx=subs(gx, 'x', x);ffx=subs(fx, 'x', x);dgxx=subs(dgx, 'x', x); end disp([num2str(k), ' ', num2str(x), ' ', num2str(w)]) ', num2str(x), ' ',

答案 k 0 1.9 1 1.8955 x w 0.60732 0.60732

四、Altken 迭代法clear syms x fx gx;

gx=2*sin(x);fx=sin(x)-0.5*x; disp('k x=1.9;k=0; ffx=subs(fx, 'x', x); while abs(ffx)>0.0001; u=subs(gx, 'x', x);v=subs(gx, 'x', u); disp([num2str(k), ' ' end disp([num2str(k), ' ', num2str(v)]) ', num2str(x), ' ', num2str(u), ' ', num2str(v)]) ', num2str(x), ' ', num2str(u), x x1 x2')

x=v-(v-u)^2/(v-2*u+x);k=k+1;ffx=subs(fx, 'x', x);

答案 k 0 1.9 1 1.8955 x x1 1.8926 1.8926 x2 1.8973 1.8973

五、牛顿切法clear syms x fx gx; fx=sin(x)-0.5*x;gx=diff(fx,'x'); x1=1.9;k=0; disp('k x1') fx1=subs(fx,'x',x1); gx1=subs(gx,'x',x1); while abs(fx1)>0.0001; disp([num2str(k),' ',num2str(x1)]) x1=x1-fx1/gx1;k=k+1; fx1=subs(fx,'x',x1); gx1=subs(gx,'x',x1); end disp([num2str(k),' ',num2str(x1)])

答案 k x1

0 1.9 1 1.8955

2 1 0 0 附加:思考:若 m 0 0 0 0

1 2 1 0 0 0 0 0

0 1 2 1 0 0 0 0

0 0 1 2 1 0 0 0

0 0 0 1 2 1 0 0

0 0 0 0 1 2 1 0

0 0 0 0 0 1 2 1

0 0 0 0 ,或 m 是类似的 0 0 1 2

但阶数更大的稀疏方阵,则 m 应如何得到?

clear A=eye(7); a1=diag(ones(7,1),1); a2=rot90(a1,2); a3=2*eye(8); m=a1+a2+a3; disp(m)

答案 2 1 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 1 2 1 0 0 0 0 0 0 1 2

实验结果 报告与实 验总结

实验结果: 一、对

分法 1.8945~1.8984 二、普通迭代法 1.8954 三、松弛迭代法 1.8955迭代步数:9 迭代步数:9 迭代步数:2 迭代步数:2

四、Altken 迭代法 1.8955 ~ 1.8926 五、牛顿切法 1.8955迭代步数:2

实验总结:在调试和运行的过程中,取不同的初值和 方程表达式,得到的运算结果与迭代次数都不相同, 所取得区间越精确,迭代次数就越少。所以我们可以 先通过画出函数的图像来大致判别根所在的区间,这 样能够比较快速准确地找出近似根。 附加题除了用 eyes 和 diag、rot90 的矩阵生成函数外, 直接相加即可生成。

教师评语

实验成绩


matlab求代数方程的近似艮 实验报告三.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第11章 动词非谓语形式

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219