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)
展开
 我来答
丛叶SW
2009-09-18 · TA获得超过798个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:0
展开全部
没有问题啊!
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
平仙牛布
2019-06-22 · TA获得超过3668个赞
知道大有可为答主
回答量:3140
采纳率:25%
帮助的人:156万
展开全部
%[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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式