boundry value third order problem
1 回表示 (過去 30 日間)
古いコメントを表示
i have this problem with limit boundary value. i wrote the code but answer is zero. how can i solve this problem?
0 件のコメント
回答 (1 件)
John D'Errico
2022 年 11 月 30 日
I don't know if this is homework. But it possibly is. So I'll just point you in a decent direction.
And if you are going to solve the problem, you will need to learn a bit about these problems, though I cannot possibly teach the complete course I would need to teach to do it justice on this forum. That suggests it may not be homework, since if it as, then you would have been given sufficient hints to get you started.
First, does the solution of f == 0 and theta == 0 everywhere completely satisfy the problem? Of course it does. So what solution do you expect to find from any direct solver? ZERO. Nothing more.
Yet at the same time, these problems often do have a non-trivial solution too. How can you find that? First, you will need to understand the methods used to solve a boundary value problem, which this is.
Simplest is probably a series solution here. Do you know of a function that trivially satisfies the boundary values at each endpoint? You should be able to find one easily enough. You need
f0) = f''(0) = 0
AND you need
f'(ne) = 0
So we have a finite domain of [0,ne]. At one endpoint, you have the function and it second derivative equal to zero. Can you think of such a function? Hint. Think about this function:
syms ne x
f(x) = sin(pi*x/(2*ne))
f(0)
subs(diff(f,x,2),x,0)
That is, at x==0, you get zero. And the second derivative is also zero at that point. What is the derivative at x==ne? The first derviative will give you a cosine function.
subs(diff(f,x,1),x,ne)
So f(x) trivially satisfies the problem, no?
But consider also the more general function:
syms m integer
f(x) = sin((2*m+1)*pi*x/(2*ne))
When m==0, this reduces to the same function as above. And at zero, it still gives you the same boundary values.
f(0)
subs(diff(f,x,2),x,0)
subs(diff(f,x,1),x,ne)
But when m is an integer, what is cos(pi*(2*m+1)/2)? ZERO. Again, for any integer m, we get zero for the first derivative at the end at x==ne.
You can expand your function as a series of those terms, so a series as a function of m, because every such term satisfies the boundary conditions trivially.
Do the same thing for theta. It should look like a sum of cosine terms instead on the same domain.
Now you would want to solve for the coefficients of those series, so that the series satisfies the system of differential equations. In the end, you should need to solve a nonlinear eigenvalue problem of sorts. Its been many years since I was solving problems like this though, but the idea still should work.
You should also be able to use collocation methods to solve this, though again, you will be searching for non-trivial solutions in the form of eigenvectors.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!