主页
Top.Mail.Ru Yandeks.Metrika
论坛:“抢”;
当前存档:2003.05.01;
下载:[xml.tar.bz2];

向下

求解方程组的程序 找到类似的分支


Pat   (2003-04-15 14:23) [0]

Народ, подскажите программу, с помощью которой можно было бы решить систему уравнений в символьном виде, например:
ax+by=z1
cx+dy=z2

a,b,c,d,z1,z2 - некоторые константы
x,y - переменные

Программа должна получить ответ в виде
x = ...
y = ...

ну если такое вообще возможно :-\



han_malign   (2003-04-15 14:30) [1]

Ну, вобщем-то, парсинг матрицы уравнения из текста заданного вида, задача довольно тривиальная, во всяком случае проще парсинга произвольного выражения, и решается в лоб.
Хотя проще просто матрицу коэфициентов вводить.
А способов решения системы линейных уравнений - Гаус, Крамер..., короче, сводится к задаче транспонирования матрицы...



Neft   (2003-04-15 14:44) [2]

полюбому матрицу выделять придется и потом дальше как сказал хан_малигн



Mystic   (2003-04-15 14:52) [3]

MATLAB, Symbolic toolbox

Solution of Equations
compose - Functional composition.
dsolve - Solution of differential equations.
finverse - Functional inverse.
solve - Solution of algebraic equations.

例如

r = solve("a*x+b*y=z1", "c*x+d*y=z2", "x", "y");
r.x
-(-d*z1+z2*b)/(a*d-b*c)
r.y
(a*z2-z1*c)/(a*d-b*c)





nikkie   (2003-04-15 14:54) [4]

MAPLE
он даже такую систему сможет решить
ax^2+by^2=z1
cx^3+dy^3=z2



Внук   (2003-04-15 15:00) [5]

MAPLE



Феу   (2003-04-15 15:06) [6]

2nikkie
За что ты его так? Нормально решает (у меня :-).



Mystic   (2003-04-15 15:14) [7]


> nikkie©(15.04.03 14:54)


Нет проблем:

>> r = solve("a*x^2+b*y^2=z1", "c*x^2+d^2*y=z2", "x", "y");
>> r.x

ans =

[ 1/2/c*(-(-4*z2*b*c+2*a*d^4-2*(-4*z2*b*c*a*d^4+a^2*d^8+4*b*c^2*z1*d^4)^(1/2))/b)^(1/2)]
[ -1/2/c*(-(-4*z2*b*c+2*a*d^4-2*(-4*z2*b*c*a*d^4+a^2*d^8+4*b*c^2*z1*d^4)^(1/2))/b)^(1/2)]
[ 1/2/c*(-(-4*z2*b*c+2*a*d^4+2*(-4*z2*b*c*a*d^4+a^2*d^8+4*b*c^2*z1*d^4)^(1/2))/b)^(1/2)]
[ -1/2/c*(-(-4*z2*b*c+2*a*d^4+2*(-4*z2*b*c*a*d^4+a^2*d^8+4*b*c^2*z1*d^4)^(1/2))/b)^(1/2)]

>> r.y

ans =

[ -(-1/4/c*(-4*z2*b*c+2*a*d^4-2*(-4*z2*b*c*a*d^4+a^2*d^8+4*b*c^2*z1*d^4)^(1/2))/b-z2)/d^2]
[ -(-1/4/c*(-4*z2*b*c+2*a*d^4-2*(-4*z2*b*c*a*d^4+a^2*d^8+4*b*c^2*z1*d^4)^(1/2))/b-z2)/d^2]
[ -(-1/4/c*(-4*z2*b*c+2*a*d^4+2*(-4*z2*b*c*a*d^4+a^2*d^8+4*b*c^2*z1*d^4)^(1/2))/b-z2)/d^2]
[ -(-1/4/c*(-4*z2*b*c+2*a*d^4+2*(-4*z2*b*c*a*d^4+a^2*d^8+4*b*c^2*z1*d^4)^(1/2))/b-z2)/d^2]



AlexKniga   (2003-04-15 15:31) [8]

的MathCAD



NetBreaker666   (2003-04-15 15:36) [9]

由主持人删除
注: А по-другому свои мысли выражать не получается?



nikkie   (2003-04-15 15:56) [10]

> Feu
не понял. кого его? кто у тебя нормально решает. MATLAB? да я его в глаза не видел... а кленовый листок я и не обижал... я наоборот за... :)

>神秘主义者
copy/paste проблема у тебя. у меня второе уравнение третьей степени было.



Manulo   (2003-04-15 16:05) [11]

由主持人删除



Mystic   (2003-04-15 16:09) [12]

copy/paste проблема у тебя. у меня второе уравнение третьей степени было.

