怎样在matlab中执行循环迭代

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

在matlab中执行循环迭代的方法:

a是一个由nk个数组成的数组、

对应的y也应该是由nk个数组成的数组

a=某数组

b=某常数

d=某常数

for k=1:1:nk

c=1

n=0

errf=1

求X1000:

while errf>1e-8n<100%计算结果精度要求1e-8,如果迭代超过100次还不收敛,退出循环。

y(k)=a(k)*b*c

c1=y*d

errf=(c1-c)/c1

X1000=c1。

扩展资料

利用迭代算法解决问题,需要做好以下三个方面的工作:

一、确定迭代变量。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。

二、建立迭代关系式。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。

三、对迭代过程进行控制。

参考资料:百度百科——迭代循环

牛顿迭代法matlab实现如下:

function [x_star,index,it] = Newton(fun,x,ep,it_max)

%求解非线性方程的牛顿法

%第一个分量是函数值,第二个分量是导数值

% x为初始点

% ep为精度,当 | x(k)-x(k-1) |<ep时,终止计算,缺省值为1e-5

% it_max为最大迭代次数,缺省值为100

% x_star为当迭代成功时,输出方程的根

% 当迭代失败,输出最后的迭代值

% index为指标变量,当index=1时,表明迭代成功

% 当index=0时,表明迭代失败(迭代次数>=it_max)

% it为迭代次数

if nargin<4 it_max=100end

if nargin<3 ep=1e-5end

index=0k=1

while k<it_max

x1=xf=feval(fun,x)

x=x-f(1)/f(2)

if abs(x-x1)<ep

index=1break

end

k=k+1

end

x_star=xit=k

程序示例如下:

fun=inline('[x^3-x-1,3*x^2-1]')

[x_star,index,it] = Newton(fun,1.5)

z(1)=m

z(2)=(z(1)+(m)/(z(1)))/2

i=1

while

abs(z(i+1)-z(i))>=1.0000e-005

z(i+2)=(z(i+1)+(m)/(z(i+1)))/2

i=i+1

end

yf=z(i+1)

以上程序已经经过测试

别忘了:执行程序之前,先给m赋值,否则会报错的!


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

原文地址:https://54852.com/yw/7748621.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存