LM演算法學習(一)

2021-10-08 06:18:21 字數 1210 閱讀 8272

%%%%%%%原始資料%%%%%%%%%

x_origin=[1,1.5,2.3,3.1,5.3,6.2,7];

y_origin=[3.03,2.36,1.58,1.06,0.35,0.23,0.15];

k_max=150;%最大迭代次數

e=[1,0;0,1];%單位矩陣

v=0.001;%阻尼係數

a_0=0.01;%初始迭代係數

b_0=0.01;

a_it=a_0;%為迭代係數賦值

b_it=b_0;

[m,n]=size(y_origin);%維度

j=zeros(n,2);%構造雅可比矩陣

for k=1:k_max

%%%%%%%%計算雅可比矩陣%%%%%%%%

for i=1:n

j(i,1)=exp(b_it*x_origin(i));

j(i,2)=a_it*x_origin(i)*exp(b_it*x_origin(i));

end%計算第一次計算結果

y_res=a_it*exp(b_it.*x_origin);

d=y_origin-y_res;%計算第一次迭代誤差

a=j'*j;%hessian矩陣

if(k==1)

e=dot(d,d);

endstep=inv(a+v*e)*(j'*d(:));%計算迭代步長;誤差函式f(x)=a*exp(b*x)-y

a_new=a_it+step(1);%新的迭代係數

b_new=b_it+step(2);

y_new=a_new*exp(b_new.*x_origin);%新的計算結果

d_new=y_origin-y_new;%新的迭代誤差

演算法學習(一)

分配問題2 貪心演算法 採用貪心策略,保證每次操作都是區域性最優,從而使得之後結果得到的結果是全域性最優的 也適用於全域性結果是區域性結果的簡單之和 解決 區間問題 分配問題。leetcode 455 分發餅乾 假設你是一位很棒的家長,想要給你的孩子們一些小餅乾。但是,每個孩子最多只能給一塊餅乾。對...

演算法學習(一)

說明 給定一組陣列,進行排序,得到最大值和最小值。1 input data 2 1 3 5 7 9 11 295 297 299 300 298 296 12 10 8 6 4 234 answer 5 300 1 利用插入排序演算法進行排序 1 array 27871,16173,31511,13...

演算法學習之路(一)

目錄 題目一題目二 給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums...