怎样在matlab中执行循环迭代

怎样在matlab中执行循环迭代,第1张

分类: 电脑/网络 >> 软件

问题描述:

如Xn+1=(Xn+25)Xn (n=0,1,2,3,4,5)

Xo=03

求X1000是多少

解析:

x=0:1000;

x(1)=03;

因为在MATLAB的数组中没有0下标,所以从1开始即X0=X1,所求的X1000=X1001

循环语句中默认步长为1

for n=1:1000

x(n+1)=(x(n)+25)x(n);

end

x(1001)

function [x k]=EqtsSOR(A,b,x0,omiga,eps)

%超松弛(SOR,Successive Over-Relaxation)迭代法求解线性方程组Ax=b

%[x k]=EqtsSOR(A,b,x0,eps)

%x:解向量,列向量

%k:迭代次数

%A:系数矩阵

%b:列向量

%x0:迭代初始值,列向量

%omiga:松弛因子,可缺省,缺省值为1,即为GS迭代法

%eps:误差限,可缺省,缺省值为05e-6

%

%应用举例:

%A=[4 3 0;3 4 -1;0 -1 4];b=[24;30;-24];x0=[1;1;1];omiga=125;

%[x k]=EqtsSOR(A,b,x0,omiga,05e-6)

%x=EqtsSOR(A,b,x0)

if nargin==4

eps=05e-6;

end

if nargin==3

omiga=1;

eps=05e-6;

end

%检查输入参数

n=length(b);

if size(A,1) ~= n || n ~= length(x0)

disp('输入参数有误!');

x=' ';

k=' ';

return;

end

%迭代求解

k=0;

x=zeros(n,1);

while 1

k=k+1;

for i=1:n

z=0;

for j=1:i-1

z=z+A(i,j)x(j);

end

for j=i+1:n

z=z+A(i,j)x0(j);

end

x(i)=(1-omiga)x0(i)+omiga(b(i)-z)/A(i,i);

end

if norm(x-x0)<=eps || k==30

break;

end

x0=x;

end

if k==30

disp('迭代次数太多!')

x=' ';

end

return;

以上就是关于怎样在matlab中执行循环迭代全部的内容,包括:怎样在matlab中执行循环迭代、sor迭代算法的matlab程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10143881.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存