Ну тогда получаем уравнение шестой степени, решение которого не представимо в виде элементарных функций. Те ответы, которые выводит Maple, имхо сложнее считать, чем численно решить систему :)

Пакет прикладных программ, дающих системе MATLAB принципиально новые возможности — возможности решения задач в символьном (аналитическом) виде, включая реализацию точной арифметики произвольной разрядности. Пакет базируется на применении ядра символьной математики одной из самых мощных систем компьютерной алгебры — Maple V R4. Обеспечивает выполнение символьного дифференцирования и интегрирования, вычисление сумм и произведений, разложение в ряды Тейлора и Маклорена, операции со степенными многочленами (полиномами), вычисление корней полиномов, решение в аналитическом виде нелинейных уравнений, всевозможные символьные преобразования, подстановки и многое другое. Имеет команды прямого доступа к ядру системы Maple V.

Пакет позволяет готовить процедуры с синтаксисом языка программирования системы Maple V R4 и устанавливать их в системе MATLAB. К сожалению, по возможностям символьной математики пакет сильно уступает специализированным системам компьютерной алгебры, таким как новейшие версии Maple и Mathematica.

А вот многое из
http://www.phys.nsu.ru/cherk/matlab6/Chapter%2023/1.htm
в Maple отсутсвует.



nikkie   (2003-04-15 16:27) [13]

>Ну тогда получаем уравнение шестой степени, решение которого не представимо в виде элементарных функций.
угу. вот и надо это уравнение 6-й степени получить.

поскольку общее алгебраическое уравнение порядка выше 4 не имеет решения в радикалах, то решением системы алгебраических уравнений принято считать приведение системы к эквивалентной системе вида
p_1(x_1) = 0
x_2 = p_2(x_1)
x_3 = p_3(x_1)
...
то есть сведение 系统 уравнений к 一个 уранению. задачка нетривиальная, но алгоритмически разрешимая. инструмент решения - базис Гребнера.

>А вот многое из ... в Maple отсутсвует.
кто бы спорил... каждой задаче свой инструмент. но для решения систем алгебраических уравнений альтернативы MAPLE я не знаю. по крайней мере, профессиональные алгебраисты пользуются им.



MBo   (2003-04-15 16:37) [14]

> nikkie
И систему из двух кубических Maple решает с получением ур-я 9-й степени. Текста килобайт на 20 ;)



nikkie   (2003-04-15 18:02) [15]

> Mbo
>Текста килобайт на 20 ;)
так это, понимашь, зависит от того, сколько у тя параметров. если все коэффициенты числа, то 10 коэффициентов много не должны занять :)

я вот только не понял подтекста твоего поста. ты хотел сказать, что ответ, занимающий 20Kb имеет мало смысла? если так, то это неправда. у такого ответа можно дискриминант посчитать, можно его попробовать на множители разложить, мало ли чего еще...



MBo   (2003-04-15 18:09) [16]

>если все коэффициенты числа
в символьном виде.

>ответ, занимающий 20Kb имеет мало смысла?
нет, я этого не имел в виду.

BTW, через результанты получилось короче.



Marser   (2003-04-15 18:21) [17]

ИМХО, Крамер - рулез форева! ;-)))))



nikkie   (2003-04-15 18:40) [18]

>в символьном виде.
представь себе. система уравнений без параметров, а решают ее в символьном виде, что есть антоним численного решения.

>BTW, через результанты получилось короче
как бы странно, поскольку ответ-то один :)
может там просто надо выделить множитель.

BTW результанты позволяют получить p_1(x_1) только в случае 2-х уравнений с двумя неизвестными (или когда остальные уравнения линейные по одной из переменных). в случае большего числа нелинейных уравнений, результанты дают существенно более высокие степени. например, есть система из 3 уравнений степеней 2, 3, 4 дает p_1 степени 24, а если делать через результанты, то получаем сначала 2 уравнения порядка 6 и 8, потом одно уравнение степени 48...



Страницы: 1 整个分支

论坛:“抢”;
当前存档:2003.05.01;
下载:[xml.tar.bz2];

楼上









内存:0.63 MB
时间:0.03 c
3-451
DSR
2003-04-13 16:23
2003.05.01
如何在DBGrid中取消选择


4-842
格里戈里耶夫
2003-03-04 13:13
2003.05.01
WM_MDIGETACTIVE


14-704
怀疑
2003-04-11 11:21
2003.05.01
任务+参数


4-837
Jakommo
2003-03-04 18:28
2003.05.01
(w2k)如何关闭NT系统中名为exe的应用程序。


14-754
德米特里·K·K
2003-04-14 07:34
2003.05.01
生日14四月





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский