问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求:雅可比矩阵迭代法MATLAB编程

发布网友 发布时间:2022-04-29 03:55

我来回答

2个回答

热心网友 时间:2023-10-10 00:07

对于求平方根,变成方程模式为f(x)=x^2-a,即求此方程的实根;
下面编写了两个function函数,可以直接调用。
二分法:
function
x=sqrt_bisect(a)
f=@(x)x^2-a;
if
a<0
warning(['负数不能求平方根']);
x=[];
elseif
a==0|a==1
x=a;
else
if
a<1
xa=a;xb=1;
else
xa=1.00;xb=a;
end
while
abs(xa-xb)>1e-6
x=(xa+xb)/2;
if
f(xb)*f(x)>0
xb=x;
elseif
f(xa)*f(x)>0
xa=x;
else
break
end
end
end
x;
牛顿迭代法:
function
x=sqrt_newton(a)
f=@(x)x^2-a;
df=diff(sym('x^2-a'));
if
a<0
warning('负数没有实平方根');
x1=[];
elseif
a==0;
x1=a;
else
x0=a;
x1=x0-f(x0)/subs(df,x0);
while
abs(x1-x0)>1e-6
x0=x1;
x1=x0-f(x0)/subs(df,x0);
end
end
x=x1;
调用格式为:
sqrt_bisect(3)
ans
=
1.7321
或者
sqrt_newton(2)
ans
=
1.4142

热心网友 时间:2023-10-10 00:08

x
=
zeros(size(b));
%初始解设置为与b同型的零向量
k
=
0;
%迭代次数的记数变量,初始量设为0
r
=
1;
%前后项之差的无穷范数
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
D
=
diag(diag(A));
B
=
inv(D)*(D-A);
f
=
inv(D)*b;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
p
=
max(abs(eig(B)));
%谱半径大于等于1就不收敛
if
p
>=
1
'迭代法不收敛'
return
end
while
r
>e
x0
=
x;
x
=
B*x0
+
f;
k
=
k
+
1;
r
=
norm
(x-x0,inf);
end
'所求解为'
x
'迭代次数为'
k
自己以前编的。。。。

热心网友 时间:2023-10-10 00:07

对于求平方根,变成方程模式为f(x)=x^2-a,即求此方程的实根;
下面编写了两个function函数,可以直接调用。
二分法:
function
x=sqrt_bisect(a)
f=@(x)x^2-a;
if
a<0
warning(['负数不能求平方根']);
x=[];
elseif
a==0|a==1
x=a;
else
if
a<1
xa=a;xb=1;
else
xa=1.00;xb=a;
end
while
abs(xa-xb)>1e-6
x=(xa+xb)/2;
if
f(xb)*f(x)>0
xb=x;
elseif
f(xa)*f(x)>0
xa=x;
else
break
end
end
end
x;
牛顿迭代法:
function
x=sqrt_newton(a)
f=@(x)x^2-a;
df=diff(sym('x^2-a'));
if
a<0
warning('负数没有实平方根');
x1=[];
elseif
a==0;
x1=a;
else
x0=a;
x1=x0-f(x0)/subs(df,x0);
while
abs(x1-x0)>1e-6
x0=x1;
x1=x0-f(x0)/subs(df,x0);
end
end
x=x1;
调用格式为:
sqrt_bisect(3)
ans
=
1.7321
或者
sqrt_newton(2)
ans
=
1.4142

热心网友 时间:2023-10-10 00:08

x
=
zeros(size(b));
%初始解设置为与b同型的零向量
k
=
0;
%迭代次数的记数变量,初始量设为0
r
=
1;
%前后项之差的无穷范数
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
D
=
diag(diag(A));
B
=
inv(D)*(D-A);
f
=
inv(D)*b;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
p
=
max(abs(eig(B)));
%谱半径大于等于1就不收敛
if
p
>=
1
'迭代法不收敛'
return
end
while
r
>e
x0
=
x;
x
=
B*x0
+
f;
k
=
k
+
1;
r
=
norm
(x-x0,inf);
end
'所求解为'
x
'迭代次数为'
k
自己以前编的。。。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
kmose正确使用方法? 单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 葡萄树怎么修剪 葡萄结果枝和营养枝的修剪方法图示 葡萄树该怎么剪枝,什么时候剪合适? 盆栽葡萄,如何修剪整形,请有经验的指教并说明理由? 怎样取消关注的公众号 第一年和第二年的葡萄是怎么修剪的 我该如何存在 我该如何存在? 我们应该如何存在?优美句子 世界是怎么来的 将怎么存在? 什么是正电子?怎么存在?等离子态是什么?具体 灵魂是怎样存在的? 辩证唯物主义中世界是怎么存在的 世界究竟是如何存在的? 谢谢,如果是过敏性咳嗽,需要吃什么药 人是怎么存在的 如何存在。 慢性肠炎吃什么药好 怎样存在 手机缓存好的视频可以不用连网看吗 肠胃敏感,吃什么能改善啊 两年的葡萄咋样剪枝 雅可比迭代和gauss-seidel迭代有什么区别 葡萄树春季的修剪和管理方法? 雅可比迭代法,x(0)的值为什么是1.5,由自己设定还是其他决定 小院葡萄第二年怎样剪枝 汉代皇帝纪年表 葡萄栽后第二年疯长,主枝3cm,副梢1cm,冬剪如何处理? 明朝皇帝纪年表是什么? 葡萄什么时候修剪最好怎么修剪 用雅可比迭代矩阵的范数判断方程组是否收敛时,四种范数都能作为判断依据吗? 明朝皇帝纪年表 第二年葡萄一边倒夏季怎么整形修剪夏 求中国古代帝王纪年表。 如何比较高斯迭代法与雅克比迭代法哪一个收敛的更快 求古罗马帝国历代皇帝纪年表,包括东罗马帝国 关于大学里面计算方法(数值分析)中,解线性方程组,利用到雅可比迭代和SOR迭代的利用matlab求解问题 帝王纪什么意思! 皇帝纪年时,对应的月份是什么? 帝王纪年和年号纪年有什么不同? 淝水大战的苻坚是哪个苻?符或苻?