У меня следующая проблема:Решение простое нелинейное уравнение в Matlab
y=5;
syms x;
z = 1:5;
solve(exp(x*max(z))/sum(exp(x*z))-y,x)
Выход я получаю:
г = 1: 5;
Warning: The solutions are parametrized by the symbols:
z1 = {0.08428351324821874240165938567037 -
2.5448937468890335808057943875982*I, 0.027288262408886135481488159484547
- 1.2999621981120554573735787663938*I,
0.08428351324821874240165938567037 +
2.5448937468890335808057943875982*I, 0.027288262408886135481488159484547
+ 1.2999621981120554573735787663938*I}
> In solve at 94
ans =
z1
Однако мне нужно числовое решение. Может ли кто-нибудь порекомендовать дружелюбный подход?
Спасибо! (Спасибо @horchler за помощь мне перефразировать вопрос)
Спасибо за ваш ответ, Horchler! x - числовая переменная. Вот именно то, что мне нужно: >> y = 5; >> syms x; z = 1: 5; решения (ехр (х * макс (г))/сумма (ехр (х * г)) - у, х) Это возвращает следующее: Внимание: параметризованные символами: z1 = {0.08428351324821874240165938567037 - 2,5448937468890335808057943875982 * I, 0,027288262408886135481488159484547 .............. > В решении по 94 ANS = z1 Могли бы вы порекомендовать численного решения, так как я потребуется более высокие заказы? –
@SimbatSeaman: Вы уверены? если 'y' - числовая константа, это намного проще. На R2012b я сразу получаю один комплексный числовой корень, если я введу то, что вы написали: '0.027288262408886135481488159484547 - 1.2999621981120554573735787663938 * i'. Если я добавлю параметр '' IgnoreAnalyticConstraints'' и поставлю его в 'true', я получу две пары комплексно-сопряженных решений (не знаю, все ли это решения).Какую версию Matlab вы используете? – horchler
Также вы говорите, что «x» является числовым, а затем вы создаете его как символическую переменную? – horchler