求助:关于函数的问题,恳请高手指点
function =Gaussmethord(A,b,x0,N,emg)n=length(A);
我只截取了这两行,第二行就有错误,错误是Input argument "A" is undefined.
请问:应该怎么改,多谢了 原帖由 tuoyuan 于 2007-4-3 23:13 发表
function =Gaussmethord(A,b,x0,N,emg)
n=length(A);
我只截取了这两行,第二行就有错误,错误是Input argument "A" is undefined.
请问:应该怎么改,多谢了
请阅读最基础的matlab语法书
事实上,无论哪种语言,函数定义中的参数列表都是形式参数,需要在调用时传递实际的值。以C语言为例,楼主认为不写main函数可以运行你编写好的某个函数吗? 如还有问题,请讲代码及调用时的出错提示给出.
回复 #3 xjzuo 的帖子
这个程序是书上给的,我还是弄不明白哪里有错误,原代码是:function =Gaussmethord(A,b,x0,N,emg)
n=length(A);
x1=zeros(n,1);
x2=zeros(n,1);
x1=x0;
r=max(abs(b-A*x1));
k=0;
while r>emg
for i=1:n
sum=0;
for j=1;n
if j>i
sum=sum+A(i,j)*x1(j);
elseif j<i
sum=sum+A(i,j)*x2(j);
end
end
x2(i)=(b(i)-sum)/A(i,i);
end
r=max(abs(x2-x1));
x1=x2;
k=k+1;
if k>N
disp('shi bai');
return;
end
end
x=x1;
是一个迭代程序,还是恳请指点,多谢 原帖由 tuoyuan 于 2007-4-4 11:50 发表
这个程序是书上给的,我还是弄不明白哪里有错误,原代码是:
function =Gaussmethord(A,b,x0,N,emg)
n=length(A);
x1=zeros(n,1);
x2=zeros(n,1);
x1=x0;
r=max(abs(b-A*x1));
k=0;
while r>emg
...
你如何运行程序的?不是通过在编辑框口中点击run,而是要在命令窗口中用命令行的方式给出实际参数
回复 #5 eight 的帖子
我不运行run,点save as 保存,然后输入数据,可就是迭代不了,求你指点,这是书中的原程序代码,每行的意思我都懂,也觉得没错,可运行后结果不对。多谢指点了!回复 #5 eight 的帖子
% A是线性方程组的左端矩阵,b是右端向量,N表示迭代次数上限,若迭代次数大于N,则迭代失败%emg表示控制精度
%用Gauss-sedidel迭代法求线性方程组A*x=b的解
%k表示迭代次数
%x表示用迭代法求得的线性方程组的近似解
这是注解 请把你的调用代码及出错信息给出. 原帖由 xjzuo 于 2007-4-5 10:20 发表
请把你的调用代码及出错信息给出.
同意,代码、调用方式、出错信息请一并给出
[ 本帖最后由 eight 于 2007-4-5 10:33 编辑 ]
页:
[1]