如何在matlab定义函数中定义参数的数据类型
一个求解线性方程组的Jacobi迭代法函数function[x,k,flag,err]=Jocobi(A,b,delta,max1)%求解线性方程组的迭代法,其中%A为方...
一个求解线性方程组的Jacobi迭代法函数
function [x,k,flag,err]=Jocobi(A,b,delta,max1)
% 求解线性方程组的迭代法,其中
% A为方程组的系数矩阵
% b为方程组的右端项
% delta为精度要求,缺省值为1e-5
% max1为最大迭代次数,缺省值为100
% x为方程组的解
% k为迭代次数
% flag为指标变量 flag='OK!'表示迭代收敛到指标要求
% flag='fail!'表示迭代失败
if nargin<4 max1=100;end
if nargin<3 delta=1e-5;end
n=length(A);k=0;
x=zeros(n,1);y=zeros(n,1);flag='OK!';
while 1
for i=1:n
y(i)=b(i);
for j=1:n
if j~=i
y(i)=y(i)-A(i,j)*x(j);
end
end
if abs(A(i,j))<1e-10|k==max1
flag='Fail!';return;
end
y(i)=y(i)/A(i,i);
end
if norm(y-x,inf)<delta
break;
end
x=y;k=k+1;
end
输入A阵和b阵后调用函数提示没定义参数类型
A=[4 1 -1;1 -5 -1;2 -1 -6],b=[13 -8 -2]'
[x,k,flag]=Jacobi(A,b)
Undefined function or method 'Jacobi' for input arguments of type 'double'.
请高手解答谢谢,如果回答正确可追加分 展开
function [x,k,flag,err]=Jocobi(A,b,delta,max1)
% 求解线性方程组的迭代法,其中
% A为方程组的系数矩阵
% b为方程组的右端项
% delta为精度要求,缺省值为1e-5
% max1为最大迭代次数,缺省值为100
% x为方程组的解
% k为迭代次数
% flag为指标变量 flag='OK!'表示迭代收敛到指标要求
% flag='fail!'表示迭代失败
if nargin<4 max1=100;end
if nargin<3 delta=1e-5;end
n=length(A);k=0;
x=zeros(n,1);y=zeros(n,1);flag='OK!';
while 1
for i=1:n
y(i)=b(i);
for j=1:n
if j~=i
y(i)=y(i)-A(i,j)*x(j);
end
end
if abs(A(i,j))<1e-10|k==max1
flag='Fail!';return;
end
y(i)=y(i)/A(i,i);
end
if norm(y-x,inf)<delta
break;
end
x=y;k=k+1;
end
输入A阵和b阵后调用函数提示没定义参数类型
A=[4 1 -1;1 -5 -1;2 -1 -6],b=[13 -8 -2]'
[x,k,flag]=Jacobi(A,b)
Undefined function or method 'Jacobi' for input arguments of type 'double'.
请高手解答谢谢,如果回答正确可追加分 展开
2个回答
2009-04-09
展开全部
出现这个错误可能是你的自定义函数并没有加入matlab默认的搜索范围
可以试试看
在主界面中 file->set path->add folder
将你存储这个函数的文件夹添加进去
再试试看调用这个函数
可以试试看
在主界面中 file->set path->add folder
将你存储这个函数的文件夹添加进去
再试试看调用这个函数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接把f作为函数的参数既可以。
1、f.m
function
y
=
f(n)
y
=
n^2;end2、demo.m
function
y
=
demo(f)
y=f(40)/(f(30)-f(20))end3、在命令窗口调用:
>>
demo(@f)ans
=
3.2000
1、f.m
function
y
=
f(n)
y
=
n^2;end2、demo.m
function
y
=
demo(f)
y=f(40)/(f(30)-f(20))end3、在命令窗口调用:
>>
demo(@f)ans
=
3.2000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询