2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Решение уравнения 4-й степени в MathCad.
Сообщение12.04.2009, 22:03 
Аватара пользователя


10/03/08
82
Привет. Нужно решить уравнение вида:$$5.12*10^{-13}*x^4+3.84*10^{-9}*x^3+0.00653*x^2+0.948*x+1581580=0$$
На одном сайте нашел нашел метод решения:
$$
\mathbf{v} :=
\left( \begin{array}{ccc}
1581580 \\
0.948 \\
0.00653 \\
3.84*10^{-9} \\
5.12*10^{-13} \\
\end{array} \right)
$$
$$
\mathbf{polyroots(v)} :=
\left( \begin{array}{ccc}
-3.75*10^3-1.118i*10^5 \\
-3.75*10^3+1.118i*10^5 \\
0.034+1.572i*10^4 \\
0.034-1.572i*10^4 \\
\end{array} \right)
$$
При подстановки любого из корней, уравнение не обращается в ноль, почему?

 Профиль  
                  
 
 
Сообщение13.04.2009, 12:44 
Заслуженный участник
Аватара пользователя


23/07/05
17976
Москва
Вероятно, потому, что корни приближённые.

 Профиль  
                  
 
 
Сообщение13.04.2009, 15:34 
Аватара пользователя


10/03/08
82
Что то уж совсем далеко от нуля. Например, при подставлении корня $$0.034-1.572i*10^4$$ в уравнение получается: $$-836.655+7.983i$$ :(

 Профиль  
                  
 
 
Сообщение13.04.2009, 19:14 
Заслуженный участник
Аватара пользователя


23/07/05
17976
Москва
С MathCadом не работаю. Mathematica 5.1 даёт следующие результаты.

а) При задании коэффициентов как точных

Код:
RR=Solve[512*10^(-15)x^4+384*10^(-11)x^3+653*10^(-5)x^2+948*10^(-3)x+1581580==0, x]


уравнение решается точно (результат не привожу, так как он совершенно необозримый). Вычисление этого выражения со стандартной точностью

Код:
NRR=N[RR]


даёт

$\{\{x\to-3750.0336803086025+111771.45830237673i\},$
$\{x\to-3750.033680296527-111771.45830237592i\},$
$\{x\to 0.033680259582655005-15715.759974137427i\},$
$\{x\to 0.03368034554737894+15715.759974136601i\}\}$

(это внутреннее представление; без специальной команды Mathematica печатает только 6 значащих цифр; сравнивая сопряжённые корни попарно, видим, что младшие цифры неточные).
Подстановка этих чисел в левую часть уравнения даёт

$\{-1.1920928955078125\times 10^{-7}+8.493661880493164\times 10^{-6}i,$
$-1.043081283569336\times 10^{-7}+8.491799235343933\times 10^{-6}i,$
$-1.1037263902835548\times 10^{-7}+8.481167713181303\times 10^{-6}i,$
$-1.1031079338863492\times 10^{-7}+8.481103069668539\times 10^{-6}i\}$.

Вычисление с точностью $20$ значащих цифр

Код:
RNN=N[RR,20]


даёт

$\{\{x\to-3750.033680302559800-111771.458302376409806i\},$
$\{x\to-3750.033680302559800+111771.458302376409806i\},$
$\{x\to 0.033680302559800-15715.759974136454559i},$
$\{x\to 0.033680302559800+15715.759974136454559i\}\}$.

Подстановка этих чисел в левую часть уравнения даёт

$\{0.\times 10^{-12}+0.\times 10^{-12}i,0.\times 10^{-12}+0.\times 10^{-12}i,$
$0.\times 10^{-14}+0.\times 10^{-14}i,0.\times 10^{-14}+0.\times 10^{-14}i\}$.

б) при задании коэффициентов как приближённых

Код:
RS=Solve[5.12*10^(-13)x^4+3.84*10^(-9)x^3+0.00653x^2+948*10^(-3)x+1581580==0,x]


получается

$\{\{x\to-3750.0336803025593-111771.4583023764i\},$
$\{x\to-3750.0336803025593+111771.4583023764i\},$
$\{x\to 0.033680302559808334-15715.759974136456i\},$
$\{x\to 0.033680302559808334+15715.759974136456i\}\}$

