matlab 限定参数范围,MATLAB如何在限定参数范围时进行线性拟合

本文探讨了在MATLAB中如何在限定参数范围时进行线性拟合,作者分享了一段用于解决该问题的代码,但指出计算速度过慢。代码涉及到一个多元超定方程组的求解,并包含一个使用固定步长dz的三重循环来寻找最小二乘解。作者希望寻求优化这段代码的方法。
摘要由CSDN通过智能技术生成

本人小白,想请教如何在限定参数范围的情况下进行线性拟合。

在MATLAB中,通常解一个多元超定方程组,如

A=[1,2,3;

2,3,4;

3,4,5;

4,5,6;

5,6,7];

b=[40,50,60,70,80]';

若要求Z=[z1;z2;z3];

只需Z=A\b就可以了。

但如果额外需满足约束条件,比如0.54

为了实现上述目的,本人编了一个小程序,但计算速度太慢,以至于上述测试文件(共五行四列)需要2个半小时才能计算完成,能否优化呢?

程序如下:

function yy=mindz(dz)

z1=[0.54;1.09];

z2=[0;0.90];

z3=[0.54;1.09];

num_z3=fix((z3(2,1)-z3(1,1))/dz+1);

num_z2=fix((z2(2,1)-z2(1,1))/dz+1);

num_z1=fix((z1(2,1)-z1(1,1))/dz+1);

mm_total=num_z2*(num_z1*2+1-num_z3)*num_z3/2;

hwait=waitbar(0,'请等待>>>>>>>>');

yy=zeros(1,4);

load data.txt -ASCII     %%该文件即为五行四列文件,包含了A项和b项

mm=1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值