声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6782|回复: 3

[编程技巧] 运用MATLAB生成多参数非线性拟合函数的方法

[复制链接]
发表于 2006-7-28 16:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
问题的提出



x=[3 3 3 3 3 6 6 6 6 6 12 12 12 12 12 24 24 24 24 24];



y=[1.41 1.45 1.51 1.55 1.58 1.41 1.45 1.51 1.55 1.58 1.41 1.45 1.51 1.55 1.58 1.41 1.45 1.51 1.55 1.58];



z=[4.356 4.356 4.356 4.356 4.356 4.079 3.274 2.875 2.594 2.291 3.151 2.8 2.451 2.018 1.5 3.049 2.691 2.376 1.885 1.225];



求 z(i)=f(x(i),y(i))

  

一: 多项式拟和

采用最小二乘法拟和,事先设定多项式表达形式,用最小二乘法优化出系数



程序如下:



%定义函数,求系数



function [A]=xishu(x ,y)

A=[x^3  ,x^2*y, y^2*x, y^3, x^2 ,x*y ,  y^2 , x, y];



%主函数



x=[3 6 12 24 ];

y=[1.41 1.45 1.51 1.55 1.58];

k=1;

for i=1:4

    for j=1:5

        A(k,:)=xishu(x(i) ,y(j));

        k=k+1;

    end

end



Zo=[4.356 4.356 4.356 4.356 4.356 4.079 3.274 2.875 2.594 2.291 3.151 2.8 2.451 2.018 1.5 3.049 2.691 2.376 1.885 1.225  ]';



[C,fevl]=lsqlin(A,Zo)



%拟和函数的形式



表达式=C'*A;



二  非线性拟和

工程中常用的拟和函数表达式通常以e指数居多,lsqlin命令不适合了。



%定义一个合适的函数表达形式



function y=hanshu(b,A);

a0=b(1);

a1=b(2);

a2=b(3);

a3=b(4);  

a4=b(5);

lab=A(:,1);

cap=A(:,2);

xw=(1./(lab.^1.5)-a2*ones(20,1)).*(a3*cap+a4*ones(20,1));

y=a0*ones(20,1)+a1.*exp(xw);



%主函数求系数



x=[3 3 3 3 3 6 6 6 6 6 12 12 12 12 12 24 24 24 24 24];

y=[1.41 1.45 1.51 1.55 1.58 1.41 1.45 1.51 1.55 1.58 1.41 1.45 1.51 1.55 1.58 1.41 1.45 1.51 1.55 1.58];

z=[4.356 4.356 4.356 4.356 4.356 4.079 3.274 2.875 2.594 2.291 3.151 2.8 2.451 2.018 1.5 3.049 2.691 2.376 1.885 1.225];

A=[x' y'];

b0=[10 -5 1 .1 .1 ];

[b,r,j]=nlinfit(b,z','hanshu',b0);

y=hanshu(b,A)

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2008-9-19 11:07 | 显示全部楼层

很好的帖子

能把这个程序再详细说一下么?
lab=A(:,1);

cap=A(:,2);

xw=(1./(lab.^1.5)-a2*ones(20,1)).*(a3*cap+a4*ones(20,1));

y=a0*ones(20,1)+a1.*exp(xw);
这几个语句不是很懂什么意思啊,谢谢!!!
发表于 2008-9-19 13:49 | 显示全部楼层

回复 沙发 嘟嘟06 的帖子

建议看下基础书
发表于 2008-9-19 14:16 | 显示全部楼层

谢谢

上面的例子,运行的时候为什么老是提示没定义b呢??
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-1 10:04 , Processed in 0.059613 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表