高斯牛顿法----MATLAB实现

一次作业:参考于下面这个博客:https://blog.csdn.net/zhubaohua_bupt/article/details/74973347
感觉这个博客写的是真的不错。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

function Guassian
tic;
format short
a = 10*rand()*rand(1000,10);
b = 10*rand()*rand(1000,1);
x = 10*rand()*rand(10,1);
error_init = 1e-17;
k = 0;%迭代次数
error_data = 0;
while 1
    k = k + 1;
    f = a*x - b;
    x_new = x - inv(a'*a)*a'*f;
    error = ( (x_new - x)'*(x_new - x) )^(1/2);
    error_data = [error_data error];
    if(error < error_init)
        break;
    end
    x = x_new;
end
figure
hold on;box on;
plot(error_data,'-r*');
legend('拟合误差')
xlabel('时间s')
ylabel('误差')
disp(error);
disp(k);
toc;
end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值