資源簡介
用MATLAB實現(xiàn) 的,高斯牛頓法和萊文伯格算法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
評論
共有 條評論