2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Не получается решить СНУ в Scilab, помогите разобраться
Сообщение30.01.2014, 09:17 


29/11/13
42
Здравствуйте.
Сразу скажу, что я только начал изучать Scilab.
Пытаюсь решить систему нелинейных уравнений через функцию function.
Получается решить систему из 8 уравнений, но когда добавляю ещё 2, то выдаётся ошибка:
"fsolve([XB0 YB0 XC0 YC0 XD0 YD0 XE0 YE0],funkt)
--error 98
Функция аргумента scilab вернула некорректную переменную." Не могу понять, что я делаю не так... :-(
Ниже пример работающей программы с 8-ю уравнениями и 8-ю неизвестными. Если раскомментировать строки
Код:
#y(9)=((x(8)-YF)/(x(7)-XF)-(x(6)-YF)/(x(5)-XF))/(1+(x(8)-YF)/(x(7)-XF)*(x(6)-YF)/(x(5)-XF))-tgEFD;
#y(10)=(x(2)/x(1)-x(4)/x(3))/(1+(x(2)/x(1))*(x(4)/x(3)))-tgCAB;

то выдастья вышеописанная ошибка.
Код:
XF=185
YF=-10
XB0=40;
XC0=45;
XD0=139;
XE0=148;
XF0=180;
YB0=60;
YC0=92;
YD0=91;
YE0=64;
YF0=-5;

tgCAB=(YB0/XB0-YC0/XC0)/(1+(YB0/XB0)*(YC0/XC0));
tgEFD=((YE0-YF0)/(XE0-XF0)-(YD0-YF0)/(XD0-XF0))/(1+(YE0-YF0)/(XE0-XF0)*(YD0-YF0)/(XD0-XF0));

LDE=sqrt((XD0-XE0)^2+(YD0-YE0)^2);
LFE=sqrt((XF0-XE0)^2+(YF0-YE0)^2);
LFD=sqrt((XF0-XD0)^2+(YF0-YD0)^2);
LAB=sqrt(XB0^2+YB0^2);
LAC=sqrt(XC0^2+YC0^2);
LCB=sqrt((XC0-XB0)^2+(YC0-YB0)^2);
LDB=sqrt((XD0-XB0)^2+(YD0-YB0)^2);
LEC=sqrt((XE0-XC0)^2+(YE0-YC0)^2);

function [y]=funkt(x)
y(1)=(x(7)-XF)^2+(x(8)-YF)^2-LFE^2;
y(2)=(x(5)-x(7))^2+(x(6)-x(8))^2-LDE^2;
y(3)=(XF-x(5))^2+(YF-x(6))^2-LFD^2;
y(4)=x(1)^2+x(2)^2-LAB^2;
y(5)=x(3)^2+x(4)^2-LAC^2;
y(6)=(x(3)-x(1))^2+(x(4)-x(2))^2-LCB^2;
y(7)=(x(5)-x(1))^2+(x(6)-x(2))^2-LDB^2;
y(8)=(x(7)-x(3))^2+(x(8)-x(4))^2-LEC^2;
#y(9)=((x(8)-YF)/(x(7)-XF)-(x(6)-YF)/(x(5)-XF))/(1+(x(8)-YF)/(x(7)-XF)*(x(6)-YF)/(x(5)-XF))-tgEFD;
#y(10)=(x(2)/x(1)-x(4)/x(3))/(1+(x(2)/x(1))*(x(4)/x(3)))-tgCAB;
endfunction

fsolve([XB0 YB0 XC0 YC0 XD0 YD0 XE0 YE0],funkt)

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

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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