How to fit complicated function with 3 fitting parameters using Least square regression

조회 수: 13 (최근 30일)
I want to fit below equation J(v). J and V data areavailable.
N=10^21
q=1.6x10^-19
Epsilon=26.5 x 10^-14
d=3x10^- 6
Initial values may be x0=[µ l H]=[10^-5 5 10^18]
3 fitting parameters are: µ, l and H. other parameters are known.
can some one help me to solve this?
I am not expert in Matlab
V is xdata:
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
6
6.5
7
7.5
8
J is ydata:
1.64544E-05
1.99822E-05
0.000032253
4.2623E-05
7.40498E-05
0.000660899
0.007578998
0.027109725
0.106353025
0.30299725
0.7332185
1.550115
2.98009
5.3102775
8.88175
14.0394325
21.163215
  댓글 수: 9
Thi Na Le
Thi Na Le 2020년 3월 27일
thank you!
The only problem is that result for H value is always equal to the startpoint that I set for H. Is it my fitting has been fail?
Alex Sha
Alex Sha 2020년 3월 27일
You may try to provide a little different start-value for H, and see the final result, if final H is still alway equaling to start-value of H, your fitting seems to have problem.

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

채택된 답변

Alex Sha
Alex Sha 2020년 3월 25일
Hi, you may try to use "lsqcurvefit" command or curve fitting tool box (cftool), it is also better if you post data as well as known constant values, so other persons may try for you.

추가 답변 (1개)

Jeff Miller
Jeff Miller 2020년 3월 25일
I assume you have vectors of values for V and J, in which case fminsearch might be a good choice. The basic steps are:
  1. Write a function "predicted" to compute a predicted value of J for any given V, µ, l and H.
  2. Write a function "error" that computes the sum of (predictedJ - actualJ)^2, summing across the J vector.
  3. call fminsearch and pass it this error function as the function to be minimized. You will have to give it reasonable guesses for µ, l and H.

카테고리

Help CenterFile Exchange에서 Least Squares에 대해 자세히 알아보기

태그

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

Community Treasure Hunt

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

Start Hunting!

Translated by