С Новым годом! Форум программистов, компьютерный форум, киберфорум
Wolfram Mathematica
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
58 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 20
1

Почему вместо одного набора переменных, выводится набор по отдельности для каждой минимизации

15.05.2018, 14:20. Показов 722. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Подскажите пожалуйста, как можно было бы решить данную задачу.

Есть 3 таблицы с данными и функция которая способна сделать очень хороший фиттинг для каждой отдельной таблицы. Однако при попытке найти общие переменные через одновременный фиттинг, результат не радует(

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

И почему вместо одного набора переменных, выводится набор по отдельности для каждой минимизации?

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

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
data1 = {{-90`, 15066`}, {-87.5`, 14530`}, {-85`, 14061`}, {-82.5`, 
    12789`}, {-80`, 12722`}, {-77.5`, 12186`}, {-75`, 
    10847`}, {-72.5`, 9776`}, {-70`, 9575`}};
data2 = {{-90`, 3821`}, {-87.5`, 4187`}, {-85`, 4320`}, {-82.5`, 
    6093`}, {-80`, 6160`}, {-77.5`, 7231`}, {-75`, 8303`}, {-72.5`, 
    9374`}, {-70`, 9572`}};
data3 = {{-90`, 2343`}, {-87.5`, 2410`}, {-85`, 2209`}, {-82.5`, 
    2343`}, {-80`, 2410`}, {-77.5`, 2410`}, {-75`, 2477`}, {-72.5`, 
    2544`}, {-70`, 2477`}};
                                                      
Subscript[\[Nu], qt] = (3*6.2*10^6)/(2*Ii*(2*Ii - 1));    
Subscript[\[Nu], L] = 104.286846*10^6;               
a1 = 5/2*(5/2 + 1);                      
s = 1.5;                                                  
k = 1/2;
Clear[X1, X2, X3, X11, X22, X33, Z, M2, T2, n, \[Mu], F2];
X1 = {x11, x12, x13};
X2 = {0, 0, 1};
Z = {x21, x22, x23};
 
n = 1/Norm[X1]*X1;
M2 = X2*Cos[\[CapitalDelta] \[Degree]] + (1 - 
      Cos[\[CapitalDelta] \[Degree]])*(X2.n)*n + (Cross[n, X2])*
    Sin[\[CapitalDelta] \[Degree]];
T2 = VectorAngle[Z, M2];
\[Mu]2 = Cos[T2];
F2 = -Subscript[\[Nu], qt]*(k - 1/2)*((3*\[Mu]2^2 - 1)/
     2) + (Subscript[\[Nu], qt]^2/(
     12*Subscript[\[Nu], 
      L]))*( (k*((3 \[Mu]2^2)/2*(1 - \[Mu]2^2)*(8*k^2 - 4*a1 + 1) + 
          3/8*(1 - \[Mu]2^2)^2*(-2*k^2 + 2*a1 - 1))) - ((k - 
          1)*((3 \[Mu]2^2)/
           2*(1 - \[Mu]2^2)*(8*(k - 1)^2 - 4*a1 + 1) + 
          3/8*(1 - \[Mu]2^2)^2*(-2*(k - 1)^2 + 2*a1 - 1))) ) + 10000;
 
delta1[x11_?NumericQ, x12_?NumericQ, x13_?NumericQ, x21_?NumericQ, 
   x22_?NumericQ, x23_?NumericQ] = 
  Total@Cases[data1, {\[CapitalDelta]_, Fvalue_} -> (F2 - Fvalue)^2];
{d, xr} = 
  NMinimize[{delta1[x11, x12, x13, x21, x22, x23]}, {x11, x12, x13, 
    x21, x22, x23}];
 
X3 = {0, 1, 0};
M3 = X3*Cos[\[CapitalDelta] \[Degree]] + (1 - 
      Cos[\[CapitalDelta] \[Degree]])*(X3.n)*n + (Cross[n, X3])*
    Sin[\[CapitalDelta] \[Degree]];
T3 = VectorAngle[Z, M3];
\[Mu]3 = Cos[T3];
F3 = -Subscript[\[Nu], qt]*(k - 1/2)*((3*\[Mu]3^2 - 1)/
     2) + (Subscript[\[Nu], qt]^2/(
     12*Subscript[\[Nu], 
      L]))*( (k*((3 \[Mu]3^2)/2*(1 - \[Mu]3^2)*(8*k^2 - 4*a1 + 1) + 
          3/8*(1 - \[Mu]3^2)^2*(-2*k^2 + 2*a1 - 1))) - ((k - 
          1)*((3 \[Mu]3^2)/
           2*(1 - \[Mu]3^2)*(8*(k - 1)^2 - 4*a1 + 1) + 
          3/8*(1 - \[Mu]3^2)^2*(-2*(k - 1)^2 + 2*a1 - 1))) ) + 10000;
delta2[x11_?NumericQ, x12_?NumericQ, x13_?NumericQ, x21_?NumericQ, 
   x22_?NumericQ, x23_?NumericQ] = 
  Total@Cases[data2, {\[CapitalDelta]_, Fvalue_} -> (F3 - Fvalue)^2];
 
{d, xr} = 
  NMinimize[
   delta2[x11, x12, x13, x21, x22, x23], {x11, x12, x13, x21, x22, 
    x23}];
 
X4 = {1, 0, 0};
M4 = X4*Cos[\[CapitalDelta] \[Degree]] + (1 - 
      Cos[\[CapitalDelta] \[Degree]])*(X4.n)*n + (Cross[n, X4])*
    Sin[\[CapitalDelta] \[Degree]];
T4 = VectorAngle[Z, M4];
\[Mu]4 = Cos[T4];
F4 = -Subscript[\[Nu], qt]*(k - 1/2)*((3*\[Mu]4^2 - 1)/
     2) + (Subscript[\[Nu], qt]^2/(
     12*Subscript[\[Nu], 
      L]))*( (k*((3 \[Mu]4^2)/2*(1 - \[Mu]4^2)*(8*k^2 - 4*a1 + 1) + 
          3/8*(1 - \[Mu]4^2)^2*(-2*k^2 + 2*a1 - 1))) - ((k - 
          1)*((3 \[Mu]4^2)/
           2*(1 - \[Mu]4^2)*(8*(k - 1)^2 - 4*a1 + 1) + 
          3/8*(1 - \[Mu]4^2)^2*(-2*(k - 1)^2 + 2*a1 - 1))) ) + 10000;
delta3[x11_?NumericQ, x12_?NumericQ, x13_?NumericQ, x21_?NumericQ, 
   x22_?NumericQ, x23_?NumericQ] = 
  Total@Cases[data3, {\[CapitalDelta]_, Fvalue_} -> (F4 - Fvalue)^2];
 
{d, xr} = 
 NMinimize[{delta3[x11, x12, x13, x21, x22, x23]}, {x11, x12, x13, 
   x21, x22, x23}];
NSolve[{NMinimize[
    delta1[x11, x12, x13, x21, x22, x23], {x11, x12, x13, x21, x22, 
     x23}] NMinimize[
    delta2[x11, x12, x13, x21, x22, x23], {x11, x12, x13, x21, x22, 
     x23}] NMinimize[{delta3[x11, x12, x13, x21, x22, x23]}, {x11, 
     x12, x13, x21, x22, x23}]}, {x11, x12, x13, x21, x22, x23}]
Заранее спасибо)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2018, 14:20
Ответы с готовыми решениями:

