[英]how to solve non linear system of equations involving trigonometric functions in MATLAB
我如何從MATLAB中的以下方程式找到b,k1,k3的值
cos(2*b)- k3 +(2*k1*sin(b))=0
cos((2*b)+t1-p1)-k3-(k1*(sin(p1-b)-sin(t1+b)))=0
cos((2*b)+t2-p2)-k3-k1*(sin(p2-b)-sin(t2+b))=0
其中p1,p2,t1,t2是已知值
您可以使用功能fsolve 。 它用於求解非線性方程組。 如果您在我提供的鏈接中查看示例1,則可以適應您的需求。
編輯
根據您提供的值並解決一些困難,這就是我定義函數的方式(請注意,我固定了F的第二行,該行具有k1而不是k(1)):
function F = func(k)
t1 = pi/9;
t2 = (2*pi)/9;
p1 = acot(0.8+cot(t1));
p2 = acot(0.8+cot(t2));
F= [cos(2*k(2))-k(3)+(2*k(1)*sin(k(2)));
cos((2*k(2))+t1-p1)-k(3)-(k(1)*(sin(p1-k(2))-sin(t1+k(2))));
cos((2*k(2))+t2-p2)-k(3)-k(1)*(sin(p2-k(2))-sin(t2+k(2)))];
end
然后解決它,我打電話給:
k0 = [1.523,0.23,3.57];
[k fk flag]=fsolve(@func,k0)
Optimization terminated: first-order optimality is less than options.TolFun.
k =
-0.5210 -1.0933 0.3480
fk =
1.0e-009 *
0.2676
0.2651
0.2501
flag =
1
其中k是解決方案,fk是f(k),幾乎為零(1e-9),並且標志= 1表示即使解決方案終止,fsolve也會收斂到解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.