matlab 差分方程平方根程序

jutyujz0  于 2023-02-23  发布在  Matlab
关注(0)|答案(1)|浏览(153)

我做了一个程序,对每个数使用差分方程的初始条件,但正如你所看到的,代码并没有给予我满意的结果,加上它比预期的循环次数多,每个数的最大值应该运行两次,2次循环后5的平方根= 2.23。

N=4;
S=[5 10 15 27 40]; %root squared numbers input variables 
y1=[2 3 4 5 6]; %1st Initial conditions
for  i=0:1:1
for  n=1:1:3
y1(n)=0.5*(y1(i+1)+(S(n)./y1(i+1)))
end
end

命令窗口上的结果:

y1 =
    2.2500    3.0000    4.0000    5.0000    6.0000
y1 =
    2.2500    3.3472    4.0000    5.0000    6.0000
y1 =
    2.2500    3.3472    4.4583    5.0000    6.0000
y1 =
    2.4205    3.3472    4.4583    5.0000    6.0000
y1 =
    2.4205    3.1674    4.4583    5.0000    6.0000
y1 =
    2.4205    3.1674    3.9516    5.0000    6.0000
rqenqsqc

rqenqsqc1#

内部循环没有处理y1的所有元素。请尝试以下操作:

format long

S=[5 10 15 27 40]; 
y=[2 3 4 5 6]; 

% y=2*x*x'

for n=1:5
    for i=1:numel(S)
        y(i)=0.5*(y(i)+(S(i)./y(i)));
    end
    disp(y)
end

结束行是

y =

   2.236067977499790   3.162277660168379   3.872983346207417

   5.196152422706632   6.324555320336758

准确的答案是

S.^.5
 =
   2.236067977499790   3.162277660168380   3.872983346207417

   5.196152422706632   6.324555320336759

现在,您的2个循环更快地达到预期值。

相关问题