• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-03
  • 语言: Matlab
  • 标签: 高斯牛顿  LM met  

资源简介

用MATLAB实现 的,高斯牛顿法和莱文伯格算法matlab源码,自己写的,完全可以用

资源截图

代码片段和文件信息

close all;
clc;
lamda = 0.01;
lamda
vv = 2;
updateJ=1;
errorsum1=[];
a=0.5; b=2;
x1=1:5;
x2=1:5;             %x1x2在1-5中随机取25个点
x=[x1;x2];         % 变量矩阵

[X1 X2]=meshgrid(x1x2);
y=1./(X1+a)+X2.^2./(b+X2.^2);
randn(0);
random=randn(size(y)).*sqrt(0.1);
Y=y+random;
S1=reshape(X1251);
S2=reshape(X2251);
S3=reshape(Y251);
%figure(1);
%plot3(X1X2y);
%hold on
% figure(2);
% plot3(X1X2y);
%scatter3(S1S2S3‘r‘);
%hold on;
X1=X1‘;
X2=X2‘;
Y=Y‘;
syms a b;                  %MATLAB不支持符号变量编译为exe,所以只要用到符号变量的就只能在MATLAB运行罢了
B=[a b];                    %但是求导是只能用符号变量的,所以无法编译为独立运行的exe
B1=[20 20];              %步骤1给ab赋予初值
f = 1./(X1+B(1))+X2.^2./(B(2)+X2.^2);
r=Y-f;
error=r‘*r;
error1=subs(errorBB1);
errorsum=sum(error1(:).^2);
errorsum1=[errorsum1 error

评论

共有 条评论

相关资源