24小时热门版块排行榜    

查看: 3852  |  回复: 10
本帖产生 1 个 程序强帖 ,点击这里进行查看

yangger

新虫 (初入文坛)

[求助] 急切求助用matlab曲线拟合色散方程

现在有如下色散方程:

y^2 =  A + B/(x^2-C) - D x^2   ----------------Eq. 1

其中A,B, C, D为待定系数,现在有(x,y)的一组实验值; 如何得到最佳的A、B、C、D


我的思路如下:

step1 通过四对(x_i,y_i) 得到 A,B,C,D 值,
step2 代入Eq.1 输入x实验值,得到y拟合值,
step3 判断y拟合值和y实验值差值,
step4 如果差值大于10^-4则调节A,B,C,D;
step5 用新的ABCD,返回到step2

现在遇到的问题是 1.不收敛
                 2. 调节过的A,B,C,D有时候使得Eq.1方程右边小于零

求助:要是用matlab如何处理,

[ Last edited by yangger on 2011-6-3 at 12:53 ]
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

fd
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

dubo

金虫 (著名写手)

优秀版主

【答案】应助回帖

★ ★
余泽成(金币+2, 程序强帖+1): 谢谢参与应助! 2011-06-04 19:30:05
yangger(金币+3): 非常感谢~~@ 2011-06-17 19:02:33
或者你仿照这个代码改改
function y = fitme_diheral( c,phi )
% A1=c(1);
% k1=c(2);
% x1=c(3);
% kBT=443*8.3145/1000;
aa=c(1);
bb=c(2);
cc=c(3);
dd=c(4);
ee=c(5);
ff=c(6);
psi=(phi-pi);
% y=0.5*(f1*(1+cosx)+f2*(1-cos(2*x))+f3*(1+cos(3*x))+f4*(1-cos(4*x)));
y=aa-bb.*cos(psi)+cc.*(cos(psi)).^2-dd.*(cos(psi)).^3+ee.*(cos(psi)).^4-ff.*(cos(psi)).^5;
end



clear;
clc;
load diherals.txt;
data=diherals;
%%avge the theta<0 and theta>0
a=data(1:180,2);
b=data(361:-1:182,2);
avg=0.5*(a+b);
data(1:180,2)=avg;
data(361:-1:182,2)=avg;

p=[24.5156799887984,-1.90007004205358,-1.66217137679272,3.06265999012061,2.33333792446086,-2.48454162655902;];
% data(:,2)=acf(data(:,2));
data3=data;
data3(:,1)=data3(:,1)*pi/180;

for i=1:50
%     [p,res]=lsqcurvefit('dihe',p,data3(:,1),data3(:,2));
    [p,res]=lsqcurvefit('fitme_diheral',p,data3(:,1),data3(:,2));
    %注意修改函数名dihe
    plot(data3(:,1),data3(:,2),'ro');
    hold on
    plot(data3(:,1),fitme_diheral(p,data3(:,1)));
     %注意修改函数名dihe(p,data3(:,1)
end
5楼2011-06-04 14:39:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

smithjohn

金虫 (正式写手)

【答案】应助回帖


dubo(金币+1): 谢谢参与 2011-06-04 14:34:19
加上几十上百组数不就over了?
为什么要一个一个的加啊,就算验证的话也不用这样吧?
2楼2011-06-03 23:28:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

杨小胖

金虫 (正式写手)


dubo(金币+1): 谢谢参与 2011-06-04 14:34:31
你说的这step1到step4其实在matlab中直接用polyfit和polyval这个函数不就可以实现了吗?
而且step4其实就是误差棒。
你再找找help里面的例子吧。我现在电脑上没有相关的代码。
回头贴出来。
人生中最辉煌的不是功成名就的时候,而是在失败和挫折中看到希望并为之奋斗的日子
3楼2011-06-04 13:36:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dubo

金虫 (著名写手)

优秀版主

【答案】应助回帖


余泽成(金币+1): 谢谢参与应助! 2011-06-04 19:29:51
楼上我的很对,MATLAB直接就可以拟合的
要么你把数据贴上来,我给你拟合一下
4楼2011-06-04 14:39:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yangger

新虫 (初入文坛)

引用回帖:
Originally posted by smithjohn at 2011-06-03 23:28:10:
加上几十上百组数不就over了?
为什么要一个一个的加啊,就算验证的话也不用这样吧?

普通编程思路, 对matlab不是很熟的后果。。。。。。。。。。。。。
fd
6楼2011-06-17 19:15:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yangger

新虫 (初入文坛)

引用回帖:
Originally posted by dubo at 2011-06-04 14:39:52:
或者你仿照这个代码改改
function y = fitme_diheral( c,phi )
% A1=c(1);
% k1=c(2);
% x1=c(3);
% kBT=443*8.3145/1000;
aa=c(1);
bb=c(2);
cc=c(3);
dd=c(4);
ee=c(5);
ff=c(6);
psi=(phi-pi);
% ...

非常感谢,我试试
fd
7楼2011-06-17 19:16:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
送鲜花一朵
支持
8楼2011-06-21 10:10:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rns521

金虫 (正式写手)

都是大牛啊

[ 发自手机版 http://muchong.com/3g ]
9楼2011-06-21 11:32:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liang201101

铜虫 (小有名气)

引用回帖:
5楼: Originally posted by dubo at 2011-06-04 14:39:52
或者你仿照这个代码改改
function y = fitme_diheral( c,phi )
% A1=c(1);
% k1=c(2);
% x1=c(3);
% kBT=443*8.3145/1000;
aa=c(1);
bb=c(2);
cc=c(3);
dd=c(4);
ee=c(5);
ff=c(6);
psi=(phi-pi);
% y ...

你好,我有个相似的问题,希望大侠帮帮忙,非常感谢,一共有8组数据,abcd是自变量,F是因变量,需要利用这些数据用matlab编程拟合成一条曲线,得出一个含有abcd变量的F=f(abcd)函数,由于初学不知道该怎么入手,希望能有源代码程序,这样我比较好理解一点,非常感谢!拜托大侠!
           F              a                 b              c              d
          4              30               98           330            16   
          4              50               80           300            14
          6              70               85           300            14
          9              90               82           300            14
          9             130              61.9         300            14
          12            150              75           300            14
          16            182              90           300            14
          20            200             115           330            16
希望能做出自己的东西,加油!
10楼2013-05-23 21:44:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yangger 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +11 家与远方 2026-08-10 16/800 2026-08-16 10:28 by ray43
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +12 Tide man 2026-08-10 13/650 2026-08-15 16:34 by 氺木
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[硕博家园] 请教兼职经验 +3 是阿文鸭 2026-08-09 3/150 2026-08-14 12:07 by HER12025
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见