(это опять же внутреннее представление, печатается только 6 значащих цифр).
При подстановке этого в левую часть уравнения получим

$\{0.+1.862645149230957\times 10^{-9}i,0.-1.862645149230957\times 10^{-9}i,$
$-1.0186340659856796\times 10^{-10}-1.759703494030873\times 10^{-14}i,$
$-1.0186340659856796\times 10^{-10}+1.759703494030873\times 10^{-14}i\}$.

При подстановке результата

$\{\{x\to-3750.03-111771.i\},\{x\to-3750.03+111771.i\},$
$\{x\to 0.0336803-15715.8i\},{x\to 0.0336803+15715.8i\}\}$,

округлённого до 6 значащих цифр, получается

$\{-641.254+49.1247i,-641.254-49.1247i,$
$-7.89705+0.075925i,-7.89705-0.075925i\}$.

Судя по последнему результату, проблема действительно в недостаточной точности вычислений.

 Профиль  
                  
 
 
Сообщение13.04.2009, 19:48 
Заслуженный участник


15/05/05
3445
USA
Someone писал(а):
Судя по последнему результату, проблема действительно в недостаточной точности вычислений.

Что не удивительно для уравнения с $a_4 / a_0$ порядка $10^{-19}$.

Если в исходном уравнении
$$5.12*10^{-13}*x^4+3.84*10^{-9}*x^3+0.00653*x^2+0.948*x+1581580=0$$

сделать подстановку $$x = 10^5 y$$, а затем поделить уравнение на $$10^7$$, то получим

$$5.12*y^4+0.384*y^3+6.53*y^2+0.00948*y+0.1581580=0$$

Думаю, никаких фокусов при его решении не будет.

Преобразования такого типа часто применяются при решении задач линейной алгебры - СЛУ, СЗ и СВ, МНК.

 Профиль  
                  
 
 
Сообщение13.04.2009, 22:02 
Заслуженный участник


27/06/08
4062
Волгоград
А вот что дает Maple
Код:
a:=[solve(5.12*10^(-13)*x^4+3.84*10^(-9)*x^3+0.00653*x^2+0.948*x+1581580=0)];
  a := [0.03368030256 + 15715.75997 I, -3750.033680 + 111771.4583 I,

        -3750.033680 - 111771.4583 I, 0.03368030256 - 15715.75997 I]

> seq(subs(x=a[i],5.12*10^(-13)*x^4+3.84*10^(-9)*x^3+0.00653*x^2+0.948*x+1581580),i=1..4);

  0.00092892683 + 0.00001 I, -0.011929 + 0.0045 I,

        -0.011929 - 0.0045 I, 0.00092892683 - 0.00001 I

Это без всяких дополнительных мер по повышению точности.
А вот результат после принудительного повышения точности округленных вычислений:
Код:
Digits:=50:a:=[solve(5.12*10^(-13)*x^4+3.84*10^(-9)*x^3+0.00653*x^2+0.948*x+1581580=0)];

  a := [0.033680302559800158155552173538821941937376473405693 +

        15715.759974136454559338537769258380443969682282545 I,

        -3750.0336803025598001581555521735388219419373764734 +

        111771.45830237640980647702073427577523285897689565 I,

        -3750.0336803025598001581555521735388219419373764734 -

        111771.45830237640980647702073427577523285897689565 I,

        0.033680302559800158155552173538821941937376473405693 -

        15715.759974136454559338537769258380443969682282545 I]

> seq(subs(x=a[i],5.12*10^(-13)*x^4+3.84*10^(-9)*x^3+0.00653*x^2+0.948*x+1581580),i=1..4);

               -44         -44              -42          -42
  -0.3211403 10    - 0.1 10    I, -0.8968 10    - 0.12 10    I,

                  -42          -42                 -44         -44
        -0.8968 10    + 0.12 10    I, -0.3211403 10    + 0.1 10    I

Это я к вопросу о том, какой мат. пакет лучше ;)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: DariaRychenkova


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group