How to solving and plot only one non-linear equation with two or one variables without using ezplot
이전 댓글 표시
I want to solve and plot one non linear equation with two variables k and f, the equation is shown here, where k varies from 0 to 1. The other algebras are given.
(((2*pi*f).^2)/((2*pi*fv).^2)-1)*((2-(((2*pi*f).^2)/((k.^2)*(cs.^2))).^2)-4*((1-(((2*pi*f).^2)/((k.^2)*(cs.^2)))).^0.5)*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)-m*(((2*pi*f).^4)/(A*(cs.^4)*den*(k.^3)))*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5))=0
For every k value, there are more than one possible solutions for f value, where the f value can be in form complex number and is limited from 0 to 20.
However, it gives 'The input to FSOLVE should be either a structure with valid fields or consist of at least two arguments.' after running the command.
Apart from that, i actually want to plot a continous function rather than scattering the point if it is possible. I don't want to use ezplot because the plot is not correct. Thankyou
clc
clear all
syms k f
cs = 121;
cl = 227;
A = (1.3^2)*(3^0.5)/2;
den = 1300;
m = 6700;
fv = 4.9;
k=0:0.01:1;
fun = @(f) ((2*pi*f).^2)/((2*pi*fv).^2)-1)*((2-(((2*pi*f).^2)/((k.^2)*(cs.^2))).^2)-4*((1-(((2*pi*f).^2)/((k.^2)*(cs.^2)))).^0.5)*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)-m*(((2*pi*f).^4)/(A*(cs.^4)*den*(k.^3)))*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)));
fsolve(fun, [0, 20])
scatter(k,f)
ylim([0 20]);
xlim([0 1])
답변 (1개)
darova
2020년 2월 14일
Numerical way
[K,F] = mehsgrid(-10:10);
Z = your_function
contour(K,F,Z,[0 0]) % contour at 0 level
댓글 수: 11
Tak Yeung POON
2020년 2월 14일
Tak Yeung POON
2020년 2월 14일
darova
2020년 2월 14일
What do you see?

Tak Yeung POON
2020년 2월 15일
darova
2020년 2월 15일
This is how your plot looks like if
surf(K,F,Z)

So contour at level 0 is correct

Tak Yeung POON
2020년 2월 15일
darova
2020년 2월 15일
Do you have polyxpoly?
Tak Yeung POON
2020년 2월 15일
darova
2020년 2월 15일
try this script
Tak Yeung POON
2020년 2월 17일
darova
2020년 2월 17일
What about interp1? fsolve is used for equations
카테고리
도움말 센터 및 File Exchange에서 Mathematics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
