using fsolve to solve non-linear equations in matlab
$begingroup$
I'm trying to solve this system equations in matlab
syms y z i
x=[29.6,29.4,34.4,35.1,34.3,36.1,31.6,32.9,31.5,28.3,37.1,28.4,27.3,33.1,31.3,33.1]
n = 16
eqns = sym(zeros(1, 2 * n));
for i = 1:n
a = 0;
for j = 1:i
a = a + exp(-((x(j) - y) / z));
end
a = i/z - a/z;
eqns(i) = a == 0;
end
for i = 1:n
a = 0;
for j = 1:i
a = a + ((x(j) - y)/z^2) - ((x(i) - y)/z^2) * exp((-x(j) + y)/z);
end
a = -i/z + a;
eqns(i + 16) = a == 0;
end
eqns
solve(eqns, [y, z])
But it seems solve
can't solve this one.
Warning: Cannot find explicit solution.
> In solve (line 316)
In xx (line 24)
I tried to use fslove but by follow the tutorial at https://www.mathworks.com/help/optim/ug/fsolve.html?s_tid=gn_loc_drop
but when I tried to enter
function F = root2d(x)
F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);
F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;
matlab throw error.
Can someone please help me?
Thank you.
P/S: Can this problem be solved with singular?I'm trying to solve this system equations in matlab
systems-of-equations matlab singular-cas
$endgroup$
add a comment |
$begingroup$
I'm trying to solve this system equations in matlab
syms y z i
x=[29.6,29.4,34.4,35.1,34.3,36.1,31.6,32.9,31.5,28.3,37.1,28.4,27.3,33.1,31.3,33.1]
n = 16
eqns = sym(zeros(1, 2 * n));
for i = 1:n
a = 0;
for j = 1:i
a = a + exp(-((x(j) - y) / z));
end
a = i/z - a/z;
eqns(i) = a == 0;
end
for i = 1:n
a = 0;
for j = 1:i
a = a + ((x(j) - y)/z^2) - ((x(i) - y)/z^2) * exp((-x(j) + y)/z);
end
a = -i/z + a;
eqns(i + 16) = a == 0;
end
eqns
solve(eqns, [y, z])
But it seems solve
can't solve this one.
Warning: Cannot find explicit solution.
> In solve (line 316)
In xx (line 24)
I tried to use fslove but by follow the tutorial at https://www.mathworks.com/help/optim/ug/fsolve.html?s_tid=gn_loc_drop
but when I tried to enter
function F = root2d(x)
F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);
F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;
matlab throw error.
Can someone please help me?
Thank you.
P/S: Can this problem be solved with singular?I'm trying to solve this system equations in matlab
systems-of-equations matlab singular-cas
$endgroup$
$begingroup$
Yourfsolve
code doesn't match the system of 32 equations you're trying to solve symbolically. It's not clear what you're trying to do. I'm also not sure why you're usingi
as a symbolic variable and the re-defining it in yourfor
loops.
$endgroup$
– horchler
Mar 8 '17 at 19:59
add a comment |
$begingroup$
I'm trying to solve this system equations in matlab
syms y z i
x=[29.6,29.4,34.4,35.1,34.3,36.1,31.6,32.9,31.5,28.3,37.1,28.4,27.3,33.1,31.3,33.1]
n = 16
eqns = sym(zeros(1, 2 * n));
for i = 1:n
a = 0;
for j = 1:i
a = a + exp(-((x(j) - y) / z));
end
a = i/z - a/z;
eqns(i) = a == 0;
end
for i = 1:n
a = 0;
for j = 1:i
a = a + ((x(j) - y)/z^2) - ((x(i) - y)/z^2) * exp((-x(j) + y)/z);
end
a = -i/z + a;
eqns(i + 16) = a == 0;
end
eqns
solve(eqns, [y, z])
But it seems solve
can't solve this one.
Warning: Cannot find explicit solution.
> In solve (line 316)
In xx (line 24)
I tried to use fslove but by follow the tutorial at https://www.mathworks.com/help/optim/ug/fsolve.html?s_tid=gn_loc_drop
but when I tried to enter
function F = root2d(x)
F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);
F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;
matlab throw error.
Can someone please help me?
Thank you.
P/S: Can this problem be solved with singular?I'm trying to solve this system equations in matlab
systems-of-equations matlab singular-cas
$endgroup$
I'm trying to solve this system equations in matlab
syms y z i
x=[29.6,29.4,34.4,35.1,34.3,36.1,31.6,32.9,31.5,28.3,37.1,28.4,27.3,33.1,31.3,33.1]
n = 16
eqns = sym(zeros(1, 2 * n));
for i = 1:n
a = 0;
for j = 1:i
a = a + exp(-((x(j) - y) / z));
end
a = i/z - a/z;
eqns(i) = a == 0;
end
for i = 1:n
a = 0;
for j = 1:i
a = a + ((x(j) - y)/z^2) - ((x(i) - y)/z^2) * exp((-x(j) + y)/z);
end
a = -i/z + a;
eqns(i + 16) = a == 0;
end
eqns
solve(eqns, [y, z])
But it seems solve
can't solve this one.
Warning: Cannot find explicit solution.
> In solve (line 316)
In xx (line 24)
I tried to use fslove but by follow the tutorial at https://www.mathworks.com/help/optim/ug/fsolve.html?s_tid=gn_loc_drop
but when I tried to enter
function F = root2d(x)
F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);
F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;
matlab throw error.
Can someone please help me?
Thank you.
P/S: Can this problem be solved with singular?I'm trying to solve this system equations in matlab
systems-of-equations matlab singular-cas
systems-of-equations matlab singular-cas
asked Mar 8 '17 at 3:05
Lan Anh NguyễnLan Anh Nguyễn
11
11
$begingroup$
Yourfsolve
code doesn't match the system of 32 equations you're trying to solve symbolically. It's not clear what you're trying to do. I'm also not sure why you're usingi
as a symbolic variable and the re-defining it in yourfor
loops.
$endgroup$
– horchler
Mar 8 '17 at 19:59
add a comment |
$begingroup$
Yourfsolve
code doesn't match the system of 32 equations you're trying to solve symbolically. It's not clear what you're trying to do. I'm also not sure why you're usingi
as a symbolic variable and the re-defining it in yourfor
loops.
$endgroup$
– horchler
Mar 8 '17 at 19:59
$begingroup$
Your
fsolve
code doesn't match the system of 32 equations you're trying to solve symbolically. It's not clear what you're trying to do. I'm also not sure why you're using i
as a symbolic variable and the re-defining it in your for
loops.$endgroup$
– horchler
Mar 8 '17 at 19:59
$begingroup$
Your
fsolve
code doesn't match the system of 32 equations you're trying to solve symbolically. It's not clear what you're trying to do. I'm also not sure why you're using i
as a symbolic variable and the re-defining it in your for
loops.$endgroup$
– horchler
Mar 8 '17 at 19:59
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
It's not clear what the problem is without being given the error, but:
F=@(x) [exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5];
x0=[1;1];
fsolve(F,x0)
worked for me. You can do this using "function F = ..." syntax, but then you need to write @F in the call to fsolve.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2176989%2fusing-fsolve-to-solve-non-linear-equations-in-matlab%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
It's not clear what the problem is without being given the error, but:
F=@(x) [exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5];
x0=[1;1];
fsolve(F,x0)
worked for me. You can do this using "function F = ..." syntax, but then you need to write @F in the call to fsolve.
$endgroup$
add a comment |
$begingroup$
It's not clear what the problem is without being given the error, but:
F=@(x) [exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5];
x0=[1;1];
fsolve(F,x0)
worked for me. You can do this using "function F = ..." syntax, but then you need to write @F in the call to fsolve.
$endgroup$
add a comment |
$begingroup$
It's not clear what the problem is without being given the error, but:
F=@(x) [exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5];
x0=[1;1];
fsolve(F,x0)
worked for me. You can do this using "function F = ..." syntax, but then you need to write @F in the call to fsolve.
$endgroup$
It's not clear what the problem is without being given the error, but:
F=@(x) [exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5];
x0=[1;1];
fsolve(F,x0)
worked for me. You can do this using "function F = ..." syntax, but then you need to write @F in the call to fsolve.
answered Mar 8 '17 at 3:36
IanIan
68.2k25388
68.2k25388
add a comment |
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2176989%2fusing-fsolve-to-solve-non-linear-equations-in-matlab%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
Your
fsolve
code doesn't match the system of 32 equations you're trying to solve symbolically. It's not clear what you're trying to do. I'm also not sure why you're usingi
as a symbolic variable and the re-defining it in yourfor
loops.$endgroup$
– horchler
Mar 8 '17 at 19:59