关于Matlabn=input('\n请输入分点数n:n=');x=-1:2/(n-1):1;fx=1./(1.+25.*x.^2);plot(x,fx,'ko');holdon;y=polyfit(x,fx,n-1);cs=csapi(x,fx);x=-1:0.01:1;yy=polyval(y,x);fx='1/(1+25*x^2)';fnplt(cs,'m-');holdon;fplot(fx,[-1,1],'b-');plot(x
第一个在我机器上完美运行,可能是你的输入值有误,你输入一个大于1的整数试试。
第二个是一个函数式M文件,运行的时候需要输入参数,比如把这一段代码放到了M文件里,起一个名字,比如:叫做myfun.m ,随后,你要用的时候就可以按照函数开头写的那个格式调用这个函数了(和调用系统规定好的函数一样方便):即按照以下格式写:
coefs=cubicspline(x0,y0)
或cubicspline(x0,y0)的格式。
如果还不理解,我用下面一个例子来给你大致讲解一下函数式M文件:
定义一个函数,使该函数能够算出z=x.*y+x./y的值:
function z=myfun(x,y) %这一句是函数头,标示着函数的输入输出参数形式
z=x.*y+x./y; %可用一行或多行语句写出如何由输入参数算出输出参数
以后你想用算出当x=2,y=3时,x.*y+x./y的值时,就可以成下面的形式:
myfun(2,3)
这样,matlab就会按照函数中规定好的算法给你返回一个z的值了。
也可以这样用:mydata=myfun(2,3);这样,相当于把函数返回的值(z),赋值给了mydata
很可惜matlab应用的方向太多,而我对这方面的应用不熟悉。。
这两个程序应该都没错。
第一个是你没有输入正确的值。
第二个是你调用函数时调用错误,你大致看一下,x0,y0分别是什么意思,是用的前面哪里的数,比如它的x0,y0是你以前已经算出的一个x,y或已知的x,y(假定你把这个M文件命名为myfun.m),你在窗口中调用它时不要输入myfun或myfun().要输入z=myfun(x,y)或myfun(x,y) ————这里的x,y就是指这函数所需要的运算的数,比如我上面举例中的x,y一样。
已知递增数列{an}满足:a1=1,2a(n+1)=an+a(n+2)(n∈N*),且a1,a2, 2020-05-13 …
设函数f(x)=(1+1/n)的n次方(n∈正整数,n大于1,x∈r)1,对于任意x,证明(f(2 2020-05-14 …
2^2-1^2=2*1+13^2-2^2=2*2+14^2-3^2=2*3+1……(n+1)^2- 2020-05-19 …
求证:(1)A(n+1,n+1)-A(n,n)=n^2A(n-1,n-1);(2)C(m,n+1) 2020-06-03 …
已知a1=1,an=n(a(n+1)-an),则数列{an}的通项公式an为————(1,n,n+ 2020-06-06 …
matlab图像处理,提取图片的高频分量!我是这样写的:function gOK=laplace( 2020-06-27 …
已知数列{an}满足a1=1,nan+1=2(n+1)an(n∈N.)(1)求数列{an}的通项公 2020-08-03 …
对于不等式<n+1(n∈N*),某同学用数学归纳法的证明过程如下:(1)当n=1时,<1+1,不等 2020-08-03 …
数列极限lim{((1³+2³+...n³)/n³)-4/n},n趋于无穷的极限?(1³+2³+.. 2020-11-01 …
数列{an}的通项公式可以确定,(1)在数列{An}中,有An+1=An+n成立,(2)数列{An} 2021-02-09 …