Выводится несколько рейсов вместо одного
Доброго вечера форумчане! Есть такой вопрос: не могу понять, почему при поиске рейса по номеру...

Два раза выводится слово вместо одного
Здесь в первый раз "Бот, " выводится 2 раза, все последующие разы по 1 разу Вот отрывочек из...

Вместо одного принта и одного скана выводится 2 принта на один скан
Первый цикл проходит нормально, а далее небольшая проблемка. Вместо одного принта и одного скана...

Почему вместо 1.5 выводится 1.500000?
Вот в этом коде вместо цифр в tablica выводится что-то страшное =) #include <stdio.h> #include...

0
15.05.2018, 14:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2018, 14:20
Помогаю со студенческими работами здесь

Почему вместо 2 выводится белеберда?
// mamalclass.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h"...

Значение два раза выводится в таблицу вместо одного
Есть вот такой код для кнопки. Суть проблемы в том, что расчитываемый результат в нужную мне...

Для каждой строки из заданного набора S проверить: верно ли, что она содержит как подстроку одну из строк из набора T
Здравствуйте, уважаемые пользователи! Опять несложная задачка на строки, но не все тесты...

почему вместо выполнения кода он выводится на экране
скажите пожалуйста почему вместо выполнения кода он выводится на экране? я уже устала искать и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru