簡體   English   中英

如何在MATLAB中求解涉及三角函數的非線性方程組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM