2016-11-21 55 views
0
a1 * sqrt(abs(b1-x)) + ... 
a2 * sqrt(abs(b2-x)) + ... 
a3 * sqrt(abs(b3-x)) + ... 
a4 * sqrt(abs(b4-x)) = 0 

需要找到x當所有的變量已知時。需要編寫Matlab代碼來解決下面的等式

我試着用solve但它說

明確的解決方案可能不會被發現。在解決在160

我是新來的MATLAB,試圖分析風洞數據。

+1

看看了'fzero'功能 –

+0

您好,歡迎堆棧溢出!這是與編碼有關的所有問題的問答網站。一般來說,像這樣的問題並沒有得到很好的接受,因爲說實話,你可以通過閱讀關於查找根的MATLAB文檔,在MATLAB中查找零尋找等來找到答案。Stack Overflow不是編碼服務 - 但這基本上是你要求我們在這裏做的。對於您可能遇到的任何問題,請顯示您迄今爲止所嘗試的內容,您至少已使用Google搜索並嘗試了一些技巧等。 –

回答

0

根據這些常數的值,可能有0到8個可能的解決方案。記住這一點。

爲了讓你開始:

% a = 4 × 1 
% b = 4 × 1 
function x_root = find_zero(a, b, x_initial_guess) 

    x_root = fzero(@(x) a(:).' * sqrt(abs(b(:) - x)),... 
        x_initial_guess); 

end 

用法示例

> find_zero(randn(4,1), randn(4,1), 0) 
ans = 
    3.445614467672894e-002