フィルターのクリア

integration with known boundary an 2 variables

1 回表示 (過去 30 日間)
Abdullah Azzam
Abdullah Azzam 2020 年 2 月 12 日
コメント済み: Walter Roberson 2020 年 2 月 12 日
Hi guys I have this equations that I have been trying to solve for different values of "n"
dz= - dh / [ (1 + v/k ) + (a * v/k * abs ( h ) ^ n ) ] where k and a are constants z range from 0 to a known value let's say Z and h range from a value h1 to h2 that are also known values.
Is there a way to write a matlab code that integrate this equations in term of h and then solve for the value of v
Thanks for the help in advance.
  2 件のコメント
Walter Roberson
Walter Roberson 2020 年 2 月 12 日
Are dz and dh representing derivatives? If so with what independent variable? It is especially important if dz is z(h) derivative with respect to h
What is known about n? If it is symbolic you are not going to be able to solve this in the general case. You might be able to solve for n being positive integer.
Abdullah Azzam
Abdullah Azzam 2020 年 2 月 12 日
ya dz and dh represent derivatives. Where Z represent depth and since it is goint to be integrated from 0 to desired depth I don't think it will be a problem you can consider dz as z(h). n is a constant 1,2,3,4...etc as users input.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2020 年 2 月 12 日
"Is there a way to write a matlab code that integrate this equations in term of h and then solve for the value of v"
No. Even for n=1 there is no closed form for the integral that can be found at all easily, so you cannot solve for v except numerically given all of the constants
There is no closed form integral for this applicable to all positive integers n. Not even if you restrict h so that it does not cross 0 to avoid the question what the integral of abs() is.
  2 件のコメント
Abdullah Azzam
Abdullah Azzam 2020 年 2 月 12 日
Thanks. If possible what would be a good Numrical solution for that problem?
Walter Roberson
Walter Roberson 2020 年 2 月 12 日
balance = @(z) integral(@(h) - 1 ./ () (1 + v./k ) + (a .* v./k * abs(h).^n), h1, h2) - Z;
v0 = rand; %or other good starting value
best_v = fsolve(balance, v0);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by