24小时热门版块排行榜    

CyRhmU.jpeg
查看: 989  |  回复: 3

tg725925

新虫 (初入文坛)

[交流] 【求助】急!利用matlab求参数k值

请高手帮忙根据下面(1)、(2)两组数据,运用matlab编程求解两个k值.非常感谢!!!
方程:y=y0+(ylimt-y0)/(2*c0)*(x+1/k+c0-((x+c0+1/k)^2-4*c0*x)^0.5)

其中
(1) y0=1.72427;   ylimt=0.93066;   c0=0.00002

xdata=[0.00005 0.00015 0.0002 0.00025 0.0003 0.00035 0.00045 0.00055 0.0006 0.00075 0.00085 0.00095 0.001 0.00115 0.00125 0.00145]

ydata=[1.77235 1.58145 1.37302 1.23911 1.18416 1.13857 1.10483 1.04227 1.02577 0.98729 0.97012 0.96478 0.96057 0.9512 0.94087 0.93066]

(2) y0=1.17094;   ylimt=0.30983;   c0=0.000015

xdata=[0.00005 0.00015 0.0002 0.00025 0.0003 0.00035 0.00045 0.00055 0.0006 0.00075 0.00085 0.00095 0.001 0.00115 0.00125 0.00145 0.00155]

ydata=[1.1414 1.08394 1.02934 1.00169 0.98691 0.92352 0.91823 0.90804 0.83408 0.80894 0.75992 0.71518 0.64931 0.64825 0.56648 0.34087 0.30983]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★ ★
robert2020(金币+3):辛苦了!金币不可以解决一切,金钱也不可能解决一切! 2010-11-08 22:54:25
tg725925(金币+100):谢谢 2010-11-09 04:08:29
function simple
clear all
clc
format long
global y0 ylimt c0

% y0=1.72427;   ylimt=0.93066;   c0=0.00002;
% xdata=[0.00005 0.00015 0.0002 0.00025 0.0003 0.00035 0.00045 0.00055 0.0006 0.00075 0.00085 0.00095 0.001 0.00115 0.00125 0.00145];
% ydata=[1.77235 1.58145 1.37302 1.23911 1.18416 1.13857 1.10483 1.04227 1.02577 0.98729 0.97012 0.96478 0.96057 0.9512 0.94087 0.93066];

y0=1.17094;   ylimt=0.30983;   c0=0.000015;
xdata=[0.00005 0.00015 0.0002 0.00025 0.0003 0.00035 0.00045 0.00055 0.0006 0.00075 0.00085 0.00095 0.001 0.00115 0.00125 0.00145 0.00155];
ydata=[1.1414 1.08394 1.02934 1.00169 0.98691 0.92352 0.91823 0.90804 0.83408 0.80894 0.75992 0.71518 0.64931 0.64825 0.56648 0.34087 0.30983] ;

options=optimset('TolFun',1e-10,'display','off');
[k,RESNORM,RESIDUAL,EXITFLAG] = lsqnonlin(@Objfun,6000,[],[],options,xdata,ydata);
ydatacal = ModelFun(xdata,k);
% 实验值与模拟值绘图
figure
plot(ydata,ydatacal,'k.')
hold on
hline = refline([1,0]);     % 对角线
set(hline,'Color','b')
hlineL = refline([0.9,0]);
set(hlineL,'Color','r','line','--');    % -10%线
hlineU = refline([1.1,0]);
set(hlineU,'Color','r','line','--');    % +10%线
grid on
fprintf('\n\tbeta = %.4f\t\n',k)
fprintf('\n\t残差平方和SSE = %d\n',RESNORM)
fprintf('\n\tEXITFLAG = %d\n',EXITFLAG)
fprintf('\n\t最大相对误差 = %.1f\n',max(abs(RESIDUAL./ydata*100)))
fprintf('\n\t平均相对误差 = %.1f\n',mean(abs(RESIDUAL./ydata*100)))
figure
x=0:0.00001:0.0015;
y=ModelFun(x,k);
plot(xdata,ydata,'ro',x,y,'-')
function f=Objfun(k,xdata,ydata)
y = ModelFun(xdata,k);
f=ydata-y;
function y = ModelFun(x,k)
global y0 ylimt c0
y=y0+(ylimt-y0)./(2*c0).*(x+1/k+c0-((x+c0+1/k).^2-4*c0*x).^0.5);

[ Last edited by change0618 on 2010-11-8 at 07:01 ]
2楼2010-11-08 06:53:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★ ★
robert2020(金币+3):辛苦了! 2010-11-08 22:52:39
tg725925(金币+100):谢谢 2010-11-09 04:10:53
function MTCsimpl
clear;        clc
format long
global y0 ylimt c0

y0=1.72427;   ylimt=0.93066;   c0=0.00002;
xdata=[0.00005 0.00015 0.0002 0.00025 0.0003 0.00035 0.00045 0.00055 0.0006 0.00075 0.00085 0.00095 0.001 0.00115 0.00125 0.00145];
ydata=[1.77235 1.58145 1.37302 1.23911 1.18416 1.13857 1.10483 1.04227 1.02577 0.98729 0.97012 0.96478 0.96057 0.9512 0.94087 0.93066];
%
% y0=1.17094;   ylimt=0.30983;   c0=0.000015;
% xdata=[0.00005 0.00015 0.0002 0.00025 0.0003 0.00035 0.00045 0.00055 0.0006 0.00075 0.00085 0.00095 0.001 0.00115 0.00125 0.00145 0.00155];
% ydata=[1.1414 1.08394 1.02934 1.00169 0.98691 0.92352 0.91823 0.90804 0.83408 0.80894 0.75992 0.71518 0.64931 0.64825 0.56648 0.34087 0.30983] ;

options=optimset('TolFun',1e-10,'display','off');
k1= nlinfit(xdata,ydata,@model,200,options);
x=0:0.00001:0.0015;
C=model(k1,x);
figure
plot(xdata,ydata,'ro',x,C,'b')
grid on;
fprintf('\n\tk = %.4f\n',k1)

function y=model(k,x)
global y0 ylimt c0
y=y0+(ylimt-y0)./(2*c0).*(x+1/k+c0-((x+c0+1/k).^2-4*c0*x).^0.5);
3楼2010-11-08 07:17:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tg725925

新虫 (初入文坛)

robert2020:建议虫友自己计算,不能全部依靠别人! 2010-11-08 22:53:12
引用回帖:
Originally posted by change0618 at 2010-11-08 07:17:24:
function MTCsimpl
clear;        clc
format long
global y0 ylimt c0

y0=1.72427;   ylimt=0.93066;   c0=0.00002;
xdata=[0.00005 0.00015 0.0002 0.00025 0.0003 0.00035 0.00045 0.00055 0.0006 0.00075 0. ...

楼主真是好人。
请您把这两个k的具体数值再告诉我一下好吗?谢谢!
4楼2010-11-08 10:44:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tg725925 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见