继续求解两道MATLAB编程题~~~求高手解答~~~~

第3题:迭代法求方程的根用迭代法求方程在区间[-2,3]上的根,并讨论迭代法的收敛性。(二分法或者牛顿都可以)第4题:线性方程组求解分别使用雅克比迭代和GS迭代计算线性方... 第3题:迭代法求方程的根
用迭代法求方程 在区间[-2,3]上的根,并讨论迭代法的收敛性。
(二分法或者牛顿 都可以)

第4题:线性方程组求解
分别使用雅克比迭代和GS迭代计算线性方程组
2x1-x2=1; -x1+3x2-x3=8; -x2+2x3=-5

取初值为x(0)=(0,0,0)T,迭代过程保留5位有效数字(精确解为x*=(2,3,-1)T )

步骤简洁点最好,每一步都能给出注释最好~~~如果2道都做出来的话 我再追加50分!!谢谢各位大神了!!
展开
 我来答
dbb627
2011-07-05 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2127
采纳率:88%
帮助的人:1401万
展开全部
二分法
function [approx_root,n]=bisect (a,b)
%a,b为根的区间
fa =bifun(a);
fb =bifun(b);
n=0;
while(abs(b-a)> 0.0001)
c=(a+b)/2;
approx_root=c;
fc=bifun(c);
[a,c,b;fa,fc,fb];
n=n+1;
if ( sign(fb) * sign(fc)<=0)
a=c;
fa=fc;
else
b=c;
fb=fc;
end
end
%---------待求解的方程-------------------------
function f=bifun(x)
f=x-tan(x);
------------
[r,n]=bisect (-2,3)

r =

1.5708

n =

16

--------
雅克比迭代
function [y,n]=Jacobim(A,b,x0,eps)
if nargin==3
eps=1.0e-6;
elseif nargin<3
error
return
end
D=diag(diag(A)); %求A的对角矩阵
L=-tril(A,-1); %求A的下三角阵
U=-triu(A,1); %求A的上三角阵
B=D\(L+U);
f=D\b;
y=B*x0+f;
n=1; %迭代次数
while norm(y-x0)>=eps
x0=y;
y=B*x0+f;
n=n+1;
end
----------------计算过程----
>> A=[2 -1 0;-1 3 -1;0 -1 2];
>> b=[1 8 -5]';
>> tol=1e-5;
>> [y1,n1]=Jacobim(A,b,[0 0 0]',tol)

y1 =

2.0000
3.0000
-1.0000

n1 =

25

GS迭代
function [y,n]=gauseidel(A,b,x0,eps)
if nargin==3
eps=1.0e-6;
elseif nargin<3
error
return
end
D=diag(diag(A)); %求A的对角矩阵
L=-tril(A,-1); %求A的下三角阵
U=-triu(A,1); %求A的上三角阵
G=(D-L)\U
f=(D-L)\b;
y=G*x0+f;
n=1; %迭代次数
while norm(y-x0)>=eps
x0=y;
y=G*x0+f;
n=n+1;
end
----------------计算过程----
>> A=[2 -1 0;-1 3 -1;0 -1 2];
>> b=[1 8 -5]';
>> tol=1e-5;
[y,n]=gauseidel(A,b,[0 0 0]',tol)

G =

0 0.5000 0
0 0.1667 0.3333
0 0.0833 0.1667

y =

2.0000
3.0000
-1.0000

n =

12
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式