Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-08-18, 19:27   #1
conghualulu
初级会员
 
注册日期: 2009-08-04
帖子: 1
声望力: 0
conghualulu 正向着好的方向发展
默认 如何定义这样一个函数?

各位大虾:
初学matlab,遇到一些问题,绞尽脑汁无法解决。
问题是这样的:
我要定义这样一个函数
C=exp(-De*q(1)*t)/q(1)^2+exp(-De*q(2)*t)/q(2)^2+exp(-De*q(3)*t)/q(3)^2......+exp(-De*q(50)*t)/q(50)^2
De是参数,t是变量,q的取值来自方程tan(q)=3q/(3+2q^2)的非零正解。
我最终的目的是要利用函数lsqcurvefit估计参数De,所以要先定义方程。

我的编程如下:
clear all
clc

t = [0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 7 10 15 20]';
Cexp=[200 194.1 190.4 182.2 180.2 183.1 179.5 175.9 180.1 175.0 181.4 178.1 174.8 172.8 171.8]';
k0 = 0.00001;

k = lsqcurvefit(@ObjFunc, k0, t, Cexp)

% ------------------------------------------------------------------
function C = ObjFunc(De,t)
i=0;
for xi=0.00001i:10*pi+0.00001;
i=i+1;
q(i)=fzero(@func,xi);
end
p=q';
C=sum(exp(-De*p.^2.*t/0.113^2)/p.^2);
function f = func(x)
f =tan(x)- 3*x/(3+2*x^2);

一运行就出现错误,关键是这个方程如何定义,哪位大侠指点迷津啊,谢谢啦
conghualulu 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:12


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.