Can anyone help me with this matlab code?
古いコメントを表示
Hello out there! I have a problem with following code. I have tre equations, which I have to find solutions to with help from newtons method in matlab. It's keep telling me, that I have a undefined variable.
function x = NEWT(x0,k)
x=x0;
for i=1:k
b=F(x);
s=DF(x)\b;
x=x-s;
end
end
function y = F(x)
y=zeros(3,1); % 0-punkter i 3x1 matrix - it is a vector
y(1)=2*x(1)^2-4*x(1)+x(2)^2+3*x(3)^2+6*x(3)+2;
y(2)=x(1)^2+x(2)^2-2*x(2)+2*x(3)^2-5;
y(3)=3*x(1)^2-12*x(1)+x(2)^2+3*x(3)^2+8;
end
function dy = DF(x)
dy=zeros(3,3);
dy(1,1)=4*x(1)-4;
dy(1,2)=2*x(2);
dy(1,3)=6*x(3)+6;
dy(2,1)=2*x(1);
dy(2,2)=2*x(2)-2;
dy(2,3)=4*x(3);
dy(3,1)=6*x(1)-12;
dy(3,2)=2*x(2);
dy(3,3)=6*x(3);
end
8 件のコメント
Image Analyst
2012 年 12 月 2 日
How are you calling it? What values for x0 and k are you passing in?
Walter Roberson
2012 年 12 月 2 日
Which variable is being reported as undefined, and at which line?
Angelina
2012 年 12 月 2 日
編集済み: Image Analyst
2012 年 12 月 2 日
Image Analyst
2012 年 12 月 2 日
You can't do that. When it requires arguments you must first save your function then call it from the command line or another script or function and supply those arguments. You can't simply press the green run triangle button.
Angelina
2012 年 12 月 2 日
Image Analyst
2012 年 12 月 2 日
Edit and save your function by clicking on the disk icon. Then click in the command window panel. Type this (without the >> of course because that's just the MATLAB prompt):
>> NEWT(2, 3)
You can use different numbers than 2 and 3 - use whatever you think you should, I just used those as an example. It should report some errors. You fix those errors and repeat the above process until it runs to your satisfaction.
Angelina
2012 年 12 月 2 日
Image Analyst
2012 年 12 月 2 日
Of course. If you don't then there are still errors -- either errors in your logic and algorithm, or errors in the syntax.
回答 (1 件)
Image Analyst
2012 年 12 月 2 日
0 投票
If you say NEWT(2,3) then x = 2, but in F(x) you say y(1)=2*x(1)^2-4*x(1)+x(2)^2+3*x(3)^2+6*x(3)+2 so then x must be an array, not a single number. What are your plans regarding that?
カテゴリ
ヘルプ センター および File Exchange で Images についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!