Soru sorfminsearch ile çok değişkenli denklemin minimum değerlerini bulmak
imrbay tarafından 7 yıl önce soruldu

bu fonksiyonun fminsearch () bulmak istiyorum in matlab
f(x,y,z)=(x-10)^2+(y-4)^2+(z-0.9)^2+3*(1-x*y*z)^2 (x0,y0,z0)=(5,5,5)

function b=three_var(v)
x=v(1);
y=v(2);
z=v(3);
b=(x-10)^2+(y-4)^2+(z-0.9)^2+3*(1-x*y*z)^2
v=[5,5,5];
a=fminsearch(@three_var,v)

bu şekilde yazdım fakat Undefined function or variable 'v'.hatası veriyor nasıl düzeltebilirim

3 Cevap
sayginer Yönetici tarafından 7 yıl önce cevaplandı

v vektörünü betiğinizin başında tanımlamanız gerekiyor. Aşağıdaki düzenlenmiş haline göz atabilirsiniz.

DİPÇE: Lütfen sorularınızı yazarken sorunuzun Türkçe ve anlaşılabilir yazılmış olmasına dikkat edin.

function b=three_var(v)
v=[5 5 5];
x=v(1,1);
y=v(1,2);
z=v(1,3);
b=(x-10)^2+(y-4)^2+(z-0.9)^2+3*(1-x*y*z)^2
imrbay tarafından 7 yıl önce cevaplandı

çok teşekkür ederim cevabınız için ama kodu çalıştırdığımda bu seferde Maximum recursion limit of 500
reached. Use set(0,'RecursionLimit',N) to change the limit hatası veriyor bunu nasıl düzeltebilirim

sayginer Yönetici tarafından 7 yıl önce cevaplandı

Yukarıdaki kodu paylaşırken bir karışıklık olmuş.
Öncelikle three_var.m adında bir fonksiyon dosyası oluşturacağız ve içerisinde aşadıdaki kodumuz yazmalı:

function b=three_var(v)
x=v(1,1);
y=v(1,2);
z=v(1,3);
b=(x-10)^2+(y-4)^2+(z-0.9)^2+3*(1-x*y*z)^2;

 
Daha sonra bu fonksiyonu aşağıdaki kod ile çağıracağız:
 

v=[5 5 5];
a=fminsearch(@three_var,v)