我有一个家庭作业,应该使用恒定步长的“最速下降”方法找到函数的最小值。 Matlab告诉我一个错误
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
msg = tk.Text( root, width=60, height=5 )
pbar = ttk.Progressbar( msg, length=419, mode='indeterminate',
orient=tk.HORIZONTAL,
)
msg.window_create( tk.INSERT, window=pbar )
msg.grid( row=0, column=0, padx=10, pady=10 )
但是我不明白为什么矩阵尺寸有问题。
我在另一台计算机上尝试过,并且此功能和脚本都可以正常工作。
这是功能:
Error using -
Matrix dimensions must agree.
Error in stepfix (line 11)
x=x-s*grad(x1(k),x2(k))/norm(grad(x1(k),x2(k)));
这就是我调用该函数的方式:
function [ out ] = stepfix( fct,grad,x,epsilon )
k=1;
x1(k)=x(1,1);
x2(k)=x(2,1);
s=0.5;
for k=1:50
x=x-s*grad(x1(k),x2(k))/norm(grad(x1(k),x2(k)));
x1(k)=x(1,1);
x2(k)=x(2,1);
end
out=[x1(1:end),x2(1:end)];
plot(x1(k),x2(k),'m');
end