finding a coefficient from an equation
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello, i m a beginner on matlab and i would need some help. I have 2 vectors x and z with 10 values each and the equation z=c*sqrt(x). I have to find the value of c. Help please.
댓글 수: 3
Walter Roberson
2020년 5월 18일
In that case either use / or \ operators with appropriate arguments. They will do a least-squared fitting to find the best value for c.
답변 (1개)
Ang Feng
2020년 5월 18일
(1)If your vectors x and x follows exactly z=c*sqrt(x), then the constant c can be calculated, as mentioned by Adam Danz,
c = sqrt(x)./z
You have a vector c which has 10 identical value which is what you are looking for.
(2) In the case x, and z just follow then trend of z=c*sqrt(x), you are actually asking for a constant c that minimize some function of the error
vector. Normally, we minimize norm of the square of the error
. This is a least square problem. You can actually use the curve fitting tool box to fit the function.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/293915/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/293916/image.png)
sqrtX = sqrt(x);
f = fit(sqrtX,z,'poly1');
c = f.p1;
Here is my little example.
x = (1:10)';sqrtX = sqrt(x);
z = 2*sqrtX+0.05*randn(10,1);% add some noise
f = fit(sqrtX,z,'poly1');
c = f.p1
ans =
1.9725
The parameter c = 2 was calculated to be 1.9725.
참고 항목
카테고리
Help Center 및 File Exchange에서 Computational Geometry에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!