x=[0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43];
y=[0.211 0.313 0.466 0.692 1.03 1.532 2.190 3.250 4.823 7.158];
첫 번째 것을 맞추세요:
함수 f = 첫 번째(c, x, y)
f = y - c(1) .* x .^ c(2);
first.m 파일로 저장하세요.
명령줄에서 실행:
c = lsqnonlin('첫번째', [0 0], [], [], [], x, y);
a = c(1)
b = c(2)
두 번째 맞춤:
함수 f = first2(c, x, y)
f = y - c(2) .* exp(c(1) .* x);
first2.m 파일로 저장하세요.
명령줄에서 실행:
c2 = lsqnonlin('first2', [0 0], [], [], [], x, y);
a2 = c2(1)
b2 = c2(2)
폴리핏 기능을 사용하세요. (다항식 피팅에는 최소제곱법을 사용합니다.)
예를 들어주세요
x=[90 91 92 93 94 95 96];
z=[70 122 144 152 174 196 202];
a=폴리핏(x,z,1)
결과:
아 =
1.0e+03 *
0.0205 -1.7551
1은 1차 다항식을 나타냅니다(1차일 때는 직선이며 상황에 따라 적용 가능)
a는 고차항에서 저차항으로 배열된 다항식의 계수 벡터입니다.
예를 들어 결과를 사용하려면 x=97일 때 z가 무엇인지 알고 싶습니다
그럼 방법은 2가지가 있는데
계수를 직접 사용해 보세요
>>a(1)*97+a(2)
ans =
233.4286
또는 다중 함수를 사용하세요
>>폴리발(a,97)
ans =
233.4286
최소 제곱법은 제곱 오류의 합을 최소화하여 데이터 집합에 가장 적합한 기능적 일치를 찾는 수학적 최적화 기술입니다.
최소 제곱법은 가장 간단한 방법을 사용하여 제곱 오차의 합을 최소화하면서 절대 알 수 없는 실제 값을 얻는 것입니다.
최소제곱법은 일반적으로 곡선 피팅에 사용됩니다. 다른 많은 최적화 문제도 에너지를 최소화하거나 엔트로피를 최대화하여 최소 제곱 형식으로 표현할 수 있습니다.
예를 들어 가장 간단한 선형 함수 y=kx+b부터 시작해 보겠습니다
좌표축에 (1.1,2.0), (2.1,3.2), (3,4.0), (4,6), (5.1,6.0) 점들이 있는 것으로 알려져 있으며, 의 선형함수 관계식은 다음과 같습니다.
이 지점을 통과하는 이미지.물론, 이 직선이 모든 점을 통과할 수는 없습니다. 5개 점에서 이 직선까지의 거리의 제곱의 합을 최소화하면 됩니다. 그런 다음 선형 피팅을 사용해야 합니다. 에. 할 말이 너무 많네요. 최소제곱법에 대해서만 질문하셨으니 이 정도만 말씀드리겠습니다.
대학에서만 배운 내용이고, 일반적으로 모델링에 사용되는 내용입니다.
위 내용은 최소 제곱법을 사용하여 거듭제곱 함수 y=a*x^b와 지수 함수 y=b*exp(a)를 맞춥니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!