Решаване на уравнения - вградени функции във Wolfram Mathematica

Solve

Solve[2(x^3)-10Cos[2x]+5(x^2)-1==0]

Solve[2(x^3)+5(x^2)-1==0]

Solve[2(x^3)+5(x^2)-1==0]//N

NSolve

NSolve[2(x^3)-10Cos[2x]+5(x^2)-1==0]

FindRoot

Plot[2(x^3)-10Cos[2x]+5(x^2)-1,{x,-5,5}]

FindRoot[2(x^3)-10Cos[2x]+5(x^2)-1,{x,1}]

FindRoot[2(x^3)-10Cos[2x]+5(x^2)-1,{x,-2}]

FindRoot[2(x^3)-10Cos[2x]+5(x^2)-1,{x,-1}]

Метод на хордите за решаване на уравнения

2(x^3)-10Cos[2x]+5(x^2)-1 = 0

Геометрично определяне броя на корените

f[x_]:=2(x^3)-10Cos[2x]+5(x^2)-1
Plot[2(x^3)-10Cos[2x]+5(x^2)-1,{x,-5,5}]

Извод: Броят на корените е 3.

Вариант 1:

Локализация на корен (най-големия)

Plot[f[x],{x,0,1}]

f[0.]

f[1.]

Извод: Стойностите на фунцкията в двата края на избрания интервал [0; 1] са с противоположни знаци. Следователно в този интервал съществува корен.

Проверка на условията на метода на хордите

Plot[f'[x],{x,0,1}]

f'[0]

Извод: Първата производна има стойности в интервала [0; 35] - всички стойности са положителни за избрания интервал [0; 1]

Plot[f''[x],{x,0,1}]

Извод: Втората производна има стойности в интервала [0; 50] - всички стойности са положителни за избрания интервал [0; 1]

Определяне на начално приближение и постоянна точка ( f((Subscript[x, 0]))f’’(x)<0 )

x0 = 0.

p= 1

Итерации

Смятаме “на ръка”

f[0]

f[1.]

Вариант 2:

Локализация на корен (най-големия)

Plot[f[x],{x,0.1,1}]

f[0.1]

f[1.]

Извод: Стойностите на фунцкията в двата края на избрания интервал [0.1; 1] са с противоположни знаци. Следователно в този интервал съществува корен.

Проверка на условията на метода на хордите

Plot[f'[x],{x,0.1,1}]

f'[0.1]

Извод: Първата производна има стойности в интервала [5; 35] - всички стойности са положителни за избрания интервал [0.1; 1]

Plot[f''[x],{x,0.1,1}]

Извод: Втората производна има стойности в интервала [0; 50] - всички стойности са положителни за избрания интервал [0.1; 1]

Определяне на начално приближение и постоянна точка ( f((Subscript[x, 0]))f’’(x)<0 )

x0 = 0.1

p= 1

Итерации

Смятаме “на ръка”

f[0.1]

f[1.]

Plot[Abs[f'[x]],{x,0.1,1}]

m1=Abs[f'[0.1]]

M1=Abs[f'[1.]]

K=((M1-m1)/m1)

0.1 - ((-10.7487)/(-10.7487-10.1615))(0.1-1)

f[0.562637]

K*Abs[0.562637-0.1]

съставяме програмен код

f[x_]:=2(x^3)-10Cos[2x]+5(x^2)-1;
x0 = 0.1; p= 1;
m1=Abs[f'[0.1]];
M1=Abs[f'[1.]];
K=((M1-m1)/m1);
Print[" n = ", 0," (Subscript[x, n]) = ", x0," f((Subscript[x, n])) = ", f[x0]];
x=x0;
For[n=1,n≤3,n++,
xnext = x-((f[x])/(f[x]-f[p]))(x-p);
eps = K*Abs[xnext-x];
Print[" n = ", n," (Subscript[x, n]) = ", xnext," f((Subscript[x, n])) = ", f[xnext]," (Subscript[e, n]) = ", eps];
x=xnext

]

Правим повече итерации:

f[x_]:=2(x^3)-10Cos[2x]+5(x^2)-1;
x0 = 0.1; p= 1;
m1=Abs[f'[0.1]];
M1=Abs[f'[1.]];
K=((M1-m1)/m1);
Print[" n = ", 0," (Subscript[x, n]) = ", x0," f((Subscript[x, n])) = ", f[x0]];
x=x0;
For[n=1,n≤10,n++,
xnext = x-((f[x])/(f[x]-f[p]))(x-p);
eps = K*Abs[xnext-x];
Print[" n = ", n," (Subscript[x, n]) = ", xnext," f((Subscript[x, n])) = ", f[xnext]," (Subscript[e, n]) = ", eps];
x=xnext

]

цикъл със стоп-критерий при достигане на предварително зададена точност:

f[x_]:=2(x^3)-10Cos[2x]+5(x^2)-1;
x0 = 0.1; p= 1;
m1=Abs[f'[0.1]];
M1=Abs[f'[1.]];
K=((M1-m1)/m1);
Print[" n = ", 0," (Subscript[x, n]) = ", x0," f((Subscript[x, n])) = ", f[x0]];
x=x0;
tochnost=(10^(-9));
eps = Infinity;
For[n=1,eps > tochnost,n++,
xnext = x-((f[x])/(f[x]-f[p]))(x-p);
eps = K*Abs[xnext-x];
Print[" n = ", n," (Subscript[x, n]) = ", SetPrecision[xnext,11]," f((Subscript[x, n])) = ", f[xnext]," (Subscript[e, n]) = ", eps];
x=xnext

]