高手请进,关于matlab函数执行过程的问题!?

王朝知道·作者佚名  2009-03-27
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

for k=1:(n-1)a((k+1):n,(k+1):(n+1))=a((k+1):n,(k+1):(n+1))-a((k+1):n,k)/a(k,k)*a(k,(k+1):(n+1));a((k+1):n,k)=zeros(n-k,1);end这是用gauss消去解线性方程组的部分matlab程序。因为我是一个初学者,对程序的执行过程很是不理解,还希望高手赐教。我想问,假设说n=3。那么for循环是如何执行的,是先运算出a(2,2),a(2,3),a(2,4)然后再计算出a(3,2),a(3,3),a(3,4)吗?还是另外的执行方式?我想问的是程序是怎么解决变量k的增长问题的?

參考答案:

用字母验证就可以看出来了啊

a=sym('[A B C D;E F G H;I J K L;M N O P]')

n=3

for k=1:(n-1)

a((k+1):n,(k+1):(n+1))=a((k+1):n,(k+1):(n+1))-a((k+1):n,k)/a(k,k)*a(k,(k+1):(n+1))

a((k+1):n,k)=zeros(n-k,1)

end

运行结果:

a =

[ A, B, C, D]

[ E, F, G, H]

[ I, J, K, L]

[ M, N, O, P]

n =3

a =

[ A, B, C, D]

[ E, F-E/A*B, G-E/A*C, H-E/A*D]

[ I, J-I/A*B, K-I/A*C, L-I/A*D]

[ M, N, O, P]

a =

[ A, B, C, D]

[ 0, F-E/A*B, G-E/A*C, H-E/A*D]

[ 0, J-I/A*B, K-I/A*C, L-I/A*D]

[ M, N, O, P]

a =

[ A, B, C, D]

[ 0, F-E/A*B, G-E/A*C, H-E/A*D]

[ 0, J-I/A*B, K-I/A*C-(J-I/A*B)/(F-E/A*B)*(G-E/A*C), L-I/A*D-(J-I/A*B)/(F-E/A*B)*(H-E/A*D)]

[ M, N, O, P]

a =

[ A, B, C, D]

[ 0, F-E/A*B, G-E/A*C, H-E/A*D]

[ 0, 0, K-I/A*C-(J-I/A*B)/(F-E/A*B)*(G-E/A*C), L-I/A*D-(J-I/A*B)/(F-E/A*B)*(H-E/A*D)]

[ M, N, O, P]

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航