>  기사  >  컴퓨터 튜토리얼  >  최소 제곱법을 사용하여 거듭제곱 함수 y=a*x^b와 지수 함수 y=b*exp(a)를 맞춥니다.

최소 제곱법을 사용하여 거듭제곱 함수 y=a*x^b와 지수 함수 y=b*exp(a)를 맞춥니다.

WBOY
WBOY앞으로
2024-01-16 16:51:111221검색

运用最小二乘法分别进行乘幂函数 y a x^b指数函数y b expa

최소제곱법을 사용하여 거듭제곱 함수 y a x^b 지수 함수 y b expa x 를 곱합니다.

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)

최소제곱 피팅을 위해 MATLAB을 사용하는 방법

폴리핏 기능을 사용하세요. (다항식 피팅에는 최소제곱법을 사용합니다.)

예를 들어주세요

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 docexcel.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:cmd 명령 목록다음 기사:cmd 명령 목록