MATLAB中定义函数问题
请问一下各位高手,我写的如下函数,怎么总是报这样错,谢谢了!!???Inputargument"x"isundefined.Errorin==>lagranat2m=le...
请问一下各位高手,我写的如下函数,怎么总是报这样错,谢谢了!!
??? Input argument "x" is undefined.
Error in ==> lagran at 2
m=length(x);n=length(y);p=length(xx);
程序如下:
function yy=lagrange(x,y,xx)
m=length(x);n=length(y);p=length(xx);
if m~=n, error('向量x与y的长度必须一致');end
s=0;
for k=1:n
t=ones(1,p);
for j=1:n
if j~=k
t=t.*(xx-x(j))/(x(k)-x(j));
end
end
s=s+t*y(k);
end
yy=s;
x=[100 121 144];y=[10 11 12];
yy=lagrange(x,y,115) 展开
??? Input argument "x" is undefined.
Error in ==> lagran at 2
m=length(x);n=length(y);p=length(xx);
程序如下:
function yy=lagrange(x,y,xx)
m=length(x);n=length(y);p=length(xx);
if m~=n, error('向量x与y的长度必须一致');end
s=0;
for k=1:n
t=ones(1,p);
for j=1:n
if j~=k
t=t.*(xx-x(j))/(x(k)-x(j));
end
end
s=s+t*y(k);
end
yy=s;
x=[100 121 144];y=[10 11 12];
yy=lagrange(x,y,115) 展开
2个回答
展开全部
没有问题啊!
function yy=lagrange(x,y,xx)
m=length(x);n=length(y);p=length(xx);
if m~=n, error('向量x与y的长度必须一致');end
s=0;
for k=1:n
t=ones(1,p);
for j=1:n
if j~=k
t=t.*(xx-x(j))/(x(k)-x(j));
end
end
s=s+t*y(k);
end
yy=s;
现将其保存为lagrange.m
然后在命令窗口输入
x=[100 121 144];y=[10 11 12];
yy=lagrange(x,y,115)
就会得到
yy =
10.7228
function yy=lagrange(x,y,xx)
m=length(x);n=length(y);p=length(xx);
if m~=n, error('向量x与y的长度必须一致');end
s=0;
for k=1:n
t=ones(1,p);
for j=1:n
if j~=k
t=t.*(xx-x(j))/(x(k)-x(j));
end
end
s=s+t*y(k);
end
yy=s;
现将其保存为lagrange.m
然后在命令窗口输入
x=[100 121 144];y=[10 11 12];
yy=lagrange(x,y,115)
就会得到
yy =
10.7228
展开全部
%[1
1
1]就是给a(1),a(2),a(3)
参数赋予初值
%程序运行不了是因为你定义的内联函数inline有错,注意t为数组运算符得用点
t=[1790:10:2000];
p=[3.9
5.3
7.2
9.6
12.9
17.1
23.2
31.4
38.6
50.2
62.9
76.0
92.0
106.5
123.2
131.7
150.7
179.3
204.0
226.5
251.4
281.4];
ft=inline('a(1).*a(2)./(a(1)+exp(-a(3).*t).*a(2)-exp(-a(3).*t).*a(1))','a','t');
a=nlinfit(t,p,ft,[1
1
1])
%a
=
1.0000
94.7727
1.0000
%但是给出警告,拟合结果不好,得参考帮助设置一下optimset
1
1]就是给a(1),a(2),a(3)
参数赋予初值
%程序运行不了是因为你定义的内联函数inline有错,注意t为数组运算符得用点
t=[1790:10:2000];
p=[3.9
5.3
7.2
9.6
12.9
17.1
23.2
31.4
38.6
50.2
62.9
76.0
92.0
106.5
123.2
131.7
150.7
179.3
204.0
226.5
251.4
281.4];
ft=inline('a(1).*a(2)./(a(1)+exp(-a(3).*t).*a(2)-exp(-a(3).*t).*a(1))','a','t');
a=nlinfit(t,p,ft,[1
1
1])
%a
=
1.0000
94.7727
1.0000
%但是给出警告,拟合结果不好,得参考帮助设置一下optimset
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询