24小时热门版块排行榜    

查看: 3079  |  回复: 21
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

maguohua

新虫 (小有名气)

[求助] 求助用matlab 多元非线性拟合2 已有4人参与

2个问题
第一个问题,  2个自变量X, Y,  一个因变量Z   数据如下,希望用matlab  拟合一个X, Y, Z三维的图,并给出由数据 ,拟合出的方程
                        最好把编写的程序也发上来,我以后可以 照瓢画葫芦  模仿着做。

  X           Y                 Z
200     50               1.044
500           250       1.12
1000   500        1.25

第二个问题,  3个自变量 a , b, c    一个因变量 f(a,b,c) 不知道,  这种情况不知道是 几维的图了??  
希望能 给出由数据 拟合出的方程,请给出 编程的具体步骤

f(a,b,c)        a                b                c
1.04                200                200                200
1.23                500                500                500
1.6                1000        1000        1000
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

超人不怕

银虫 (小有名气)

引用回帖:
3楼: Originally posted by 月只蓝 at 2013-12-14 17:16:50
问题一

function threeD_
clear all;clc
data=;
x=data(:,1);y=data(:,2);z=data(:,3);
=griddata(x,y,z,linspace(min(x),max(x),50)',linspace(min(y),max(y),50),'v4');%插值
figure,surf(X,Y,Z);shad ...

超级菜鸟求助,能不能帮我把这道题转化为lsqcurvefit来解?急!
function KineticsEst1_Diff  
clear all
clc

% 动力学数据
t = [0  20  40  60  120  180  300];
CAm = [10  8  6  5  3  2  1];

% 用最小二乘样条拟合法计算微分dCA/dt--使用不经过实验点的B样条插值函数
knots = 3;
K = 3;                  % 三次B样条
sp = spap2(knots,K,t,CAm);
pp = fnder(sp);         % 计算B样条函数的导函数
dCAdt = fnval(pp,t)    % 计算t处的导函数值
rAm = dCAdt;

% 绘制浓度拟合曲线
ti = linspace(t(1),t(end),200);
CAi = fnval(sp,ti);
plot(t,CAm,'ro',ti,CAi,'b-')
xlabel('t')
ylabel('C_A')
legend('实验值','B样条拟合')

% 非线性拟合
beta0 = [0.0053 1.39];
[beta,resnorm,residual,exitflag,output,lambda,jacobian] = ...
     lsqnonlin(@OptObjFunc,beta0,[],[],[],rAm,CAm);         
ci = nlparci(beta,residual,jacobian);

% 参数辨识结果
fprintf('Estimated Parameters:\n')
fprintf('\tk = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1))
fprintf('\tn = %.2f ± %.2f\n',beta(2),ci(2,2)-beta(2))
fprintf('  The sum of the squares is: %.1e\n\n',sum(residual.^2))

% 绘制反应速率拟合曲线
figure
plot(t,rAm,'ro',t,Rate(CAm,beta),'b*')
xlabel('t')
ylabel('dC_Adt')
legend('Experiment','Kinetic Model')

% ------------------------------------------------------------------
function f = OptObjFunc(beta,rAm,CAm)
rAc = Rate(CAm,beta);
f = rAc - rAm;

% ------------------------------------------------------------------
function rA = Rate(CA,beta)
rA = -beta(1)*CA.^beta(2);   % -rA = -dCA/dt = k*CA^n, 其中k=beta(1), n=beta(2)
大菜鸟
13楼2013-12-15 16:42:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 22 个回答

fish.yfyh

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
拟合可以有多种形式,比如多项式拟合。
当然,也可以你自己提供一种函数形式,然后拟合出其中的参数。
你只给数据,没有给出函数形式,那么用多项式拟合可能结果很差。

BTW:其实,可以用神经网络的方法来进行学习,然后可以预测新的数据点。
2楼2013-12-14 15:58:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
maguohua: 金币+20, ★★★很有帮助, 3ks 只回答了一部分 2013-12-15 08:45:30
maguohua: 金币+20, ★★★很有帮助, 3ks 2013-12-15 14:32:25
问题一
CODE:
function threeD_
clear all;clc
data=[200     50               1.044
500           250       1.12
1000   500        1.25];
x=data(:,1);y=data(:,2);z=data(:,3);
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x),50)',linspace(min(y),max(y),50),'v4');%插值
figure,surf(X,Y,Z);shading interp,colorbar %三维曲面

求助用matlab 多元非线性拟合2
1.jpg

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2013-12-14 17:16:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maguohua

新虫 (小有名气)

引用回帖:
3楼: Originally posted by 月只蓝 at 2013-12-14 17:16:50
问题一

function threeD_
clear all;clc
data=;
x=data(:,1);y=data(:,2);z=data(:,3);
=griddata(x,y,z,linspace(min(x),max(x),50)',linspace(min(y),max(y),50),'v4');%插值
figure,surf(X,Y,Z);shad ...

请问 有这些数据能得出一个多项式的方程吗? 请给出方程
4楼2013-12-15 08:45:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见