matlab 定义常量编写程序总是出问题,总是报错.请高人看下格式哪里出问题了.要求是Z是一个可变的常数,可以随时更改.x=[1,2,3,4,5];y=[7,16,31,0,79];z=2;myfunc=inline('beta(2)+beta(1).*x.*z','beta','z','x');beta=nl

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 18:45:22

matlab 定义常量编写程序总是出问题,总是报错.请高人看下格式哪里出问题了.要求是Z是一个可变的常数,可以随时更改.x=[1,2,3,4,5];y=[7,16,31,0,79];z=2;myfunc=inline('beta(2)+beta(1).*x.*z','beta','z','x');beta=nl
matlab 定义常量
编写程序总是出问题,总是报错.请高人看下格式哪里出问题了.要求是Z是一个可变的常数,可以随时更改.
x=[1,2,3,4,5];
y=[7,16,31,0,79];
z=2;
myfunc=inline('beta(2)+beta(1).*x.*z','beta','z','x');
beta=nlinfit(x,y,myfunc,[10,0.1]);
a=beta(1),b=beta(2);
Caused by:
Error using inline/subsref (line 13)
Not enough inputs to inline function.

matlab 定义常量编写程序总是出问题,总是报错.请高人看下格式哪里出问题了.要求是Z是一个可变的常数,可以随时更改.x=[1,2,3,4,5];y=[7,16,31,0,79];z=2;myfunc=inline('beta(2)+beta(1).*x.*z','beta','z','x');beta=nl
用nlinfit(x,y,@fun,beta) 只能让函数有两个输入fun(beta,x)
其中beta是参数,x是自变量
如果fun有多于两个的变量,第三个变量就不能通过调用nlinfit传递给fun
结果报错你的inline function输入参数数量不足.
而z也不能作为beta(3)传进去,因为拟合过程会改变他的值,最纵不能起到固定常数的作用
不过我们还是有办法的,把需要的额外不参与拟合的参数通过x传给fun
因为nlinfit不理x和y具体有多少个值,只要把x传递给fun,能够得到长度和y相同的数列就可以
所以,你要实现的功能可以通过以下程序实现
x=[1,2,3,4,5];
y=[7,16,31,0,79];
z=2;
x=[x z];
myfunc=inline('beta(2)+beta(1).*x(1:end-1).*x(end)','beta','x');
beta=nlinfit(x,y,myfunc,[10,0.1]);
a=beta(1);b=beta(2);
将z塞到x屁股后面,从x传递给myfunc,x变为[1,2,3,4,5,2];
但是要注意在函数内部x的最后一个元素作为z,前面的5个元素参与运算
那样myfunc的计算结果仍然是和y序列等长的5个数
顺便讲句,其实可以通过这样的办法实验二维曲面的拟合
设现有三组等长列向量对应二维曲面的x,y,z坐标
x=[x1 x2 .xn]';
y=[y1 y2 .yn]';
z=[z1 z2 .zn]';
要拟合为曲线方程z=f(beta,x,y),其中beta是参数,x,y是两个输入
以二维旋转对称高斯曲面为例子z=A*exp((x^2+y^2)/B^2)+C
可以这样操作
X=[x y];
Y=z;
f=inline('beta(1)+exp((X(:,1).^2+X(:,2).^2)./beta(2)^2)+beta(3)','beta','X');
beta=nlinfit(X,Y,f,beta0); %参数的初始值beta0
A=beta(1);B=beta(2);C=beta(3);

matlab 定义常量编写程序总是出问题,总是报错.请高人看下格式哪里出问题了.要求是Z是一个可变的常数,可以随时更改.x=[1,2,3,4,5];y=[7,16,31,0,79];z=2;myfunc=inline('beta(2)+beta(1).*x.*z','beta','z','x');beta=nl 请编写程序求圆形的面积并把3.1415926的值定义为符号常量pi 如何在matlab中定义一个常量? 编写MATLAB程序实现多项式拟合 在Matlab里编写程序绘制下图: vc++ 1.编写程序计算半径为2.5的圆的面积和周长,要求将圆周率定义为符号常量.1.编写程序计算半径为2.5的圆的面积和周长,要求将圆周率定义为符号常量.2.编写程序计算小写字母z到大写字母A 关于群智能优化算法程序的问题请问例如PSO GA等算法 用MATLAB编写程序 为什么总是定义个体的位置为例如POS(i,:)这样的形式 为什么要定义成2维的 一维的为什么不行如果POS(i,:)表示的是横纵 用matlab编写程序,求解1/(x+5)的定积分,方法根据定积分的原始定义 matlab中符号常量用sym函数如何定义 matlab中编写程序 f(x)=0.5x,x 用matlab画cosx/cos2x的图像怎么编写程序! 用matlab画cosx/cos2x的图像怎么编写程序 matlab编写非线性方程组求根的二分法程序 matlab用M脚本文件 编写根号n的程序 用matlab编写一个程序:求出200以内的质数, 求用MATLAB编写的层次分析法程序 利用matlab编写非线性方程组求根的二分法程序 用MATLAB编写矩阵A的LU分解程序.要求必须用数学软件MATLAB编写程序.