matlab的phim,matlab-LSQCURVEFIT函数的使用问题

子函数:

function P12=ceshi(x,lam0)

syms z

syms phim

f1=1575.52e6;

f2=1227.60e6;

j=0;

i=0;

vtec0=0;

Btgd=8e-9;

c=3e9;

N=3;

for n=0:N

j1=n;

j=j+j1;

end

l=j+N+1;

for n=0:N

i1=n;

i=i+i1;

pn=diff((z.^2-1).^n,z,n)/(2^n* factorial(n));

for k=0:n

pnk=(1-z.^2).^(k/2).*diff(pn,z,k);

vtec0=@(z,lam0)(x(i+k+1)*cos(k*lam0)+x(l+i+k+1)*sin(k*lam0)).*pnk+vtec0;

end

end

phim=[5 6 7 8 9 8 7 6 5 5];

z=sin(phim);

vtec=subs(vtec0);

P12=(40.28*vtec/f1^2+x(2*l+1)*c+Btgd*c)*(f1^2-f2^2)/f2^2;

command:

clc;

clear all

lam0=[5 6 7 8 9 8 7 6 5 5];

P12=[11 11 12 13 11 12 11 12 14 10];

x0=ones(1,2*10+1);

for h=1:100

[x,Resnorm]=lsqcurvefit(@ceshi,x0,lam0,P12);

x0=x;

end

x

运行,显示:

错误使用 lsqcurvefit (line 243)

LSQCURVEFIT requires all values returned by user functions to be of data type double.

出错 ceshi2 (line 7)

[x,Resnorm]=lsqcurvefit(@ceshi,x0,lam0,P12);

我试过用matlabFunction将函数转化为数值函数,还是不行。。。请大神帮我看看问题出在哪,谢谢。。。(参数都是随便设的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值