24小时热门版块排行榜    

查看: 3458  |  回复: 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 ]
回复此楼
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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 调剂 +8 调剂的考研学生 2026-03-09 8/400 2026-03-15 22:14 by Winj1e
[考研] 274求调剂 +4 时间点 2026-03-13 4/200 2026-03-15 15:29 by Rambo13
[考研] 材料专硕326求调剂 +4 墨煜姒莘 2026-03-15 4/200 2026-03-15 11:02 by dyw
[考研] 265求调剂 +4 威化饼07 2026-03-12 4/200 2026-03-14 17:23 by userper
[考研] 297求调剂 +4 学海漂泊 2026-03-13 4/200 2026-03-14 11:51 by 热情沙漠
[考研] 0703化学求调剂 +5 很老实人 2026-03-09 5/250 2026-03-14 02:57 by JourneyLucky
[考研] 337一志愿华南理工材料求调剂(有希望2吗?) +3 mysdl 2026-03-09 3/150 2026-03-14 02:53 by JourneyLucky
[考研] 求调剂 +3 清风问长安 2026-03-09 3/150 2026-03-14 02:15 by JourneyLucky
[考研] 306求调剂 +4 唐薏薏 2026-03-09 4/200 2026-03-14 01:19 by JourneyLucky
[考研] 材料工程,326分,求调剂 +6 KRSLSR 2026-03-10 6/300 2026-03-13 23:47 by JourneyLucky
[考研] 材料与化工(0856)304求B区调剂 +6 邱gl 2026-03-12 7/350 2026-03-13 23:24 by 邱gl
[考研] 341求调剂 +3 番茄头--- 2026-03-10 3/150 2026-03-13 23:07 by JourneyLucky
[考研] 085600调剂 +5 漾漾123sun 2026-03-12 5/250 2026-03-13 22:06 by 星空星月
[考研] [0860]321分求调剂,ab区皆可 +4 宝贵热 2026-03-13 4/200 2026-03-13 22:01 by 星空星月
[考研] 工科调剂 +4 Jiang191123! 2026-03-11 4/200 2026-03-13 15:15 by Miko19
[考研] 0703一志愿211 285分求调剂 +4 ly3471z 2026-03-13 4/200 2026-03-13 13:00 by JourneyLucky
[考研] 304求调剂(085602一志愿985) +12 化工人999 2026-03-09 12/600 2026-03-13 12:02 by JourneyLucky
[考研] 274求调剂0856材料化工 +12 z2839474511 2026-03-11 13/650 2026-03-13 10:39 by peike
[考研] 420求调剂 +4 莫向外求11 2026-03-10 6/300 2026-03-12 14:41 by ruiyingmiao
[考研] 一志愿:武汉理工,材料工程,英二数二 总分314 +3 2202020125 2026-03-10 4/200 2026-03-10 13:54 by xiongyaxuan
信息提示
请填处理意见