How do I write matlab code for solving the following equation ?

조회 수: 4 (최근 30일)
pawan
pawan 2014년 4월 22일
답변: Image Analyst 2014년 4월 22일
As we have been provided the y in terms of vector. How can we solve the vector x for corresponding values of y? Please help.
y=0:1:10;
y=x-sin(x)/sqrt(1+sin(x));

답변 (2개)

Mischa Kim
Mischa Kim 2014년 4월 22일
편집: Mischa Kim 2014년 4월 22일
Pawan, you could do
syms x
y = 0:1:10;
for n = 1:numel(y)
yn(n) = vpasolve(y(n)-x+sin(x)./sqrt(1+sin(x))==0);
end
Note, that there are numerous solutions for a particular y-value.
  댓글 수: 2
pawan
pawan 2014년 4월 22일
편집: pawan 2014년 4월 22일
Thanks Mischa. But could you do without having symbolic function by assuming any initial value of x say ,0.0001
Mischa Kim
Mischa Kim 2014년 4월 22일
Sure, again, there are multiple solutions, which you will find depending on the starting value.
y = 0:1:10;
for n = 1:numel(y)
yn(n) = fsolve(@(x) y(n)-x+sin(x)/sqrt(1+sin(x)), 10);
end

댓글을 달려면 로그인하십시오.


Image Analyst
Image Analyst 2014년 4월 22일
If you want to do it numerically, how about
x=0:1:10;
y=x-sin(x)/sqrt(1+sin(x))
plot(x, y, 'bs-', 'LineWidth', 2);
% Try to find x for which y = 5.
desiredY = 5;
[minDiff, desiredXIndex] = min(abs(y - desiredY))
hold on;
plot(x(desiredXIndex), y(desiredXIndex), ...
'r*', 'MarkerSize', 15, 'LineWidth', 2);
grid on;

카테고리

Help CenterFile Exchange에서 Utilities for the Solver에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by